@wdprlib/parser 5.2.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/index.cjs +2211 -1182
  2. package/dist/index.d.cts +15 -0
  3. package/dist/index.d.ts +15 -0
  4. package/dist/index.js +2211 -1182
  5. package/package.json +3 -2
  6. package/src/build-info.generated.ts +2 -2
  7. package/src/lexer/lexer.ts +34 -5
  8. package/src/lexer/quoted-string.ts +4 -4
  9. package/src/lexer/syntax-actions.ts +6 -1
  10. package/src/lexer/text-actions.ts +15 -1
  11. package/src/lexer/url-schemes.ts +78 -0
  12. package/src/parser/constants.ts +4 -0
  13. package/src/parser/parse/block.ts +1 -1
  14. package/src/parser/postprocess/divAdjacentParagraph.ts +23 -21
  15. package/src/parser/postprocess/spanStrip/merge.ts +8 -2
  16. package/src/parser/preprocess/typography.ts +25 -3
  17. package/src/parser/preprocess/utils/raw-regions.ts +59 -14
  18. package/src/parser/preprocess/whitespace/index.ts +8 -1
  19. package/src/parser/rules/block/bibliography/entry-content.ts +1 -1
  20. package/src/parser/rules/block/block-list/bare-content.ts +3 -1
  21. package/src/parser/rules/block/block-list/bare-paragraph.ts +7 -2
  22. package/src/parser/rules/block/block-list/item-content.ts +7 -3
  23. package/src/parser/rules/block/block-list/li-content.ts +8 -3
  24. package/src/parser/rules/block/block-list/li-item.ts +1 -1
  25. package/src/parser/rules/block/blockquote/build.ts +1 -1
  26. package/src/parser/rules/block/code/boundary.ts +76 -0
  27. package/src/parser/rules/block/code/content.ts +11 -40
  28. package/src/parser/rules/block/code/index.ts +8 -31
  29. package/src/parser/rules/block/code/open.ts +46 -0
  30. package/src/parser/rules/block/definition-list/item-key.ts +1 -1
  31. package/src/parser/rules/block/definition-list/item-value.ts +1 -1
  32. package/src/parser/rules/block/div/failed.ts +2 -0
  33. package/src/parser/rules/block/index.ts +3 -0
  34. package/src/parser/rules/block/list/line.ts +6 -3
  35. package/src/parser/rules/block/math/boundary.ts +104 -0
  36. package/src/parser/rules/block/math/index.ts +17 -57
  37. package/src/parser/rules/block/module/listpages/resolution/items.ts +2 -2
  38. package/src/parser/rules/block/module/listpages/resolution/pager.ts +43 -0
  39. package/src/parser/rules/block/module/listpages/resolution/wrapper.ts +6 -1
  40. package/src/parser/rules/block/module/listpages/resolve.ts +1 -1
  41. package/src/parser/rules/block/module/listpages/types/external-data.ts +13 -0
  42. package/src/parser/rules/block/module/listpages/url-resolution/params.ts +5 -4
  43. package/src/parser/rules/block/module/resolution/data-maps.ts +75 -3
  44. package/src/parser/rules/block/module/resolution/resolve-async.ts +12 -3
  45. package/src/parser/rules/block/note/boundary.ts +88 -0
  46. package/src/parser/rules/block/note/index.ts +37 -0
  47. package/src/parser/rules/block/paragraph/index.ts +12 -4
  48. package/src/parser/rules/block/paragraph/normalize.ts +6 -1
  49. package/src/parser/rules/block/parsing/block-item.ts +1 -1
  50. package/src/parser/rules/block/parsing/content.ts +1 -1
  51. package/src/parser/rules/block/parsing/inline-content.ts +6 -3
  52. package/src/parser/rules/block/table/pipe/cell.ts +3 -1
  53. package/src/parser/rules/block/table-block/cell-content/index.ts +1 -1
  54. package/src/parser/rules/block/table-block/cell-content/segments.ts +5 -2
  55. package/src/parser/rules/block/table-block/cell-newline.ts +2 -1
  56. package/src/parser/rules/contracts/rule.ts +4 -2
  57. package/src/parser/rules/contracts/scope.ts +2 -0
  58. package/src/parser/rules/inline/anchor/child.ts +8 -2
  59. package/src/parser/rules/inline/anchor/content.ts +3 -1
  60. package/src/parser/rules/inline/anchor/index.ts +4 -1
  61. package/src/parser/rules/inline/anchor/newline.ts +2 -1
  62. package/src/parser/rules/inline/autolink.ts +153 -0
  63. package/src/parser/rules/inline/button/attributes.ts +17 -0
  64. package/src/parser/rules/inline/button/index.ts +17 -0
  65. package/src/parser/rules/inline/button/syntax.ts +56 -0
  66. package/src/parser/rules/inline/date/index.ts +17 -0
  67. package/src/parser/rules/inline/date/syntax.ts +46 -0
  68. package/src/parser/rules/inline/email/candidates.ts +134 -0
  69. package/src/parser/rules/inline/email/index.ts +36 -0
  70. package/src/parser/rules/inline/email/scan.ts +76 -0
  71. package/src/parser/rules/inline/expr/branch.ts +3 -1
  72. package/src/parser/rules/inline/footnote/boundary.ts +56 -0
  73. package/src/parser/rules/inline/footnote/content.ts +29 -41
  74. package/src/parser/rules/inline/footnote/elements.ts +9 -34
  75. package/src/parser/rules/inline/footnote/index.ts +4 -1
  76. package/src/parser/rules/inline/formatting/close.ts +12 -0
  77. package/src/parser/rules/inline/index.ts +14 -0
  78. package/src/parser/rules/inline/line-break/newline.ts +8 -1
  79. package/src/parser/rules/inline/link-bracket/direct-url.ts +11 -3
  80. package/src/parser/rules/inline/link-bracket/parsed.ts +9 -4
  81. package/src/parser/rules/inline/link-bracket/parts.ts +14 -36
  82. package/src/parser/rules/inline/link-bracket/special-target.ts +9 -0
  83. package/src/parser/rules/inline/link-single.ts +9 -7
  84. package/src/parser/rules/inline/link-triple/index.ts +1 -0
  85. package/src/parser/rules/inline/link-triple/label.ts +7 -1
  86. package/src/parser/rules/inline/parsing/automatic-line-break.ts +35 -0
  87. package/src/parser/rules/inline/parsing/block-boundary.ts +2 -0
  88. package/src/parser/rules/inline/parsing/block-start-predicates.ts +10 -0
  89. package/src/parser/rules/inline/parsing/inline-content.ts +36 -6
  90. package/src/parser/rules/inline/parsing/plain-text.ts +7 -2
  91. package/src/parser/rules/inline/parsing/preserved-line-break.ts +13 -0
  92. package/src/parser/rules/inline/parsing/raw-tag.ts +19 -0
  93. package/src/parser/rules/inline/raw/angle.ts +2 -1
  94. package/src/parser/rules/inline/raw/end.ts +21 -1
  95. package/src/parser/rules/inline/size/content.ts +1 -1
  96. package/src/parser/rules/inline/size/value.ts +11 -0
  97. package/src/parser/rules/inline/social/index.ts +17 -0
  98. package/src/parser/rules/inline/social/syntax.ts +40 -0
  99. package/src/parser/rules/inline/span/content.ts +3 -1
  100. package/src/parser/rules/inline/span/newline.ts +2 -1
  101. package/src/parser/rules/opaque-probe.ts +58 -0
  102. package/src/pipeline/process.ts +8 -1
  103. package/src/parser/rules/block/math/content.ts +0 -54
  104. package/src/parser/rules/block/math/name.ts +0 -35
  105. package/src/parser/rules/inline/footnote/child.ts +0 -22
  106. package/src/parser/rules/inline/footnote/newline.ts +0 -27
