@sonordev/site-kit 8.6.0 → 8.7.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/CHANGELOG.md +11 -0
- package/agent-manifest.json +1 -1
- package/dist/{AnalyticsProvider-GVJYL6XY.js → AnalyticsProvider-3UIQMIRW.js} +6 -6
- package/dist/{ArticleViewTracker-AOJXEBYM.js → ArticleViewTracker-KNXP2DXL.js} +5 -5
- package/dist/{BlocksPopup-AJ3CKVQG.js → BlocksPopup-DFE32GPX.js} +9 -8
- package/dist/{ChatWidget-EYBVB5SZ.js → ChatWidget-L74L4YAD.js} +5 -5
- package/dist/{FileField-UEQYIFRO.js → FileField-P3PLEAON.js} +3 -3
- package/dist/{FormSpotlight-H73ZZ66T.js → FormSpotlight-DNBSBRIE.js} +1 -1
- package/dist/{FormStage-2PLWWYBW.js → FormStage-I4JGLT57.js} +1 -1
- package/dist/{ManagedForm-ZQOFXEWS.js → ManagedForm-GJRGBM6W.js} +6 -6
- package/dist/{ManagedNewsletterForm-5TE47YZD.js → ManagedNewsletterForm-AUZ6YB7G.js} +9 -9
- package/dist/{SignalCore-FEFNMNYN.js → SignalCore-UV7K7PT4.js} +5 -5
- package/dist/SiteChat-6UWE545R.js +6 -0
- package/dist/SiteDesignReporter-ZSU76DZJ.js +13 -0
- package/dist/{SitePopups-C44YTQ3Q.js → SitePopups-XHWU7GNF.js} +6 -6
- package/dist/SitemapSync-ELWV6W7Y.js +9 -0
- package/dist/_client/booking-widget.js +5 -5
- package/dist/affiliates/index.js +3 -3
- package/dist/analytics/content-text.d.ts +17 -0
- package/dist/analytics/index.js +6 -6
- package/dist/{article-styles-VASFBYA3.js → article-styles-D7VCDXMG.js} +2 -1
- package/dist/article-tables-W45BE353.js +3 -0
- package/dist/articles/index.js +7 -20
- package/dist/articles/server-ui.js +29 -55
- package/dist/articles/server.js +6 -5
- package/dist/chat/index.js +8 -8
- package/dist/{chunk-3RDJKIYO.js → chunk-2WDWQI7K.js} +1 -1
- package/dist/{chunk-NI6ZTP3D.js → chunk-36ZMNBXZ.js} +1 -1
- package/dist/chunk-3MJNBOUO.js +8 -0
- package/dist/{chunk-ZZSAWXWD.js → chunk-3MLWIBHX.js} +1 -1
- package/dist/{chunk-BF7TZYC3.js → chunk-52KO4LKD.js} +1 -1
- package/dist/{chunk-U34O6I7W.js → chunk-5WHBYQJ4.js} +3 -3
- package/dist/{chunk-5D7ZISUP.js → chunk-7DYMM6SS.js} +11 -6
- package/dist/{chunk-GFY3E7EQ.js → chunk-7YB3QA4P.js} +15 -7
- package/dist/{chunk-6AWIUO2Z.js → chunk-A2MDVP47.js} +1 -1
- package/dist/{chunk-E4PTMORJ.js → chunk-AL5UCWLI.js} +23 -8
- package/dist/{chunk-O3Z5HHFP.js → chunk-BAJUXQTH.js} +2 -2
- package/dist/{chunk-IGAIQ2B3.js → chunk-BJYX6SFI.js} +2 -2
- package/dist/{chunk-72F44HKL.js → chunk-DJIGFX33.js} +1 -1
- package/dist/{chunk-AJG74ZZV.js → chunk-DPYGC7WE.js} +1 -1
- package/dist/{chunk-XA7Q2VQA.js → chunk-EK7P62DT.js} +1 -1
- package/dist/chunk-FXR5PJDL.js +420 -0
- package/dist/{chunk-OWO3RFEX.js → chunk-G5FD7UXK.js} +1 -1
- package/dist/{chunk-KTMHRXDT.js → chunk-HM7CDWFK.js} +1 -1
- package/dist/{chunk-CMUD37WV.js → chunk-HWQPCZOX.js} +1 -1
- package/dist/{chunk-6KU7STM3.js → chunk-HY7ZEU2C.js} +3 -1
- package/dist/chunk-IBHBEUZV.js +27 -0
- package/dist/{chunk-NUXXFCIT.js → chunk-IXZBOOAD.js} +4 -4
- package/dist/chunk-JESLPEST.js +14 -0
- package/dist/{chunk-BC7JMY4Z.js → chunk-JG53YJLM.js} +58 -1
- package/dist/{chunk-VA6IJ55K.js → chunk-JWCCY72G.js} +1 -1
- package/dist/{chunk-RI2N2EBI.js → chunk-JYITKUUB.js} +13 -5
- package/dist/chunk-KIYACQW3.js +1 -0
- package/dist/{chunk-OFSV5TZY.js → chunk-KLIDCNML.js} +1 -1
- package/dist/{chunk-7R2STOVD.js → chunk-L2KSHJS2.js} +3 -3
- package/dist/{chunk-HMTPRBYJ.js → chunk-LGWN6KCN.js} +1 -1
- package/dist/{chunk-YNBRVVTX.js → chunk-MJW6YIDJ.js} +1 -1
- package/dist/{chunk-BUE3Z32O.js → chunk-MNORERMF.js} +1 -1
- package/dist/{chunk-Y35BWW2C.js → chunk-ODOV76VW.js} +1 -1
- package/dist/{chunk-6NXFA7HE.js → chunk-OHLCE4GC.js} +2 -2
- package/dist/{chunk-QQT2T6JQ.js → chunk-P5PRR2BB.js} +1 -1
- package/dist/{chunk-JJ4JS3LD.js → chunk-PAYCK7FC.js} +1 -1
- package/dist/{chunk-DLM4FFNH.js → chunk-QTBAKOCZ.js} +1 -1
- package/dist/{chunk-L6QTERSH.js → chunk-RHT7OZNF.js} +1 -1
- package/dist/{chunk-YJH6WE76.js → chunk-RWWSOYJO.js} +9 -9
- package/dist/{chunk-JSW42BHL.js → chunk-T6TWPKBL.js} +1 -1
- package/dist/{chunk-FTSEP7Q3.js → chunk-U4OQJQK6.js} +3 -3
- package/dist/{chunk-IYCSDFPN.js → chunk-UYOE3HA4.js} +2 -2
- package/dist/chunk-VEJD5EJ2.js +344 -0
- package/dist/chunk-XAZC2TUD.js +1119 -0
- package/dist/{chunk-DSD3XZQQ.js → chunk-XC2TWYDV.js} +3 -3
- package/dist/{chunk-URJN75ZG.js → chunk-XIDWNXZN.js} +3 -3
- package/dist/chunk-XLAHRN4B.js +1 -0
- package/dist/{chunk-V67OD7RW.js → chunk-XZFOQ2V4.js} +113 -93
- package/dist/{chunk-QNOJSSQT.js → chunk-YYPYLYZM.js} +1 -1
- package/dist/client/index.js +4 -4
- package/dist/contracts/campaign-normalize.d.ts +2 -0
- package/dist/contracts/entries.d.ts +1 -1
- package/dist/contracts/funnels.d.ts +576 -0
- package/dist/contracts/inbox.d.ts +42 -0
- package/dist/contracts/llms.d.ts +200 -0
- package/dist/contracts/portfolio.d.ts +170 -0
- package/dist/contracts/publication-branding.d.ts +10 -2
- package/dist/contracts/site-cache.d.ts +2 -0
- package/dist/fleet/index.js +6 -6
- package/dist/forms/index.js +9 -9
- package/dist/forms/server.js +2 -2
- package/dist/images/index.js +4 -4
- package/dist/index.js +1 -1
- package/dist/landing/contract.d.ts +2 -13
- package/dist/landing/contract.js +2 -0
- package/dist/landing/index.js +4 -2
- package/dist/landing/managed-server.d.ts +21 -0
- package/dist/landing/managed.d.ts +11 -0
- package/dist/landing/metadata.js +2 -0
- package/dist/landing/server.d.ts +5 -0
- package/dist/landing/server.js +19 -2
- package/dist/layout/client.js +9 -9
- package/dist/layout/index.js +10 -10
- package/dist/llms/contract.js +2 -1
- package/dist/llms/index.js +9 -7
- package/dist/llms/merge.d.ts +29 -0
- package/dist/maps/index.js +3 -3
- package/dist/mcp/sonor.js +9 -8
- package/dist/portfolio/contract.js +1 -1
- package/dist/press-kit/articles/article-body.d.ts +13 -0
- package/dist/press-kit/articles/article-heading-ids.d.ts +7 -0
- package/dist/press-kit/articles/article-headings.d.ts +61 -0
- package/dist/press-kit/articles/html-tags.d.ts +46 -0
- package/dist/press-kit/articles/types.d.ts +2 -0
- package/dist/revalidate/index.js +3 -3
- package/dist/runtime/index.js +3 -3
- package/dist/seo/client.js +6 -6
- package/dist/seo/index.js +14 -13
- package/dist/seo/llms/contract.js +2 -1
- package/dist/seo/llms.js +9 -7
- package/dist/seo/meta/contract.js +2 -1
- package/dist/seo/register-sitemap-cli.js +1 -1
- package/dist/seo/server.js +5 -4
- package/dist/seo/sitemap.js +7 -5
- package/dist/seo-meta/contract.js +2 -1
- package/dist/server/index.js +3 -3
- package/dist/{server-api-EGOKC7Q3.js → server-api-XIKDWSNO.js} +2 -2
- package/dist/shared/build-entries.d.ts +3 -1
- package/dist/shared/markdown.d.ts +7 -6
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +2 -2
- package/dist/sitemap/index.js +7 -5
- package/dist/slots/index.js +2 -2
- package/dist/sync/index.js +5 -5
- package/dist/website/contract.js +2 -1
- package/dist/website/images.js +4 -4
- package/dist/website/index.js +10 -9
- package/dist/website/landing/server.js +19 -2
- package/dist/website/landing.js +4 -2
- package/dist/website/popups.js +9 -8
- package/dist/website/slots.js +2 -2
- package/dist/{writeLLMsTxt-KHVHNSDM.js → writeLLMsTxt-QN2HIVT4.js} +6 -4
- package/docs.json +5 -0
- package/package.json +1 -1
- package/src/analytics/README.md +1 -1
- package/src/landing/README.md +64 -0
- package/src/llms/README.md +52 -20
- package/dist/SiteChat-3MKYL2XM.js +0 -6
- package/dist/SiteDesignReporter-AJDIBNHI.js +0 -12
- package/dist/SitemapSync-UJA6JVPW.js +0 -9
- package/dist/article-tables-6XHVULPU.js +0 -2
- package/dist/chunk-EKBEOXTH.js +0 -114
- package/dist/chunk-NZ4RXN3G.js +0 -145
- package/dist/chunk-OSYCOC3K.js +0 -21
- /package/dist/{chunk-7ZWO5HDQ.js → chunk-BTHEQDN4.js} +0 -0
- /package/dist/{chunk-BQR4IPBW.js → chunk-ISRBSTB7.js} +0 -0
- /package/dist/{chunk-IHG36STL.js → chunk-XHYE24HU.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @sonordev/site-kit Changelog
|
|
2
2
|
|
|
3
|
+
## 8.7.0
|
|
4
|
+
|
|
5
|
+
- Add opt-in managed landing-page reads and a bounded server-rendered layout through `website/landing/server`. Published reads are site scoped and uncached. Private previews use inert conversion controls and suppress reporting.
|
|
6
|
+
- Share campaign normalization and the funnel cache tag with `@sonordev/contracts`. Existing authored landing-page imports remain available.
|
|
7
|
+
- `llms.txt` describes each page with its best source: the page's public summary, then its curated meta description, the meta description the page serves, its schema description and, last, a cleaned copy of its scraped text. A summary that mentions a phone number or an email address loses just that part and is still used; it used to be thrown away whole, and the page fell back to its scrape. Notes are cut at a sentence or word boundary, and a lead-in such as "This page covers" is dropped.
|
|
8
|
+
- A page whose title is its path is named from the path ("Accounting", not `/features/accounting`). A page that answered with an error, a `noindex` page and a utility page (cart, thank-you, login) are left out, and each path is listed once.
|
|
9
|
+
- The page index lists the home page and the key pages first, then one group per section of the site, with the legal pages last. When `maxPages` is smaller than the site, every section stays represented, most valuable first, instead of the end of an alphabetical list being cut.
|
|
10
|
+
- Sections now read About, Contact, Services, Site Pages, Portfolio, FAQ, with `## Optional` last. The contact block prints an address on one line with hours, and is left out when it has nothing in it. Service links are absolute URLs. The line under the name is the first sentence of the description, not the text up to its first full stop.
|
|
11
|
+
- `getLocalData` fills gaps field by field. An empty field from Sonor no longer deletes the business name, description, phone or address the site supplies, and the site's data is read whenever Sonor leaves services, FAQs, pages or those fields empty.
|
|
12
|
+
- The analytics page-text scrape keeps elements apart and leaves out menus, form fields, buttons and dialogs, so stored page text no longer runs a heading into the paragraph after it.
|
|
13
|
+
|
|
3
14
|
## 8.6.0
|
|
4
15
|
|
|
5
16
|
- Managed file fields can accept private documents with drag and drop, upload status, removal and retry. Configure `validation.private_attachments` and `validation.max_files` to accept up to four PDF, JPEG, PNG or WebP files, each up to 10 MB. This requires Sonor's private attachment endpoints; documents never fall back to public media uploads.
|
package/agent-manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": "@sonordev/site-kit",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.7.0",
|
|
5
5
|
"description": "Machine-readable manifest for coding agents integrating a site with Sonor. See AGENTS.md (shipped) and docs/SITE-KIT-AGENT-NATIVE.md.",
|
|
6
6
|
"env": {
|
|
7
7
|
"required": [
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { AnalyticsProvider, useAnalytics, useAnalyticsOptional, useTrackEvent } from './chunk-
|
|
1
|
+
export { AnalyticsProvider, useAnalytics, useAnalyticsOptional, useTrackEvent } from './chunk-7YB3QA4P.js';
|
|
2
2
|
import './chunk-LCDVPAMR.js';
|
|
3
3
|
import './chunk-IPQKQEWI.js';
|
|
4
4
|
import './chunk-L2V5PUFN.js';
|
|
5
5
|
import './chunk-GJWI74ZZ.js';
|
|
6
6
|
import './chunk-5TM3WPCI.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
7
|
+
import './chunk-QTBAKOCZ.js';
|
|
8
|
+
import './chunk-VEJD5EJ2.js';
|
|
9
|
+
import './chunk-UYOE3HA4.js';
|
|
10
|
+
import './chunk-P5PRR2BB.js';
|
|
11
11
|
import './chunk-W7OPEMGJ.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-MNORERMF.js';
|
|
13
13
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import './chunk-
|
|
2
|
+
import './chunk-A2MDVP47.js';
|
|
3
3
|
import './chunk-B7T2SFUF.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-JWCCY72G.js';
|
|
5
5
|
import './chunk-6T6CQVNL.js';
|
|
6
6
|
import './chunk-5ROTTMBL.js';
|
|
7
7
|
import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
@@ -15,10 +15,10 @@ import './chunk-LCDVPAMR.js';
|
|
|
15
15
|
import './chunk-IPQKQEWI.js';
|
|
16
16
|
import './chunk-GJWI74ZZ.js';
|
|
17
17
|
import './chunk-5TM3WPCI.js';
|
|
18
|
-
import { sonorFetch } from './chunk-
|
|
19
|
-
import './chunk-
|
|
18
|
+
import { sonorFetch } from './chunk-UYOE3HA4.js';
|
|
19
|
+
import './chunk-P5PRR2BB.js';
|
|
20
20
|
import { readPublishedApiConfig, readPublishedSite } from './chunk-W7OPEMGJ.js';
|
|
21
|
-
import './chunk-
|
|
21
|
+
import './chunk-MNORERMF.js';
|
|
22
22
|
import './chunk-PKBMQBKP.js';
|
|
23
23
|
import { useEffect } from 'react';
|
|
24
24
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { getSiteDesignTokens } from './chunk-
|
|
3
|
-
import { DEFAULT_POPUP_TOKENS, PopupBlocks } from './chunk-
|
|
4
|
-
import
|
|
2
|
+
import { getSiteDesignTokens } from './chunk-IXZBOOAD.js';
|
|
3
|
+
import { DEFAULT_POPUP_TOKENS, PopupBlocks } from './chunk-52KO4LKD.js';
|
|
4
|
+
import './chunk-XLAHRN4B.js';
|
|
5
|
+
import { normalizePopupBlocks, toHexColor, readableOn } from './chunk-XHYE24HU.js';
|
|
5
6
|
import './chunk-S22FSH7C.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
7
|
+
import './chunk-QTBAKOCZ.js';
|
|
8
|
+
import './chunk-VEJD5EJ2.js';
|
|
9
|
+
import './chunk-UYOE3HA4.js';
|
|
10
|
+
import './chunk-P5PRR2BB.js';
|
|
10
11
|
import './chunk-W7OPEMGJ.js';
|
|
11
|
-
import './chunk-
|
|
12
|
+
import './chunk-MNORERMF.js';
|
|
12
13
|
import './chunk-PKBMQBKP.js';
|
|
13
14
|
import { useState } from 'react';
|
|
14
15
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { ChatWidget, EchoChat, isChatEnabled } from './chunk-
|
|
1
|
+
export { ChatWidget, EchoChat, isChatEnabled } from './chunk-BJYX6SFI.js';
|
|
2
2
|
import './chunk-6T6CQVNL.js';
|
|
3
3
|
import './chunk-JE4A5S4F.js';
|
|
4
4
|
import './chunk-27FISYK4.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-LGWN6KCN.js';
|
|
6
6
|
import './chunk-Q6E4OPGG.js';
|
|
7
7
|
import './chunk-5ROTTMBL.js';
|
|
8
8
|
import './chunk-C2FZBUSS.js';
|
|
@@ -13,8 +13,8 @@ import './chunk-S22FSH7C.js';
|
|
|
13
13
|
import './chunk-L2V5PUFN.js';
|
|
14
14
|
import './chunk-GJWI74ZZ.js';
|
|
15
15
|
import './chunk-5TM3WPCI.js';
|
|
16
|
-
import './chunk-
|
|
17
|
-
import './chunk-
|
|
16
|
+
import './chunk-UYOE3HA4.js';
|
|
17
|
+
import './chunk-P5PRR2BB.js';
|
|
18
18
|
import './chunk-W7OPEMGJ.js';
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-MNORERMF.js';
|
|
20
20
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { sonorFetch } from './chunk-
|
|
3
|
-
import './chunk-
|
|
2
|
+
import { sonorFetch } from './chunk-UYOE3HA4.js';
|
|
3
|
+
import './chunk-P5PRR2BB.js';
|
|
4
4
|
import { getClientApiConfig } from './chunk-W7OPEMGJ.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-MNORERMF.js';
|
|
6
6
|
import './chunk-PKBMQBKP.js';
|
|
7
7
|
import React2, { useState, useRef } from 'react';
|
|
8
8
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { StageStyles, SummaryTick } from './chunk-3YKQLC7J.js';
|
|
3
|
-
import { stageFirstName, useFieldControls, stageViews, stageEstimate, AUTO_ADVANCE_TYPES } from './chunk-
|
|
3
|
+
import { stageFirstName, useFieldControls, stageViews, stageEstimate, AUTO_ADVANCE_TYPES } from './chunk-36ZMNBXZ.js';
|
|
4
4
|
import { readAgentSubmit, formToolAttributes } from './chunk-Q6E4OPGG.js';
|
|
5
5
|
import { isEmptyValue, unseenControlValues, isDisplayOnly } from './chunk-C2FZBUSS.js';
|
|
6
6
|
import { FormField } from './chunk-CVADNHJ4.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { StageStyles, SummaryTick } from './chunk-3YKQLC7J.js';
|
|
3
|
-
import { useFieldControls, stageViews, stageFirstName, stageEstimate, formatAnswer, AUTO_ADVANCE_TYPES } from './chunk-
|
|
3
|
+
import { useFieldControls, stageViews, stageFirstName, stageEstimate, formatAnswer, AUTO_ADVANCE_TYPES } from './chunk-36ZMNBXZ.js';
|
|
4
4
|
import { readAgentSubmit, formToolAttributes } from './chunk-Q6E4OPGG.js';
|
|
5
5
|
import { isEmptyValue, unseenControlValues } from './chunk-C2FZBUSS.js';
|
|
6
6
|
import { FormField } from './chunk-CVADNHJ4.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { ManagedForm } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { ManagedForm } from './chunk-L2KSHJS2.js';
|
|
2
|
+
import './chunk-36ZMNBXZ.js';
|
|
3
|
+
import './chunk-LGWN6KCN.js';
|
|
4
4
|
import './chunk-Q6E4OPGG.js';
|
|
5
5
|
import './chunk-5ROTTMBL.js';
|
|
6
6
|
import './chunk-C2FZBUSS.js';
|
|
@@ -12,8 +12,8 @@ import './chunk-NJCTQH2P.js';
|
|
|
12
12
|
import './chunk-L2V5PUFN.js';
|
|
13
13
|
import './chunk-GJWI74ZZ.js';
|
|
14
14
|
import './chunk-5TM3WPCI.js';
|
|
15
|
-
import './chunk-
|
|
16
|
-
import './chunk-
|
|
15
|
+
import './chunk-UYOE3HA4.js';
|
|
16
|
+
import './chunk-P5PRR2BB.js';
|
|
17
17
|
import './chunk-W7OPEMGJ.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-MNORERMF.js';
|
|
19
19
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-7R2STOVD.js';
|
|
3
|
-
import './chunk-NI6ZTP3D.js';
|
|
4
|
-
import './chunk-SOD2F6C2.js';
|
|
1
|
+
import './chunk-RHT7OZNF.js';
|
|
5
2
|
import './chunk-YGGDU6C3.js';
|
|
6
|
-
import
|
|
3
|
+
import './chunk-L2KSHJS2.js';
|
|
4
|
+
import './chunk-36ZMNBXZ.js';
|
|
5
|
+
import './chunk-SOD2F6C2.js';
|
|
6
|
+
import { useForm } from './chunk-LGWN6KCN.js';
|
|
7
7
|
import './chunk-Q6E4OPGG.js';
|
|
8
8
|
import './chunk-5ROTTMBL.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-G5FD7UXK.js';
|
|
10
10
|
import './chunk-C2FZBUSS.js';
|
|
11
11
|
import './chunk-YC7ELZS3.js';
|
|
12
12
|
import './chunk-DXO6SBMD.js';
|
|
@@ -19,10 +19,10 @@ import './chunk-DJAYFHVF.js';
|
|
|
19
19
|
import './chunk-L2V5PUFN.js';
|
|
20
20
|
import './chunk-GJWI74ZZ.js';
|
|
21
21
|
import './chunk-5TM3WPCI.js';
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
22
|
+
import './chunk-UYOE3HA4.js';
|
|
23
|
+
import './chunk-P5PRR2BB.js';
|
|
24
24
|
import './chunk-W7OPEMGJ.js';
|
|
25
|
-
import './chunk-
|
|
25
|
+
import './chunk-MNORERMF.js';
|
|
26
26
|
import './chunk-PKBMQBKP.js';
|
|
27
27
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
28
28
|
|
|
@@ -3,12 +3,12 @@ import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-IPQKQEWI.js'
|
|
|
3
3
|
import { onPageLeave } from './chunk-L2V5PUFN.js';
|
|
4
4
|
import './chunk-GJWI74ZZ.js';
|
|
5
5
|
import './chunk-5TM3WPCI.js';
|
|
6
|
-
import { isPrivatePreview } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import { sonorFetch } from './chunk-
|
|
9
|
-
import { getFreshCredential, isSiteToken } from './chunk-
|
|
6
|
+
import { isPrivatePreview } from './chunk-QTBAKOCZ.js';
|
|
7
|
+
import './chunk-VEJD5EJ2.js';
|
|
8
|
+
import { sonorFetch } from './chunk-UYOE3HA4.js';
|
|
9
|
+
import { getFreshCredential, isSiteToken } from './chunk-P5PRR2BB.js';
|
|
10
10
|
import { getClientApiConfig } from './chunk-W7OPEMGJ.js';
|
|
11
|
-
import './chunk-
|
|
11
|
+
import './chunk-MNORERMF.js';
|
|
12
12
|
import './chunk-PKBMQBKP.js';
|
|
13
13
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
14
14
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { SiteDesignReporter } from './chunk-XC2TWYDV.js';
|
|
2
|
+
import './chunk-IXZBOOAD.js';
|
|
3
|
+
import './chunk-XLAHRN4B.js';
|
|
4
|
+
import './chunk-XHYE24HU.js';
|
|
5
|
+
import './chunk-YC7ELZS3.js';
|
|
6
|
+
import './chunk-S22FSH7C.js';
|
|
7
|
+
import './chunk-QTBAKOCZ.js';
|
|
8
|
+
import './chunk-VEJD5EJ2.js';
|
|
9
|
+
import './chunk-UYOE3HA4.js';
|
|
10
|
+
import './chunk-P5PRR2BB.js';
|
|
11
|
+
import './chunk-W7OPEMGJ.js';
|
|
12
|
+
import './chunk-MNORERMF.js';
|
|
13
|
+
import './chunk-PKBMQBKP.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { SitePopups } from './chunk-
|
|
1
|
+
export { SitePopups } from './chunk-U4OQJQK6.js';
|
|
2
2
|
import './chunk-27FISYK4.js';
|
|
3
3
|
import './chunk-5ROTTMBL.js';
|
|
4
4
|
import './chunk-IPQKQEWI.js';
|
|
5
5
|
import './chunk-GJWI74ZZ.js';
|
|
6
6
|
import './chunk-5TM3WPCI.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
7
|
+
import './chunk-QTBAKOCZ.js';
|
|
8
|
+
import './chunk-VEJD5EJ2.js';
|
|
9
|
+
import './chunk-UYOE3HA4.js';
|
|
10
|
+
import './chunk-P5PRR2BB.js';
|
|
11
11
|
import './chunk-W7OPEMGJ.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-MNORERMF.js';
|
|
13
13
|
import './chunk-PKBMQBKP.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { SitemapSync } from './chunk-OHLCE4GC.js';
|
|
2
|
+
import './chunk-YVKRYQRG.js';
|
|
3
|
+
import './chunk-QTBAKOCZ.js';
|
|
4
|
+
import './chunk-VEJD5EJ2.js';
|
|
5
|
+
import './chunk-UYOE3HA4.js';
|
|
6
|
+
import './chunk-P5PRR2BB.js';
|
|
7
|
+
import './chunk-W7OPEMGJ.js';
|
|
8
|
+
import './chunk-MNORERMF.js';
|
|
9
|
+
import './chunk-PKBMQBKP.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { BookingWidget, BookingWidget_default as default } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
export { BookingWidget, BookingWidget_default as default } from '../chunk-YYPYLYZM.js';
|
|
3
|
+
import '../chunk-DJIGFX33.js';
|
|
4
4
|
import '../chunk-5ROTTMBL.js';
|
|
5
5
|
import '../chunk-5TM3WPCI.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-UYOE3HA4.js';
|
|
7
|
+
import '../chunk-P5PRR2BB.js';
|
|
8
8
|
import '../chunk-W7OPEMGJ.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-MNORERMF.js';
|
|
10
10
|
import '../chunk-PKBMQBKP.js';
|
package/dist/affiliates/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { sonorFetch } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
import { sonorFetch } from '../chunk-UYOE3HA4.js';
|
|
3
|
+
import '../chunk-P5PRR2BB.js';
|
|
4
4
|
import { getClientApiConfig } from '../chunk-W7OPEMGJ.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-MNORERMF.js';
|
|
6
6
|
import '../chunk-PKBMQBKP.js';
|
|
7
7
|
import { useState, useEffect } from 'react';
|
|
8
8
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The readable text of a page's main content, for `seo_pages.content_text`.
|
|
3
|
+
*
|
|
4
|
+
* `textContent` joins elements with nothing between them, so a heading, its
|
|
5
|
+
* tagline and the first paragraph came out as "Getting paid for the
|
|
6
|
+
* workIncome, spending, budgets.Track expenses", and a contact page as
|
|
7
|
+
* "First Name*Last Name*Email*PhoneMessage*Send Message". That text is stored,
|
|
8
|
+
* read by the metadata generators, and was the last-resort description in
|
|
9
|
+
* llms.txt. A space goes after every block element and in place of every line
|
|
10
|
+
* break, and a form's field names, buttons and dialogs are left out, so the
|
|
11
|
+
* text reads the way the page does. Sonor still cleans what older pages
|
|
12
|
+
* stored (`cleanScrapedPageText` in @sonordev/contracts/llms).
|
|
13
|
+
*/
|
|
14
|
+
/** The longest text stored, in characters. */
|
|
15
|
+
export declare const CONTENT_TEXT_MAX_LENGTH = 10000;
|
|
16
|
+
/** The text of `root`'s content with its elements apart, whitespace collapsed, at most `CONTENT_TEXT_MAX_LENGTH` characters. Leaves `root` as it was. */
|
|
17
|
+
export declare function extractContentText(root: Element): string;
|
package/dist/analytics/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { AnalyticsProvider, WebVitals, useAnalytics, useAnalyticsOptional, useTrackEvent } from '../chunk-
|
|
2
|
+
export { AnalyticsProvider, WebVitals, useAnalytics, useAnalyticsOptional, useTrackEvent } from '../chunk-7YB3QA4P.js';
|
|
3
3
|
import { trackConversion } from '../chunk-LCDVPAMR.js';
|
|
4
4
|
export { trackConversion, trackEvent } from '../chunk-LCDVPAMR.js';
|
|
5
5
|
import '../chunk-IPQKQEWI.js';
|
|
6
6
|
import '../chunk-L2V5PUFN.js';
|
|
7
7
|
import '../chunk-GJWI74ZZ.js';
|
|
8
8
|
import '../chunk-5TM3WPCI.js';
|
|
9
|
-
export { isCrossOriginFrame, isFramed, isTopFrameSameOrigin } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
9
|
+
export { isCrossOriginFrame, isFramed, isTopFrameSameOrigin } from '../chunk-QTBAKOCZ.js';
|
|
10
|
+
import '../chunk-VEJD5EJ2.js';
|
|
11
|
+
import '../chunk-UYOE3HA4.js';
|
|
12
|
+
import '../chunk-P5PRR2BB.js';
|
|
13
13
|
import '../chunk-W7OPEMGJ.js';
|
|
14
|
-
import '../chunk-
|
|
14
|
+
import '../chunk-MNORERMF.js';
|
|
15
15
|
import '../chunk-PKBMQBKP.js';
|
|
16
16
|
import { useCallback, useEffect } from 'react';
|
|
17
17
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { articlePhotoCss } from './chunk-WHPCGQHC.js';
|
|
2
|
-
import { articleTableCss } from './chunk-
|
|
2
|
+
import { articleTableCss } from './chunk-AL5UCWLI.js';
|
|
3
|
+
import './chunk-IBHBEUZV.js';
|
|
3
4
|
import './chunk-PKBMQBKP.js';
|
|
4
5
|
|
|
5
6
|
// packages/press-kit/src/articles/article-styles.ts
|
package/dist/articles/index.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { NewsletterShell } from '../chunk-JHTPHA2D.js';
|
|
3
2
|
export { ArticleFAQ } from '../chunk-BVB5FBAA.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import { NewsletterShell } from '../chunk-JHTPHA2D.js';
|
|
4
|
+
import { getAuthorSocialLinks, generateTableOfContents, readingTimeMinutes } from '../chunk-JG53YJLM.js';
|
|
5
|
+
export { ClusterNavigation, ServiceCallout, ServiceCallouts } from '../chunk-JG53YJLM.js';
|
|
6
6
|
import '../chunk-DJAYFHVF.js';
|
|
7
|
-
export { addExternalLinkTargets, linkClassificationHost, normalizeSiteHost, resolvePublicationSiteUrl } from '../chunk-
|
|
7
|
+
export { addExternalLinkTargets, linkClassificationHost, normalizeSiteHost, resolvePublicationSiteUrl } from '../chunk-7DYMM6SS.js';
|
|
8
8
|
import { generateAuthorSchema, resolveArticleArtwork, articleArtworkImageStyle } from '../chunk-UVYUTBT4.js';
|
|
9
9
|
export { resolveArticleArtwork } from '../chunk-UVYUTBT4.js';
|
|
10
10
|
import '../chunk-H72ZFO3F.js';
|
|
11
|
+
import '../chunk-IBHBEUZV.js';
|
|
11
12
|
import { createPublicationRoutes } from '../chunk-4K735O3J.js';
|
|
12
13
|
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-4K735O3J.js';
|
|
13
14
|
import { safeJsonLd } from '../chunk-4KZ6W3ZH.js';
|
|
@@ -20,7 +21,7 @@ import '../chunk-PKBMQBKP.js';
|
|
|
20
21
|
import React, { useState, Suspense, useEffect } from 'react';
|
|
21
22
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
22
23
|
|
|
23
|
-
var ManagedNewsletterForm = React.lazy(() => import('../ManagedNewsletterForm-
|
|
24
|
+
var ManagedNewsletterForm = React.lazy(() => import('../ManagedNewsletterForm-AUZ6YB7G.js'));
|
|
24
25
|
function NewsletterWidget({
|
|
25
26
|
title = "Subscribe to Our Newsletter",
|
|
26
27
|
description = "Get the latest posts delivered straight to your inbox.",
|
|
@@ -376,27 +377,13 @@ function AuthorPage({ author, posts, basePath, routing, siteUrl, siteName, jsonL
|
|
|
376
377
|
] })
|
|
377
378
|
] });
|
|
378
379
|
}
|
|
379
|
-
function parseHeadings(content) {
|
|
380
|
-
const headingRegex = /<h([2-4])[^>]*id="([^"]*)"[^>]*>(.*?)<\/h[2-4]>/gi;
|
|
381
|
-
const items = [];
|
|
382
|
-
let match;
|
|
383
|
-
while ((match = headingRegex.exec(content)) !== null) {
|
|
384
|
-
items.push({
|
|
385
|
-
level: parseInt(match[1]),
|
|
386
|
-
id: match[2],
|
|
387
|
-
text: match[3].replace(/<[^>]*>/g, "")
|
|
388
|
-
// Strip any nested HTML
|
|
389
|
-
});
|
|
390
|
-
}
|
|
391
|
-
return items;
|
|
392
|
-
}
|
|
393
380
|
function TableOfContents({
|
|
394
381
|
content,
|
|
395
382
|
className,
|
|
396
383
|
maxDepth = 3
|
|
397
384
|
}) {
|
|
398
385
|
const [activeId, setActiveId] = useState("");
|
|
399
|
-
const items =
|
|
386
|
+
const items = generateTableOfContents(content).filter((item) => item.level <= maxDepth);
|
|
400
387
|
useEffect(() => {
|
|
401
388
|
if (typeof window === "undefined") return;
|
|
402
389
|
const observer = new IntersectionObserver(
|
|
@@ -1,37 +1,52 @@
|
|
|
1
|
-
import { readingTimeMinutes, ServiceCallouts, ClusterNavigation, getAuthorSocialLinks } from '../chunk-
|
|
2
|
-
export { ClusterNavigation } from '../chunk-
|
|
1
|
+
import { generateTableOfContents, readingTimeMinutes, ServiceCallouts, ClusterNavigation, getAuthorSocialLinks, scanHeadings, ownId, slugify } from '../chunk-JG53YJLM.js';
|
|
2
|
+
export { ClusterNavigation } from '../chunk-JG53YJLM.js';
|
|
3
3
|
import { widgetStyle, widgetTitleStyle } from '../chunk-DJAYFHVF.js';
|
|
4
|
-
import { resolvePublicationSiteUrl, addExternalLinkTargets } from '../chunk-
|
|
5
|
-
import { fetchArticleBySlug, fetchRelatedArticles, fetchArticleCategories, getTopicCluster, ArticleUnavailableError } from '../chunk-
|
|
4
|
+
import { resolvePublicationSiteUrl, addExternalLinkTargets } from '../chunk-7DYMM6SS.js';
|
|
5
|
+
import { fetchArticleBySlug, articleBodyHtml, fetchRelatedArticles, fetchArticleCategories, getTopicCluster, ArticleUnavailableError } from '../chunk-JYITKUUB.js';
|
|
6
6
|
import { insertArticlePhotos } from '../chunk-WHPCGQHC.js';
|
|
7
7
|
export { articlePhotoCss, insertArticlePhotos } from '../chunk-WHPCGQHC.js';
|
|
8
|
-
export { articleTableCss, wrapArticleTables } from '../chunk-
|
|
8
|
+
export { articleTableCss, wrapArticleTables } from '../chunk-AL5UCWLI.js';
|
|
9
9
|
import { resolveArticleArtwork, articleArtworkImageStyle } from '../chunk-UVYUTBT4.js';
|
|
10
10
|
export { resolveArticleArtwork } from '../chunk-UVYUTBT4.js';
|
|
11
11
|
import '../chunk-H72ZFO3F.js';
|
|
12
|
+
import { stripHtmlTags } from '../chunk-IBHBEUZV.js';
|
|
12
13
|
import { createPublicationRoutes, articleCategorySlug } from '../chunk-4K735O3J.js';
|
|
13
14
|
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-4K735O3J.js';
|
|
14
15
|
import '../chunk-34ZYJTQR.js';
|
|
15
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-T6TWPKBL.js';
|
|
16
17
|
import '../chunk-UAYAJPEP.js';
|
|
17
18
|
import '../chunk-VWWITFWM.js';
|
|
18
19
|
import '../chunk-4KZ6W3ZH.js';
|
|
19
20
|
import { withSiteParam } from '../chunk-MJP63SSS.js';
|
|
20
|
-
import '../chunk-
|
|
21
|
+
import '../chunk-HY7ZEU2C.js';
|
|
21
22
|
import '../chunk-C7TLGL3R.js';
|
|
22
23
|
import '../chunk-MH2DSGC6.js';
|
|
23
24
|
import '../chunk-YVKRYQRG.js';
|
|
24
25
|
import '../chunk-FESKKJAS.js';
|
|
25
26
|
import '../chunk-A4CC4ZG3.js';
|
|
26
27
|
import '../chunk-W7OPEMGJ.js';
|
|
27
|
-
import '../chunk-
|
|
28
|
+
import '../chunk-MNORERMF.js';
|
|
28
29
|
import '../chunk-PKBMQBKP.js';
|
|
29
30
|
import 'server-only';
|
|
30
|
-
import { marked } from 'marked';
|
|
31
31
|
import { notFound } from 'next/navigation';
|
|
32
32
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
33
33
|
import React from 'react';
|
|
34
34
|
|
|
35
|
+
// packages/press-kit/src/articles/article-heading-ids.ts
|
|
36
|
+
function injectHeadingIds(html) {
|
|
37
|
+
let output = "";
|
|
38
|
+
let cursor = 0;
|
|
39
|
+
for (const { level, attributes, inner, start, end } of scanHeadings(html)) {
|
|
40
|
+
output += html.slice(cursor, start);
|
|
41
|
+
cursor = end;
|
|
42
|
+
if (ownId(attributes) !== null) {
|
|
43
|
+
output += html.slice(start, end);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
output += `<h${level}${attributes} id="${slugify(stripHtmlTags(inner))}">${inner}</h${level}>`;
|
|
47
|
+
}
|
|
48
|
+
return output + html.slice(cursor);
|
|
49
|
+
}
|
|
35
50
|
function getClusterNav(post) {
|
|
36
51
|
if (!post.cluster_id && !post.cluster_slug) return null;
|
|
37
52
|
const isPillar = post.article_type === "pillar";
|
|
@@ -47,46 +62,6 @@ function getClusterNav(post) {
|
|
|
47
62
|
is_pillar: isPillar
|
|
48
63
|
};
|
|
49
64
|
}
|
|
50
|
-
function looksLikeMarkdown(text) {
|
|
51
|
-
if (text.trimStart().startsWith("<")) return false;
|
|
52
|
-
const markers = [/^#{1,6}\s/m, /\*\*[^*]+\*\*/, /\[([^\]]+)\]\([^)]+\)/, /^[-*]\s/m, /^>\s/m];
|
|
53
|
-
let hits = 0;
|
|
54
|
-
for (const re of markers) if (re.test(text)) hits++;
|
|
55
|
-
return hits >= 2;
|
|
56
|
-
}
|
|
57
|
-
function slugify(text) {
|
|
58
|
-
return text.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "");
|
|
59
|
-
}
|
|
60
|
-
function ensureHtml(raw) {
|
|
61
|
-
if (!raw) return raw;
|
|
62
|
-
let html = raw;
|
|
63
|
-
if (looksLikeMarkdown(html)) {
|
|
64
|
-
html = marked.parse(html, { gfm: true, breaks: false, async: false });
|
|
65
|
-
}
|
|
66
|
-
html = injectHeadingIds(html);
|
|
67
|
-
return html;
|
|
68
|
-
}
|
|
69
|
-
function injectHeadingIds(html) {
|
|
70
|
-
return html.replace(/<h([2-4])([^>]*)>(.*?)<\/h[2-4]>/gi, (_full, level, attrs, inner) => {
|
|
71
|
-
if (/\bid\s*=/i.test(attrs)) return _full;
|
|
72
|
-
const text = inner.replace(/<[^>]*>/g, "");
|
|
73
|
-
const id = slugify(text);
|
|
74
|
-
return `<h${level}${attrs} id="${id}">${inner}</h${level}>`;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
function generateTableOfContents(html) {
|
|
78
|
-
const headingRegex = /<h([2-4])[^>]*(?:id="([^"]*)")?[^>]*>(.*?)<\/h[2-4]>/gi;
|
|
79
|
-
const items = [];
|
|
80
|
-
let match;
|
|
81
|
-
while ((match = headingRegex.exec(html)) !== null) {
|
|
82
|
-
const level = parseInt(match[1]);
|
|
83
|
-
const existingId = match[2];
|
|
84
|
-
const text = match[3].replace(/<[^>]*>/g, "");
|
|
85
|
-
const id = existingId || slugify(text);
|
|
86
|
-
items.push({ id, text, level });
|
|
87
|
-
}
|
|
88
|
-
return items;
|
|
89
|
-
}
|
|
90
65
|
function cls(unstyled, styles, key, defaultClass, extra) {
|
|
91
66
|
if (unstyled) return styles[key] || void 0;
|
|
92
67
|
const base = styles[key] || defaultClass;
|
|
@@ -118,8 +93,8 @@ async function Article({
|
|
|
118
93
|
}
|
|
119
94
|
const [post, { articleCss }, { wrapArticleTables: wrapArticleTables2 }] = await Promise.all([
|
|
120
95
|
fetchArticleBySlug({ apiUrl, apiKey, site }, slug),
|
|
121
|
-
unstyled ? Promise.resolve({ articleCss: "" }) : import('../article-styles-
|
|
122
|
-
import('../article-tables-
|
|
96
|
+
unstyled ? Promise.resolve({ articleCss: "" }) : import('../article-styles-D7VCDXMG.js'),
|
|
97
|
+
import('../article-tables-W45BE353.js')
|
|
123
98
|
]);
|
|
124
99
|
if (!post) {
|
|
125
100
|
if (notFound$1) notFound();
|
|
@@ -132,8 +107,7 @@ async function Article({
|
|
|
132
107
|
] })
|
|
133
108
|
] });
|
|
134
109
|
}
|
|
135
|
-
const
|
|
136
|
-
const content = ensureHtml(rawContent);
|
|
110
|
+
const content = injectHeadingIds(articleBodyHtml(post));
|
|
137
111
|
const siteUrlResolved = resolvePublicationSiteUrl(siteUrl);
|
|
138
112
|
const contentWithExternalTargets = wrapArticleTables2(addExternalLinkTargets(insertArticlePhotos(content, post.editorial_photos), siteUrlResolved));
|
|
139
113
|
const artwork = resolveArticleArtwork(post, "article");
|
|
@@ -144,7 +118,7 @@ async function Article({
|
|
|
144
118
|
...item,
|
|
145
119
|
answer: addExternalLinkTargets(item.answer || "", siteUrlResolved)
|
|
146
120
|
})) ?? faqRaw;
|
|
147
|
-
const { ArticleViewTracker } = await import('../ArticleViewTracker-
|
|
121
|
+
const { ArticleViewTracker } = await import('../ArticleViewTracker-KNXP2DXL.js');
|
|
148
122
|
if (children) {
|
|
149
123
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
150
124
|
/* @__PURE__ */ jsx(ArticleViewTracker, { slug: post.slug, site }),
|
|
@@ -426,7 +400,7 @@ async function ArticleList({
|
|
|
426
400
|
const [articleData, categories, { articleListCss }] = await Promise.all([
|
|
427
401
|
fetchArticleList({ apiUrl, apiKey, category, tag, author, featured, search, cluster, page, perPage, orderBy, order, site }),
|
|
428
402
|
showCategoryFilter ? fetchArticleCategories({ apiUrl, apiKey, site }) : Promise.resolve([]),
|
|
429
|
-
unstyled || children ? Promise.resolve({ articleListCss: "" }) : import('../article-styles-
|
|
403
|
+
unstyled || children ? Promise.resolve({ articleListCss: "" }) : import('../article-styles-D7VCDXMG.js')
|
|
430
404
|
]);
|
|
431
405
|
if (children) {
|
|
432
406
|
return children({ posts: articleData.posts, pagination: articleData.pagination, categories });
|
package/dist/articles/server.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
export { ArticleUnavailableError, FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, PUBLICATION_PREVIEW_COOKIE, PUBLICATION_PREVIEW_HEADERS, SEO_LIMITS, buildNewsSitemapXml, cdata, createPublicationPreviewHandler, generateAllArticleSchemas, generateArticleCategoryMetadata, generateArticleListSchema, generateArticleMetadata, generateArticleSchema, generateArticleSitemap, generateArticleStaticParams, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateNewsSitemap, generatePublicationMetadata, generateRssFeed, getAllArticleSlugs, getAllArticles, getAllAuthorSlugs, getArticle, getArticleCategories, getArticlePreview, getArticleResult, getAuthorBySlug, getAuthorPosts, getClusterNavigation, getPostsByCategory, getPublicationIssue, getPublicationIssues, getRelatedInsights, getTopicCluster, getTopicClusters, recentNewsPosts, requireArticle, sanitizeExcerpt, validateArticleSeo, validateMetaDescription, validateSeoTitle } from '../chunk-
|
|
1
|
+
export { ArticleUnavailableError, FEED_DEFAULT_ITEMS, NEWS_SITEMAP_MAX_URLS, NEWS_SITEMAP_WINDOW_MS, PUBLICATION_PREVIEW_COOKIE, PUBLICATION_PREVIEW_HEADERS, SEO_LIMITS, buildNewsSitemapXml, cdata, createPublicationPreviewHandler, generateAllArticleSchemas, generateArticleCategoryMetadata, generateArticleListSchema, generateArticleMetadata, generateArticleSchema, generateArticleSitemap, generateArticleStaticParams, generateAtomFeed, generateAuthorPageMetadata, generateAuthorStaticParams, generateBreadcrumbSchema, generateCategoryStaticParams, generateClusterArticleSchema, generateClusterBreadcrumbSchema, generateClusterItemListSchema, generateClusterLandingSchema, generateClusterPageMetadata, generateFaqSchema, generateHowToSchema, generateNewsSitemap, generatePublicationMetadata, generateRssFeed, getAllArticleSlugs, getAllArticles, getAllAuthorSlugs, getArticle, getArticleCategories, getArticlePreview, getArticleResult, getAuthorBySlug, getAuthorPosts, getClusterNavigation, getPostsByCategory, getPublicationIssue, getPublicationIssues, getRelatedInsights, getTopicCluster, getTopicClusters, recentNewsPosts, requireArticle, sanitizeExcerpt, validateArticleSeo, validateMetaDescription, validateSeoTitle } from '../chunk-JYITKUUB.js';
|
|
2
2
|
export { articlePhotoCss, insertArticlePhotos } from '../chunk-WHPCGQHC.js';
|
|
3
|
-
export { articleTableCss, wrapArticleTables } from '../chunk-
|
|
3
|
+
export { articleTableCss, wrapArticleTables } from '../chunk-AL5UCWLI.js';
|
|
4
4
|
export { articleImageSchema, authorEntityId, generateArticleAuthorNode, generateAuthorPersonSchema, generateAuthorSchema, resolveArticleArtwork, resolveRepresentativeImage, withArticleAuthorIdentity } from '../chunk-UVYUTBT4.js';
|
|
5
5
|
import '../chunk-H72ZFO3F.js';
|
|
6
|
+
import '../chunk-IBHBEUZV.js';
|
|
6
7
|
export { articleCategorySlug, createPublicationRoutes, resolveArticleUrl, resolvePublicationUrl } from '../chunk-4K735O3J.js';
|
|
7
8
|
import '../chunk-34ZYJTQR.js';
|
|
8
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-T6TWPKBL.js';
|
|
9
10
|
import '../chunk-UAYAJPEP.js';
|
|
10
11
|
import '../chunk-VWWITFWM.js';
|
|
11
12
|
import '../chunk-4KZ6W3ZH.js';
|
|
12
13
|
import '../chunk-MJP63SSS.js';
|
|
13
|
-
import '../chunk-
|
|
14
|
+
import '../chunk-HY7ZEU2C.js';
|
|
14
15
|
import '../chunk-C7TLGL3R.js';
|
|
15
16
|
import '../chunk-MH2DSGC6.js';
|
|
16
17
|
import '../chunk-YVKRYQRG.js';
|
|
17
18
|
import '../chunk-FESKKJAS.js';
|
|
18
19
|
import '../chunk-A4CC4ZG3.js';
|
|
19
20
|
import '../chunk-W7OPEMGJ.js';
|
|
20
|
-
import '../chunk-
|
|
21
|
+
import '../chunk-MNORERMF.js';
|
|
21
22
|
import '../chunk-PKBMQBKP.js';
|