@ox-content/napi 3.0.0-alpha.10 → 3.0.0-alpha.11

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 (3) hide show
  1. package/index.d.ts +386 -1
  2. package/index.js +11 -0
  3. package/package.json +8 -8
package/index.d.ts CHANGED
@@ -149,6 +149,12 @@ export declare function extractSsgTitle(content: string, frontmatterTitle?: stri
149
149
  */
150
150
  export declare function extractTranslationKeys(source: string, filePath: string, functionNames?: Array<string> | undefined | null): Array<I18NKeyUsage>
151
151
 
152
+ /**
153
+ * Extracts a YouTube video id from a bare id or a watch / share / embed /
154
+ * shorts URL, returning `null` when the input names no video.
155
+ */
156
+ export declare function extractYoutubeVideoId(input: string): string | null
157
+
152
158
  /** Formats a file or directory segment as an SSG title. */
153
159
  export declare function formatSsgTitle(name: string): string
154
160
 
@@ -172,6 +178,9 @@ export declare function generateDocsNavMetadata(files: Array<string>, basePath?:
172
178
  */
173
179
  export declare function generateDocsNavMetadataFromDocs(docs: Array<JsDocsMarkdownModule>, options?: JsDocsNavOptions | undefined | null): Array<JsDocsNavItem>
174
180
 
181
+ /** Builds RSS / Atom / JSON Feed bodies without writing files. */
182
+ export declare function generateFeedBodies(options: JsFeedsOptions, items: Array<JsFeedItem>): JsFeedsOutput
183
+
175
184
  /** Generates the `virtual:ox-content/i18n` runtime module. */
176
185
  export declare function generateI18nModule(dictDir: string, config: JsI18NRuntimeConfig): string
177
186
 
@@ -192,6 +201,9 @@ export declare function generateSearchModule(optionsJson: string, indexPath: str
192
201
  /** Generates the client-side search runtime module from typed options. */
193
202
  export declare function generateSearchModuleFromOptions(options: JsSearchRuntimeOptions, indexPath: string): string
194
203
 
204
+ /** Builds `sitemap.xml`, `robots.txt`, and `llms.txt` bodies without writing files. */
205
+ export declare function generateSiteMapBodies(options: JsSiteMapsOptions, pages: Array<JsSiteMapPage>): JsSiteMapsOutput
206
+
195
207
  /** Generates a bare SSG HTML page without navigation or styles. */
196
208
  export declare function generateSsgBareHtml(content: string, title: string): string
197
209
 
@@ -332,6 +344,9 @@ export interface IncrementalMarkdownRenderResult {
332
344
  errors: Array<string>
333
345
  }
334
346
 
347
+ /** Same-origin path check: leading `/`, not `//`, and no scheme. */
348
+ export declare function isSafeRedirectDest(value: string): boolean
349
+
335
350
  /** Opt-in skip link and print styles. Presence of the object enables the feature. */
336
351
  export interface JsA11y {
337
352
  /** Override for the skip-link label. Empty / omitted uses "Skip to content". */
@@ -487,6 +502,22 @@ export interface JsCollectionDefinition {
487
502
  include: Array<string>
488
503
  }
489
504
 
505
+ /** Opt-in static `::: if` / `::: else` conditional blocks. */
506
+ export interface JsConditionalBlockOptions {
507
+ /**
508
+ * Enable conditional block evaluation.
509
+ *
510
+ * Default: `true` when the options object is supplied.
511
+ */
512
+ enabled?: boolean
513
+ /**
514
+ * Build-time values available as `config.*` or bare identifiers.
515
+ *
516
+ * Default: `{}`.
517
+ */
518
+ values?: Record<string, any>
519
+ }
520
+
490
521
  /** Opt-in `::: tip` custom containers. */
491
522
  export interface JsContainerOptions {
492
523
  /**
@@ -507,6 +538,49 @@ export interface JsContainerTypeOptions {
507
538
  tag?: string
508
539
  }
509
540
 
541
+ /** One rule the document broke. */
542
+ export interface JsCrossReferenceDiagnostic {
543
+ /** `"error"` or `"warn"`, as the options asked. */
544
+ policy: string
545
+ message: string
546
+ }
547
+
548
+ /** One numbered target the document defines. */
549
+ export interface JsCrossReferenceEntry {
550
+ id: string
551
+ /** `"figure"`, `"table"`, or `"section"`. */
552
+ kind: string
553
+ number: string
554
+ label: string
555
+ text: string
556
+ href: string
557
+ title?: string
558
+ }
559
+
560
+ /** The word placed before each number, per kind. */
561
+ export interface JsCrossReferenceLabels {
562
+ figure?: string
563
+ table?: string
564
+ section?: string
565
+ }
566
+
567
+ /** The annotated HTML, what it defined, and what it got wrong. */
568
+ export interface JsCrossReferenceOutput {
569
+ html: string
570
+ references: Array<JsCrossReferenceEntry>
571
+ diagnostics: Array<JsCrossReferenceDiagnostic>
572
+ }
573
+
574
+ /** Switches and labels for the cross-reference pass. */
575
+ export interface JsCrossReferencesOptions {
576
+ enabled: boolean
577
+ /** `"warn"` reports and carries on; anything else fails the build. */
578
+ missing?: string
579
+ duplicates?: string
580
+ mismatches?: string
581
+ labels?: JsCrossReferenceLabels
582
+ }
583
+
510
584
  /** Opt-in static `csv-table` / `json-table` fences. */
511
585
  export interface JsDataTableOptions {
512
586
  /**
@@ -824,6 +898,24 @@ export interface JsEditThisPageOptions {
824
898
  label?: string
825
899
  }
826
900
 
901
+ /**
902
+ * Transform opt-in static media embed components in already-rendered HTML.
903
+ * One tag an enabled provider refused, and what the transform did instead.
904
+ */
905
+ export interface JsEmbedDiagnostic {
906
+ /** Tag name as the provider registers it, for example `speakerdeck`. */
907
+ provider: string
908
+ /** The URL the tag carried, when it carried one worth naming. */
909
+ url?: string
910
+ /** 1-based line of the opening tag in the transformed HTML. */
911
+ line: number
912
+ /**
913
+ * `"linked"` when the tag became a plain link, `"kept"` when its markup
914
+ * was left as authored.
915
+ */
916
+ fallback: string
917
+ }
918
+
827
919
  /** Emoji-shortcode transform options. */
828
920
  export interface JsEmojiShortcodeOptions {
829
921
  /**
@@ -934,6 +1026,65 @@ export interface JsFeatureConfig {
934
1026
  linkText?: string
935
1027
  }
936
1028
 
1029
+ /** A file carried alongside a feed item. */
1030
+ export interface JsFeedAttachment {
1031
+ url: string
1032
+ mimeType?: string
1033
+ title?: string
1034
+ sizeInBytes?: number
1035
+ durationInSeconds?: number
1036
+ }
1037
+
1038
+ /** A person credited on a feed item. */
1039
+ export interface JsFeedAuthor {
1040
+ name: string
1041
+ url?: string
1042
+ }
1043
+
1044
+ /** One collection entry considered for a feed. */
1045
+ export interface JsFeedItem {
1046
+ title: string
1047
+ description?: string
1048
+ loc: string
1049
+ date?: string
1050
+ lastUpdated?: string
1051
+ draft?: boolean
1052
+ unlisted?: boolean
1053
+ content?: string
1054
+ id?: string
1055
+ authors?: Array<JsFeedAuthor>
1056
+ image?: string
1057
+ attachments?: Array<JsFeedAttachment>
1058
+ language?: string
1059
+ }
1060
+
1061
+ /** Switches and site metadata for feed generation. */
1062
+ export interface JsFeedsOptions {
1063
+ enabled: boolean
1064
+ siteUrl?: string
1065
+ siteName: string
1066
+ siteDescription?: string
1067
+ homePageUrl: string
1068
+ rssUrl: string
1069
+ atomUrl: string
1070
+ jsonUrl: string
1071
+ /** Any of `"rss"`, `"atom"`, `"json"`. Unknown names are ignored. */
1072
+ formats: Array<string>
1073
+ limit: number
1074
+ language?: string
1075
+ image?: string
1076
+ favicon?: string
1077
+ copyright?: string
1078
+ }
1079
+
1080
+ /** Generated feed bodies, or a warning when generation is skipped. */
1081
+ export interface JsFeedsOutput {
1082
+ rssXml?: string
1083
+ atomXml?: string
1084
+ jsonFeed?: string
1085
+ warning?: string
1086
+ }
1087
+
937
1088
  /** Opt-in static `file-tree` fences. */
938
1089
  export interface JsFileTreeOptions {
939
1090
  /**
@@ -1384,6 +1535,78 @@ export interface JsMediaEmbedsOptions {
1384
1535
  * Default: `false`.
1385
1536
  */
1386
1537
  bluesky?: boolean
1538
+ /**
1539
+ * Render `<GoogleMaps>` static place cards.
1540
+ *
1541
+ * Default: `false`.
1542
+ */
1543
+ googleMaps?: boolean
1544
+ /**
1545
+ * Render `<Qiita>` static article cards.
1546
+ *
1547
+ * Default: `false`.
1548
+ */
1549
+ qiita?: boolean
1550
+ /**
1551
+ * Render `<Zenn>` static article cards.
1552
+ *
1553
+ * Default: `false`.
1554
+ */
1555
+ zenn?: boolean
1556
+ /**
1557
+ * Render package registry cards for npm, crates.io, PyPI, and Docker Hub.
1558
+ *
1559
+ * Default: `false`.
1560
+ */
1561
+ packageRegistry?: boolean
1562
+ /**
1563
+ * Render `<CodePen>`, `<JSFiddle>`, and `<Observable>` playground cards.
1564
+ *
1565
+ * Default: `false`.
1566
+ */
1567
+ playgrounds?: boolean
1568
+ /**
1569
+ * Render `<Vimeo>` video cards.
1570
+ *
1571
+ * Default: `false`.
1572
+ */
1573
+ vimeo?: boolean
1574
+ /**
1575
+ * Render `<Twitch>` video, clip, and channel cards.
1576
+ *
1577
+ * Default: `false`.
1578
+ */
1579
+ twitch?: boolean
1580
+ /**
1581
+ * Render `<Discord>` static invite/message cards.
1582
+ *
1583
+ * Default: `false`.
1584
+ */
1585
+ discord?: boolean
1586
+ /**
1587
+ * Render `<Fediverse>`, `<Mastodon>`, `<Misskey>`, and `<Mixi2>` static post cards.
1588
+ *
1589
+ * Default: `false`.
1590
+ */
1591
+ fediverse?: boolean
1592
+ /**
1593
+ * Render `<Facebook>` static post cards.
1594
+ *
1595
+ * Default: `false`.
1596
+ */
1597
+ facebook?: boolean
1598
+ /**
1599
+ * Render `<Threads>` static post cards.
1600
+ *
1601
+ * Default: `false`.
1602
+ */
1603
+ threads?: boolean
1604
+ /**
1605
+ * Render `<Instagram>` static post cards.
1606
+ *
1607
+ * Default: `false`.
1608
+ */
1609
+ instagram?: boolean
1387
1610
  /**
1388
1611
  * Render `<WebContainer>` lazy placeholder blocks.
1389
1612
  *
@@ -1404,6 +1627,12 @@ export interface JsMediaEmbedsOptions {
1404
1627
  video?: boolean
1405
1628
  }
1406
1629
 
1630
+ /** Rewritten HTML plus every tag an enabled provider refused. */
1631
+ export interface JsMediaEmbedsResult {
1632
+ html: string
1633
+ diagnostics: Array<JsEmbedDiagnostic>
1634
+ }
1635
+
1407
1636
  /** Opt-in `<NotByAI />` authorship badge. */
1408
1637
  export interface JsNotByAiOptions {
1409
1638
  /**
@@ -1488,6 +1717,31 @@ export interface JsPagerOverride {
1488
1717
  href?: string
1489
1718
  }
1490
1719
 
1720
+ /**
1721
+ * A feed date after parsing: the instant, its civil parts in UTC, and the two
1722
+ * serializations the feed formats ask for.
1723
+ */
1724
+ export interface JsParsedFeedDate {
1725
+ /** Seconds since the Unix epoch. */
1726
+ unix: number
1727
+ /** Civil year in UTC. */
1728
+ year: number
1729
+ /** Civil month, 1-12. */
1730
+ month: number
1731
+ /** Civil day of month, 1-31. */
1732
+ day: number
1733
+ /** Hour, 0-23. */
1734
+ hour: number
1735
+ /** Minute, 0-59. */
1736
+ minute: number
1737
+ /** Second, 0-60. */
1738
+ second: number
1739
+ /** `YYYY-MM-DDTHH:MM:SSZ`, as Atom and JSON Feed want it. */
1740
+ rfc3339: string
1741
+ /** `Day, DD Mon YYYY HH:MM:SS +0000`, as RSS wants it. */
1742
+ rfc822: string
1743
+ }
1744
+
1491
1745
  /**
1492
1746
  * Parser options for JavaScript.
1493
1747
  *
@@ -1632,12 +1886,63 @@ export interface JsReaderChrome {
1632
1886
  backToTop?: boolean
1633
1887
  }
1634
1888
 
1889
+ /** One planned static HTML redirect. */
1890
+ export interface JsRedirectEntry {
1891
+ from: string
1892
+ to: string
1893
+ html: string
1894
+ relativePath: string
1895
+ }
1896
+
1897
+ /** One entry of the config rewrite map, in author order. */
1898
+ export interface JsRedirectMapEntry {
1899
+ from: string
1900
+ to: string
1901
+ }
1902
+
1903
+ /** One page that other paths can redirect to. */
1904
+ export interface JsRedirectPage {
1905
+ dest: string
1906
+ aliases?: Array<string>
1907
+ redirect?: string
1908
+ }
1909
+
1910
+ /** Switches and the config rewrite map. */
1911
+ export interface JsRedirectsOptions {
1912
+ enabled: boolean
1913
+ map: Array<JsRedirectMapEntry>
1914
+ netlify: boolean
1915
+ headers: boolean
1916
+ json: boolean
1917
+ allowExternal: boolean
1918
+ html: boolean
1919
+ base?: string
1920
+ }
1921
+
1922
+ /** Planned redirect pages and optional host files. */
1923
+ export interface JsRedirectsOutput {
1924
+ pages: Array<JsRedirectEntry>
1925
+ netlify?: string
1926
+ headers?: string
1927
+ json?: string
1928
+ }
1929
+
1635
1930
  /** Resolved source module. */
1636
1931
  export interface JsResolvedModule {
1637
1932
  path: string
1638
1933
  exports: Array<JsPublicExport>
1639
1934
  }
1640
1935
 
1936
+ /** One page after cascade and optional permalink / slug rewriting. */
1937
+ export interface JsResolvedSsgRoutePage {
1938
+ /** Source path relative to the content root. */
1939
+ source: string
1940
+ /** Resolved URL path. */
1941
+ urlPath: string
1942
+ /** Frontmatter after cascade fills. */
1943
+ frontmatter: Record<string, unknown>
1944
+ }
1945
+
1641
1946
  /** HTML sanitizer options. */
1642
1947
  export interface JsSanitizeOptions {
1643
1948
  /**
@@ -1696,6 +2001,8 @@ export interface JsSearchIndexBuildOptions {
1696
2001
  publishState?: JsPublishStateOptions
1697
2002
  /** Explicit MDX parser override. When omitted, `.mdx` files enable MDX. */
1698
2003
  mdx?: boolean
2004
+ /** Conditional blocks are resolved before extracting searchable content. */
2005
+ conditionalBlocks?: JsConditionalBlockOptions
1699
2006
  }
1700
2007
 
1701
2008
  /** Search options for JavaScript. */
@@ -1752,6 +2059,36 @@ export interface JsSectionIndexItem {
1752
2059
  description?: string
1753
2060
  }
1754
2061
 
2062
+ /** One page considered for the crawl manifests. */
2063
+ export interface JsSiteMapPage {
2064
+ loc: string
2065
+ title: string
2066
+ description?: string
2067
+ /** Source-file git commit time in milliseconds. `None` omits `<lastmod>`. */
2068
+ lastUpdated?: number
2069
+ draft?: boolean
2070
+ unlisted?: boolean
2071
+ }
2072
+
2073
+ /** Switches and site metadata for crawl-manifest generation. */
2074
+ export interface JsSiteMapsOptions {
2075
+ enabled: boolean
2076
+ siteUrl?: string
2077
+ sitemapLoc: string
2078
+ siteName: string
2079
+ siteDescription?: string
2080
+ robots: boolean
2081
+ llms: boolean
2082
+ }
2083
+
2084
+ /** Generated crawl-manifest bodies, or a warning when generation is skipped. */
2085
+ export interface JsSiteMapsOutput {
2086
+ sitemapXml?: string
2087
+ robotsTxt?: string
2088
+ llmsTxt?: string
2089
+ warning?: string
2090
+ }
2091
+
1755
2092
  /** Custom social link for JavaScript. */
1756
2093
  export interface JsSocialLink {
1757
2094
  /** Icon label. */
@@ -2002,6 +2339,24 @@ export interface JsSsgPageData {
2002
2339
  markdownSource?: string
2003
2340
  }
2004
2341
 
2342
+ /** Resolved page routes plus collision and rejection diagnostics. */
2343
+ export interface JsSsgPageRouteOutput {
2344
+ /** Pages that still have a unique URL. */
2345
+ pages: Array<JsResolvedSsgRoutePage>
2346
+ /** Human-readable collision and rejection messages. */
2347
+ errors: Array<string>
2348
+ }
2349
+
2350
+ /** One page considered for cascade and permalink resolution. */
2351
+ export interface JsSsgRoutePageInput {
2352
+ /** Source path relative to the content root. */
2353
+ source: string
2354
+ /** File-tree URL before permalink or slug rewriting. */
2355
+ fileUrl: string
2356
+ /** Parsed frontmatter object. */
2357
+ frontmatter: Record<string, unknown>
2358
+ }
2359
+
2005
2360
  /** Resolved SSG output and public route paths. */
2006
2361
  export interface JsSsgRoutePaths {
2007
2362
  /** HTML output file path. */
@@ -2534,6 +2889,12 @@ export interface JsTransformOptions {
2534
2889
  * Default: disabled.
2535
2890
  */
2536
2891
  timelines?: JsTimelineOptions
2892
+ /**
2893
+ * Opt-in static `::: if` / `::: else` conditional blocks.
2894
+ *
2895
+ * Default: disabled.
2896
+ */
2897
+ conditionalBlocks?: JsConditionalBlockOptions
2537
2898
  /**
2538
2899
  * Opt-in `::: card` / `::: link-card` / `::: card-grid` blocks.
2539
2900
  *
@@ -2683,6 +3044,9 @@ export interface Mf2ValidateResult {
2683
3044
  /** Every language name and alias the native highlighter answers to. */
2684
3045
  export declare function nativeHighlightLanguages(): Array<string>
2685
3046
 
3047
+ /** Strips a trailing slash except for `/`. Unsafe values return `None`. */
3048
+ export declare function normalizeRedirectPath(value: string): string | null
3049
+
2686
3050
  /** Normalizes VitePress-specific frontmatter into ox-content's entry-page shape. */
2687
3051
  export declare function normalizeVitePressFrontmatter(frontmatter: any): any
2688
3052
 
@@ -2699,6 +3063,13 @@ export declare function parseAndRender(source: string, options?: JsParserOptions
2699
3063
  /** Parses Markdown and renders to HTML asynchronously (runs on worker thread). */
2700
3064
  export declare function parseAndRenderAsync(source: string, options?: JsParserOptions | undefined | null): Promise<unknown>
2701
3065
 
3066
+ /**
3067
+ * Parses a feed date — an epoch seconds/milliseconds integer, or a civil
3068
+ * date-time with an optional zone offset — returning `null` when the value
3069
+ * names no instant.
3070
+ */
3071
+ export declare function parseFeedDate(value?: string | undefined | null): JsParsedFeedDate | null
3072
+
2702
3073
  /** Parses Markdown source into a raw mdast memory block for JavaScript-side deserialization. */
2703
3074
  export declare function parseMdastRaw(source: string, options?: JsParserOptions | undefined | null): Uint8Array
2704
3075
 
@@ -2721,6 +3092,9 @@ export declare function parseScopedSearchQuery(query: string): JsScopedSearchQue
2721
3092
  */
2722
3093
  export declare function parseTransferRaw(source: string, kind: string, options?: JsParserOptions | undefined | null): Uint8Array
2723
3094
 
3095
+ /** Plans redirect pages and host files without writing anything. */
3096
+ export declare function planRedirects(options: JsRedirectsOptions, pages: Array<JsRedirectPage>): JsRedirectsOutput
3097
+
2724
3098
  /** Prepared Markdown source with parsed frontmatter. */
2725
3099
  export interface PreparedSourceResult {
2726
3100
  /** Markdown content after optional frontmatter removal. */
@@ -2756,6 +3130,9 @@ export declare function renderFrameworkComponentCode(html: string, target: strin
2756
3130
  /** Resolve Unhead-compatible page-head descriptors to HTML. */
2757
3131
  export declare function renderHead(inputJson: string): JsSsgHtmlResult
2758
3132
 
3133
+ /** Static HTML redirect body. `dest` is escaped; callers still validate it. */
3134
+ export declare function renderRedirectHtml(dest: string): string
3135
+
2759
3136
  /** Render result containing the HTML output. */
2760
3137
  export interface RenderResult {
2761
3138
  /** The rendered HTML. */
@@ -2770,6 +3147,9 @@ export declare function renderSsgSectionIndex(title: string, items: Array<JsSect
2770
3147
  /** Resolves manual SSG navigation groups. */
2771
3148
  export declare function resolveSsgNavigationGroups(navigation: Array<JsSsgNavigationGroup>, base: string, extension: string): Array<JsSsgNavGroup>
2772
3149
 
3150
+ /** Resolves permalink / slug routes and `_index` frontmatter cascade. */
3151
+ export declare function resolveSsgPageRoutes(pages: Array<JsSsgRoutePageInput>, permalinksEnabled: boolean, cascadeEnabled: boolean): JsSsgPageRouteOutput
3152
+
2773
3153
  /** Resolves all output and public route paths for an SSG page. */
2774
3154
  export declare function resolveSsgRoutePaths(inputPath: string, srcDir: string, outDir: string, base: string, extension: string, siteUrl?: string | undefined | null): JsSsgRoutePaths
2775
3155
 
@@ -2809,6 +3189,9 @@ export declare function transform(source: string, options?: JsTransformOptions |
2809
3189
  /** Transforms Markdown source asynchronously (runs on worker thread). */
2810
3190
  export declare function transformAsync(source: string, options?: JsTransformOptions | undefined | null): Promise<unknown>
2811
3191
 
3192
+ /** Numbers headings, figures, and tables, and links `@id` references to them. */
3193
+ export declare function transformCrossReferences(html: string, options: JsCrossReferencesOptions): JsCrossReferenceOutput
3194
+
2812
3195
  /**
2813
3196
  * Transforms Markdown into a raw mdast transfer buffer.
2814
3197
  *
@@ -2817,9 +3200,11 @@ export declare function transformAsync(source: string, options?: JsTransformOpti
2817
3200
  */
2818
3201
  export declare function transformMdastRaw(source: string, options?: JsTransformOptions | undefined | null): Uint8Array
2819
3202
 
2820
- /** Transform opt-in static media embed components in already-rendered HTML. */
2821
3203
  export declare function transformMediaEmbeds(html: string, options?: JsMediaEmbedsOptions | undefined | null): string
2822
3204
 
3205
+ /** Rewrites embeds and reports the tags no provider would render. */
3206
+ export declare function transformMediaEmbedsWithDiagnostics(html: string, options?: JsMediaEmbedsOptions | undefined | null): JsMediaEmbedsResult
3207
+
2823
3208
  /** Transforms mermaid code blocks in HTML to rendered SVG diagrams. */
2824
3209
  export declare function transformMermaid(html: string, mmdcPath: string): MermaidTransformResult
2825
3210
 
package/index.js CHANGED
@@ -173,9 +173,11 @@ module.exports.transformAsync = binding.transformAsync;
173
173
  module.exports.transformMdastRaw = binding.transformMdastRaw;
174
174
  module.exports.sanitizeHtml = binding.sanitizeHtml;
175
175
  module.exports.transformMediaEmbeds = binding.transformMediaEmbeds;
176
+ module.exports.transformMediaEmbedsWithDiagnostics = binding.transformMediaEmbedsWithDiagnostics;
176
177
  module.exports.transformPmEmbeds = binding.transformPmEmbeds;
177
178
  module.exports.transformTabsEmbeds = binding.transformTabsEmbeds;
178
179
  module.exports.transformYoutubeEmbeds = binding.transformYoutubeEmbeds;
180
+ module.exports.extractYoutubeVideoId = binding.extractYoutubeVideoId;
179
181
  module.exports.extractCodeBlocks = binding.extractCodeBlocks;
180
182
  module.exports.lintCodeBlocks = binding.lintCodeBlocks;
181
183
  module.exports.extractDocsTests = binding.extractDocsTests;
@@ -221,6 +223,7 @@ module.exports.nativeHighlightLanguages = binding.nativeHighlightLanguages;
221
223
  module.exports.generateSsgBarePage = binding.generateSsgBarePage;
222
224
  module.exports.getGitLastUpdated = binding.getGitLastUpdated;
223
225
  module.exports.getGitContributors = binding.getGitContributors;
226
+ module.exports.resolveSsgPageRoutes = binding.resolveSsgPageRoutes;
224
227
  module.exports.resolveSsgRoutePaths = binding.resolveSsgRoutePaths;
225
228
  module.exports.getSsgOutputPath = binding.getSsgOutputPath;
226
229
  module.exports.getSsgUrlPath = binding.getSsgUrlPath;
@@ -243,4 +246,12 @@ module.exports.checkI18nProject = binding.checkI18nProject;
243
246
  module.exports.extractTranslationKeys = binding.extractTranslationKeys;
244
247
  module.exports.renderFrameworkComponentCode = binding.renderFrameworkComponentCode;
245
248
  module.exports.renderSsgSectionIndex = binding.renderSsgSectionIndex;
249
+ module.exports.parseFeedDate = binding.parseFeedDate;
250
+ module.exports.generateFeedBodies = binding.generateFeedBodies;
251
+ module.exports.transformCrossReferences = binding.transformCrossReferences;
252
+ module.exports.planRedirects = binding.planRedirects;
253
+ module.exports.renderRedirectHtml = binding.renderRedirectHtml;
254
+ module.exports.isSafeRedirectDest = binding.isSafeRedirectDest;
255
+ module.exports.normalizeRedirectPath = binding.normalizeRedirectPath;
256
+ module.exports.generateSiteMapBodies = binding.generateSiteMapBodies;
246
257
  module.exports.escapeSvelteMarkup = binding.escapeSvelteMarkup;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ox-content/napi",
3
- "version": "3.0.0-alpha.10",
3
+ "version": "3.0.0-alpha.11",
4
4
  "description": "Node.js bindings for Ox Content - High-performance Markdown parser",
5
5
  "keywords": [
6
6
  "markdown",
@@ -47,12 +47,12 @@
47
47
  ]
48
48
  },
49
49
  "optionalDependencies": {
50
- "@ox-content/binding-darwin-x64": "3.0.0-alpha.10",
51
- "@ox-content/binding-darwin-arm64": "3.0.0-alpha.10",
52
- "@ox-content/binding-linux-x64-gnu": "3.0.0-alpha.10",
53
- "@ox-content/binding-linux-x64-musl": "3.0.0-alpha.10",
54
- "@ox-content/binding-linux-arm64-gnu": "3.0.0-alpha.10",
55
- "@ox-content/binding-linux-arm64-musl": "3.0.0-alpha.10",
56
- "@ox-content/binding-win32-x64-msvc": "3.0.0-alpha.10"
50
+ "@ox-content/binding-darwin-x64": "3.0.0-alpha.11",
51
+ "@ox-content/binding-darwin-arm64": "3.0.0-alpha.11",
52
+ "@ox-content/binding-linux-x64-gnu": "3.0.0-alpha.11",
53
+ "@ox-content/binding-linux-x64-musl": "3.0.0-alpha.11",
54
+ "@ox-content/binding-linux-arm64-gnu": "3.0.0-alpha.11",
55
+ "@ox-content/binding-linux-arm64-musl": "3.0.0-alpha.11",
56
+ "@ox-content/binding-win32-x64-msvc": "3.0.0-alpha.11"
57
57
  }
58
58
  }