package/dist/index.d.cts CHANGED
@@ -103,6 +103,8 @@ declare class Lexer {
103
103
  * consume content up to the next `"` or newline.
104
104
  */
105
105
  private blockOpenerDepth;
106
+ private rawTagBounds;
107
+ private rawClosesExhausted;
106
108
  constructor(source: string, options?: LexerOptions);
107
109
  /**
108
110
  * Tokenize the entire source
@@ -691,8 +693,21 @@ interface SiteContext {
691
693
  */
692
694
  interface ListPagesExternalData {
693
695
  pages: PageData[];
696
+ /** Matching items before offset and limit; use the same visibility filters as pages. */
694
697
  totalCount: number;
695
698
  site: SiteContext;
699
+ /** Filled by module resolution when a page URL is available. */
700
+ pagination?: {
701
+ currentPage: number;
702
+ perPage: number;
703
+ totalPages: number;
704
+ /** Actual fetch offset, including the module's starting offset. */
705
+ offset: number;
706
+ /** Total item limit after URL resolution, not the fetch batch size. */
707
+ limit?: number;
708
+ urlPath: string;
709
+ parameter: string;
710
+ };
696
711
  }
697
712
  /**
698
713
  * Normalized tags selector.
package/dist/index.d.ts CHANGED
@@ -103,6 +103,8 @@ declare class Lexer {
103
103
  * consume content up to the next `"` or newline.
104
104
  */
105
105
  private blockOpenerDepth;
106
+ private rawTagBounds;
107
+ private rawClosesExhausted;
106
108
  constructor(source: string, options?: LexerOptions);
107
109
  /**
108
110
  * Tokenize the entire source
@@ -691,8 +693,21 @@ interface SiteContext {
691
693
  */
692
694
  interface ListPagesExternalData {
693
695
  pages: PageData[];
696
+ /** Matching items before offset and limit; use the same visibility filters as pages. */
694
697
  totalCount: number;
695
698
  site: SiteContext;
699
+ /** Filled by module resolution when a page URL is available. */
700
+ pagination?: {
701
+ currentPage: number;
702
+ perPage: number;
703
+ totalPages: number;
704
+ /** Actual fetch offset, including the module's starting offset. */
705
+ offset: number;
706
+ /** Total item limit after URL resolution, not the fetch batch size. */
707
+ limit?: number;
708
+ urlPath: string;
709
+ parameter: string;
710
+ };
696
711
  }
697
712
  /**
698
713
  * Normalized tags selector.