@sonordev/site-kit 7.0.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3606 -0
- package/README.md +12 -13
- package/agent-manifest.json +11 -5
- package/dist/{AnalyticsProvider-EMM2TKRE.js → AnalyticsProvider-ZMQUV33M.js} +4 -4
- package/dist/{ArticleViewTracker-RA64BGL6.js → ArticleViewTracker-V7NUXYBY.js} +3 -3
- package/dist/{BlocksPopup-D25RFNOV.js → BlocksPopup-52EU7OUY.js} +4 -4
- package/dist/{ChatWidget-RYI7BMJJ.js → ChatWidget-5BHMNR57.js} +5 -5
- package/dist/{EngageWidget-UKFCN33M.js → EngageWidget-PCGLX7SO.js} +4 -4
- package/dist/{FileField-MUHA7LZR.js → FileField-TSFGNAMY.js} +3 -3
- package/dist/{FormSpotlight-TCLPWPLL.js → FormSpotlight-XLBWEOTE.js} +1 -1
- package/dist/{FormStage-CNYLP6I6.js → FormStage-IJQ5Q2X6.js} +1 -1
- package/dist/{ManagedForm-7ZL5SKTO.js → ManagedForm-Z3PKOPIZ.js} +6 -6
- package/dist/{ManagedNewsletterForm-33B4JLX7.js → ManagedNewsletterForm-QAO3POLC.js} +4 -4
- package/dist/{SignalCore-L5FVDHFE.js → SignalCore-RBA3VDBL.js} +3 -3
- package/dist/{SiteDesignReporter-4JOFL4FP.js → SiteDesignReporter-C4LR5X2V.js} +5 -5
- package/dist/SitemapSync-XVMGKCF3.js +8 -0
- package/dist/_client/booking-widget.js +5 -5
- package/dist/affiliates/index.js +3 -3
- package/dist/analytics/index.js +4 -4
- package/dist/articles/index.js +1 -1
- package/dist/articles/server-ui.js +1 -1
- package/dist/chat/index.js +5 -5
- package/dist/{chunk-FYBZ5SNP.js → chunk-3G2SE2J4.js} +1 -1
- package/dist/{chunk-HGCK465A.js → chunk-3J2ERO3I.js} +1 -1
- package/dist/{chunk-KXPBMCFL.js → chunk-3QI26673.js} +3 -1
- package/dist/{chunk-BMO3VGMR.js → chunk-3XPJKZ6D.js} +30 -7
- package/dist/{chunk-QGHSMJKW.js → chunk-4JQQDCMO.js} +1 -1
- package/dist/{chunk-6HDT4G4A.js → chunk-4YTYGG2C.js} +2 -2
- package/dist/{chunk-N2UVOR3X.js → chunk-662ILEZ6.js} +2 -0
- package/dist/chunk-6G43IRWR.js +4 -0
- package/dist/{chunk-LVESVYCE.js → chunk-7MHHWZKC.js} +11 -117
- package/dist/{chunk-MV2MBTC3.js → chunk-7QTMMHUO.js} +1 -1
- package/dist/{chunk-KPAZG65P.js → chunk-CGWUXUYZ.js} +138 -46
- package/dist/{chunk-4IQ52CXL.js → chunk-DUAO4Q75.js} +2 -2
- package/dist/{chunk-4RMVXRBO.js → chunk-EIULXXUJ.js} +3 -3
- package/dist/{chunk-3KUUH2YP.js → chunk-EVFZ7KEW.js} +1 -1
- package/dist/{chunk-OFOAHPUV.js → chunk-F42R35NV.js} +1 -1
- package/dist/{chunk-QANVUXKH.js → chunk-FLR3EMK6.js} +1 -1
- package/dist/{chunk-P4GRY6QP.js → chunk-GIAOPEN6.js} +1 -1
- package/dist/{chunk-P5J7VMQ3.js → chunk-GWUKQ26F.js} +1 -1
- package/dist/{chunk-TT63HHIT.js → chunk-HAG4YIZY.js} +1 -1
- package/dist/{chunk-QZZIKMAT.js → chunk-HVH37YPX.js} +1 -1
- package/dist/{chunk-SSUQKA7L.js → chunk-J4D6ZXRW.js} +1 -1
- package/dist/{chunk-GYESATRY.js → chunk-L2DJD5Y4.js} +1 -1
- package/dist/{chunk-WATH55UY.js → chunk-LFXVE32I.js} +1 -1
- package/dist/chunk-LPH5FANE.js +169 -0
- package/dist/{chunk-V6LSQRTH.js → chunk-PLUP2KN5.js} +1 -1
- package/dist/chunk-RYVDGXC2.js +19 -0
- package/dist/{chunk-EGOD74PP.js → chunk-U35H2JIQ.js} +2 -2
- package/dist/chunk-VCJYLYJV.js +49 -0
- package/dist/{chunk-FL4EPUWA.js → chunk-W2CL2DB3.js} +2 -2
- package/dist/{chunk-UZN4ZYR2.js → chunk-XD3ZQET6.js} +1 -1
- package/dist/{chunk-CVTVNC2U.js → chunk-XNVSCQ2O.js} +2 -2
- package/dist/{chunk-T3MC4HOD.js → chunk-YLSEB32F.js} +1 -1
- package/dist/chunk-ZETJTCMV.js +118 -0
- package/dist/{chunk-5SEM2V4A.js → chunk-ZIMFQWGJ.js} +3 -3
- package/dist/client/index.js +3 -3
- package/dist/cms/CmsPage.d.ts +1 -0
- package/dist/cms/CmsPreview.d.ts +1 -0
- package/dist/cms/CmsSection.d.ts +1 -0
- package/dist/cms/index.d.ts +6 -0
- package/dist/cms/server-api.d.ts +3 -0
- package/dist/commerce/index.js +4 -4
- package/dist/config/index.js +1 -1
- package/dist/contracts/entries.d.ts +1 -1
- package/dist/contracts/site-cache.d.ts +55 -0
- package/dist/contracts/site-edit-param.d.ts +7 -0
- package/dist/contracts/site-edit.d.ts +77 -0
- package/dist/contracts/slot-content.d.ts +111 -0
- package/dist/contracts/slots.d.ts +39 -25
- package/dist/engage/index.js +6 -6
- package/dist/fleet/index.js +4 -4
- package/dist/forms/index.js +8 -8
- package/dist/forms/server.js +2 -2
- package/dist/forms/types.d.ts +3 -1
- package/dist/images/index.js +4 -4
- package/dist/index.js +1 -1
- package/dist/layout/client.js +8 -7
- package/dist/layout/index.js +9 -8
- package/dist/llms/index.js +4 -2
- package/dist/llms/seo-revalidate.d.ts +8 -1
- package/dist/maps/index.js +3 -3
- package/dist/mcp/sonor.js +6 -6
- package/dist/overlay-RXV6U6QC.js +353 -0
- package/dist/proxy/index.js +2 -2
- package/dist/proxy/securityHeaders.d.ts +4 -0
- package/dist/revalidate/index.d.ts +44 -0
- package/dist/revalidate/index.js +27 -0
- package/dist/seo/ManagedContent.d.ts +2 -0
- package/dist/seo/client.js +4 -4
- package/dist/seo/index.js +9 -8
- package/dist/seo/llms.js +4 -2
- package/dist/seo/register-sitemap-cli.js +1 -1
- package/dist/seo/server.js +3 -2
- package/dist/seo/sitemap.js +2 -2
- package/dist/server/index.js +2 -2
- package/dist/{server-api-GJJQZVG7.js → server-api-BVCBLJKL.js} +2 -1
- package/dist/shared/build-entries.d.ts +1 -0
- package/dist/shared/edit-bridge.d.ts +8 -0
- package/dist/shared/version.d.ts +1 -1
- package/dist/signal/index.js +2 -2
- package/dist/sitemap/index.js +2 -2
- package/dist/slots/ManagedLink.d.ts +31 -0
- package/dist/slots/ManagedList.d.ts +30 -0
- package/dist/slots/ManagedRichText.d.ts +31 -0
- package/dist/slots/contract.js +2 -1
- package/dist/slots/edit/locate.d.ts +30 -0
- package/dist/slots/edit/overlay.d.ts +18 -0
- package/dist/slots/index.d.ts +12 -4
- package/dist/slots/index.js +4 -2
- package/dist/slots/revalidate.d.ts +8 -3
- package/dist/slots/rich.d.ts +7 -0
- package/dist/slots/server-api.d.ts +6 -2
- package/dist/sync/index.js +5 -5
- package/dist/website/images.js +4 -4
- package/dist/website/index.js +5 -5
- package/dist/website/popups.js +4 -4
- package/dist/website/slots/contract.js +2 -1
- package/dist/website/slots.js +4 -2
- package/dist/{writeLLMsTxt-UMHKGNRR.js → writeLLMsTxt-QR23OQUE.js} +1 -1
- package/docs/MIGRATING-TO-7.md +146 -0
- package/docs.json +69 -0
- package/package.json +14 -4
- package/src/admin-auth/README.md +88 -0
- package/src/analytics/README.md +264 -0
- package/src/articles/README.md +325 -0
- package/src/commerce/README.md +109 -0
- package/src/cta-bar/README.md +154 -0
- package/src/engage/README.md +241 -0
- package/src/forms/README.md +219 -0
- package/src/images/README.md +74 -0
- package/src/layout/README.md +66 -0
- package/src/llms/README.md +723 -0
- package/src/mcp/README.md +376 -0
- package/src/motion/README.md +372 -0
- package/src/og/README.md +304 -0
- package/src/proxy/README.md +152 -0
- package/src/redirects/README.md +74 -0
- package/src/reputation/README.md +64 -0
- package/src/revalidate/README.md +82 -0
- package/src/seo/README.md +346 -0
- package/src/signal/README.md +115 -0
- package/src/sitemap/README.md +127 -0
- package/src/slots/README.md +168 -0
- package/src/sync/README.md +115 -0
- package/dist/SitemapSync-7WKY4HXI.js +0 -8
- package/dist/chunk-SS636UDN.js +0 -35
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ export const config = {
|
|
|
73
73
|
}
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
Handles
|
|
76
|
+
Handles Sonor-managed redirects, security headers, and AI discovery headers.
|
|
77
77
|
|
|
78
78
|
**CLI (optional — scaffolds everything):**
|
|
79
79
|
|
|
@@ -96,15 +96,15 @@ Every module has its own README in `src/<module>/README.md` with full API docs,
|
|
|
96
96
|
| **Layout** | `@sonordev/site-kit/layout` | RSC layout that composes all features | [README](src/layout/README.md) |
|
|
97
97
|
| **SEO** | `@sonordev/site-kit/seo` | Managed metadata, schemas, FAQs, internal links | [README](src/seo/README.md) |
|
|
98
98
|
| **Analytics** | `@sonordev/site-kit/analytics` | Page views, events, conversions, Web Vitals | [README](src/analytics/README.md) |
|
|
99
|
-
| **Sitemap** | `@sonordev/site-kit/seo/sitemap` | Auto-generated sitemap with
|
|
99
|
+
| **Sitemap** | `@sonordev/site-kit/seo/sitemap` | Auto-generated sitemap with Sonor sync. URLs follow next.config `trailingSlash` | [README](src/sitemap/README.md) |
|
|
100
100
|
| **Proxy** | `@sonordev/site-kit/proxy` | Redirects, security headers, AI discovery (`./middleware` is its 7.x alias) | [README](src/proxy/README.md) |
|
|
101
|
-
| **Redirects** | `@sonordev/site-kit/seo/redirects` |
|
|
101
|
+
| **Redirects** | `@sonordev/site-kit/seo/redirects` | Sonor-managed 301/302 redirect rules | [README](src/redirects/README.md) |
|
|
102
102
|
|
|
103
103
|
### Content
|
|
104
104
|
|
|
105
105
|
| Module | Import | Purpose | Docs |
|
|
106
106
|
|--------|--------|---------|------|
|
|
107
|
-
| **Articles** | `@sonordev/site-kit/articles` |
|
|
107
|
+
| **Articles** | `@sonordev/site-kit/articles` | Sonor-managed articles with SSG, topic clusters, E-E-A-T | [README](src/articles/README.md) |
|
|
108
108
|
| **Images** | `@sonordev/site-kit/website/images` | Managed image slots with dev-mode editing | [README](src/images/README.md) |
|
|
109
109
|
| **Reputation** | `@sonordev/site-kit/reputation` | Reviews, testimonials, rating stats | [README](src/reputation/README.md) |
|
|
110
110
|
|
|
@@ -161,7 +161,7 @@ SONOR_API_KEY in .env.local
|
|
|
161
161
|
▼
|
|
162
162
|
SiteKitLayout (RSC server component)
|
|
163
163
|
├── Server-side:
|
|
164
|
-
│ ├── ManagedFavicon (
|
|
164
|
+
│ ├── ManagedFavicon (Sonor logo → <link> tags)
|
|
165
165
|
│ ├── ManagedScripts (tracking pixels, analytics tags)
|
|
166
166
|
│ └── API preconnect hints
|
|
167
167
|
│
|
|
@@ -173,12 +173,12 @@ SiteKitLayout (RSC server component)
|
|
|
173
173
|
│ └── FleetHeartbeat (kit version + modules, once per session)
|
|
174
174
|
│
|
|
175
175
|
└── Middleware (separate):
|
|
176
|
-
├── Redirects (
|
|
176
|
+
├── Redirects (Sonor-managed 301/302)
|
|
177
177
|
├── Security headers (CSP frame-ancestors, nosniff, etc.)
|
|
178
178
|
└── AI discovery (Link: rel="describedby" → /llms.txt)
|
|
179
179
|
```
|
|
180
180
|
|
|
181
|
-
All data flows through the
|
|
181
|
+
All data flows through the Sonor API (`api.sonor.io`) authenticated by your API key. No direct database access, no Supabase keys exposed to the client.
|
|
182
182
|
|
|
183
183
|
---
|
|
184
184
|
|
|
@@ -261,9 +261,8 @@ import '@sonordev/site-kit/forms/styles.css'
|
|
|
261
261
|
SONOR_API_KEY=sonor_xxxxxxxx_xxxxx
|
|
262
262
|
|
|
263
263
|
# Optional:
|
|
264
|
-
SONOR_API_URL=https://api.sonor.io #
|
|
264
|
+
SONOR_API_URL=https://api.sonor.io # Sonor API (default)
|
|
265
265
|
NEXT_PUBLIC_SITE_URL=https://example.com # For CLI status checks + sitemap
|
|
266
|
-
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=6Le... # reCAPTCHA Enterprise (forms)
|
|
267
266
|
REVALIDATION_SECRET=your_secret # On-demand ISR for llms.txt
|
|
268
267
|
MCP_TRANSPORT_SECRET=... # Netlify MCP relay (npx sonor-setup mcp writes it)
|
|
269
268
|
```
|
|
@@ -288,7 +287,7 @@ Commands:
|
|
|
288
287
|
setup AI-powered SEO setup (metadata, schemas, FAQs)
|
|
289
288
|
scan Scan codebase for integration opportunities
|
|
290
289
|
migrate Migrate detected components to site-kit
|
|
291
|
-
sync Sync local content to
|
|
290
|
+
sync Sync local content to Sonor
|
|
292
291
|
status Health check (API, llms.txt, sitemap, layout)
|
|
293
292
|
geo Check GEO/llms.txt wiring
|
|
294
293
|
images Scan, upload, and manage images
|
|
@@ -320,11 +319,11 @@ import type { SiteKitLayoutProps } from '@sonordev/site-kit/layout'
|
|
|
320
319
|
|
|
321
320
|
## Architecture Note
|
|
322
321
|
|
|
323
|
-
`@sonordev/site-kit` is the client bridge between Next.js marketing sites and the Sonor platform. All persistent data (forms, articles, SEO config, analytics) lives in
|
|
322
|
+
`@sonordev/site-kit` is the client bridge between Next.js marketing sites and the Sonor platform. All persistent data (forms, articles, SEO config, analytics) lives in Sonor — site-kit fetches, renders, and tracks.
|
|
324
323
|
|
|
325
324
|
- **Server components** (SEO, Articles, Images): Import directly, RSC-compatible, no provider needed
|
|
326
325
|
- **Client modules** (Analytics, Engage, Signal): Lazy-loaded via `SiteKitLayout`, tree-shaken
|
|
327
|
-
- **Build-time** (Sitemap, llms.txt): Run during `next build`, sync to
|
|
326
|
+
- **Build-time** (Sitemap, llms.txt): Run during `next build`, sync to Sonor
|
|
328
327
|
- **Middleware** (Redirects, Security, AI Discovery): Runs on every request edge
|
|
329
328
|
|
|
330
|
-
|
|
329
|
+
Full docs for every module: [sonor.dev](https://sonor.dev).
|
package/agent-manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"package": "@sonordev/site-kit",
|
|
4
|
-
"version": "7.0
|
|
4
|
+
"version": "7.1.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": [
|
|
@@ -322,7 +322,7 @@
|
|
|
322
322
|
"name": "slots",
|
|
323
323
|
"import": "@sonordev/site-kit/slots",
|
|
324
324
|
"side": "server",
|
|
325
|
-
"purpose": "Managed
|
|
325
|
+
"purpose": "Managed copy — named, Sonor-editable text, rich text, links and lists inside elements you own.",
|
|
326
326
|
"stability": "deprecated",
|
|
327
327
|
"movedTo": [
|
|
328
328
|
"@sonordev/site-kit/website/slots"
|
|
@@ -337,6 +337,12 @@
|
|
|
337
337
|
"@sonordev/site-kit/website/slots/contract"
|
|
338
338
|
]
|
|
339
339
|
},
|
|
340
|
+
{
|
|
341
|
+
"name": "revalidate",
|
|
342
|
+
"import": "@sonordev/site-kit/revalidate",
|
|
343
|
+
"side": "server",
|
|
344
|
+
"purpose": "Live updates — the one-line /api/seo-revalidate route Sonor calls when content changes, so cached pages refresh in seconds."
|
|
345
|
+
},
|
|
340
346
|
{
|
|
341
347
|
"name": "sites/contract",
|
|
342
348
|
"import": "@sonordev/site-kit/sites/contract",
|
|
@@ -404,7 +410,7 @@
|
|
|
404
410
|
"name": "website/slots",
|
|
405
411
|
"import": "@sonordev/site-kit/website/slots",
|
|
406
412
|
"side": "server",
|
|
407
|
-
"purpose": "Managed
|
|
413
|
+
"purpose": "Managed copy — named, Sonor-editable text, rich text, links and lists inside elements you own."
|
|
408
414
|
},
|
|
409
415
|
{
|
|
410
416
|
"name": "website/slots/contract",
|
|
@@ -415,7 +421,7 @@
|
|
|
415
421
|
"name": "website/cms",
|
|
416
422
|
"import": "@sonordev/site-kit/website/cms",
|
|
417
423
|
"side": "mixed",
|
|
418
|
-
"purpose": "Sanity
|
|
424
|
+
"purpose": "Deprecated in 7.1, removed in 8.0: the retired Sanity CMS. Use slots (managed copy) instead."
|
|
419
425
|
},
|
|
420
426
|
{
|
|
421
427
|
"name": "website/cms/server",
|
|
@@ -608,7 +614,7 @@
|
|
|
608
614
|
"name": "cms",
|
|
609
615
|
"import": "@sonordev/site-kit/cms",
|
|
610
616
|
"side": "mixed",
|
|
611
|
-
"purpose": "Sanity
|
|
617
|
+
"purpose": "Deprecated in 7.1, removed in 8.0: the retired Sanity CMS. Use slots (managed copy) instead.",
|
|
612
618
|
"stability": "deprecated",
|
|
613
619
|
"movedTo": [
|
|
614
620
|
"@sonordev/site-kit/website/cms"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { AnalyticsProvider, useAnalytics, useAnalyticsOptional, useTrackEvent } from './chunk-
|
|
1
|
+
export { AnalyticsProvider, useAnalytics, useAnalyticsOptional, useTrackEvent } from './chunk-3J2ERO3I.js';
|
|
2
2
|
import './chunk-LCDVPAMR.js';
|
|
3
3
|
import './chunk-24QZEO3Q.js';
|
|
4
4
|
import './chunk-L2V5PUFN.js';
|
|
5
5
|
import './chunk-GJWI74ZZ.js';
|
|
6
6
|
import './chunk-43OCZ3JA.js';
|
|
7
7
|
import './chunk-EKBEOXTH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
8
|
+
import './chunk-U35H2JIQ.js';
|
|
9
|
+
import './chunk-EVFZ7KEW.js';
|
|
10
|
+
import './chunk-4JQQDCMO.js';
|
|
11
11
|
import './chunk-PKBMQBKP.js';
|
|
@@ -3,9 +3,9 @@ import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
|
3
3
|
import { withSiteBody } from './chunk-MJP63SSS.js';
|
|
4
4
|
import './chunk-FESKKJAS.js';
|
|
5
5
|
import './chunk-A4CC4ZG3.js';
|
|
6
|
-
import { sonorFetch } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
6
|
+
import { sonorFetch } from './chunk-U35H2JIQ.js';
|
|
7
|
+
import './chunk-EVFZ7KEW.js';
|
|
8
|
+
import './chunk-4JQQDCMO.js';
|
|
9
9
|
import './chunk-PKBMQBKP.js';
|
|
10
10
|
import { useEffect } from 'react';
|
|
11
11
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { getSiteDesignTokens } from './chunk-
|
|
2
|
+
import { getSiteDesignTokens } from './chunk-W2CL2DB3.js';
|
|
3
3
|
import { DEFAULT_POPUP_TOKENS, PopupBlocks } from './chunk-JSZN6LDZ.js';
|
|
4
4
|
import { normalizePopupBlocks, toHexColor, readableOn } from './chunk-IHG36STL.js';
|
|
5
5
|
import './chunk-S22FSH7C.js';
|
|
6
6
|
import './chunk-43OCZ3JA.js';
|
|
7
7
|
import './chunk-EKBEOXTH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
8
|
+
import './chunk-U35H2JIQ.js';
|
|
9
|
+
import './chunk-EVFZ7KEW.js';
|
|
10
|
+
import './chunk-4JQQDCMO.js';
|
|
11
11
|
import './chunk-PKBMQBKP.js';
|
|
12
12
|
import { useState } from 'react';
|
|
13
13
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { ChatWidget, EchoChat, isChatEnabled } from './chunk-
|
|
1
|
+
export { ChatWidget, EchoChat, isChatEnabled } from './chunk-DUAO4Q75.js';
|
|
2
2
|
import './chunk-JE4A5S4F.js';
|
|
3
3
|
import './chunk-NDF4A5JM.js';
|
|
4
4
|
import './chunk-6T6CQVNL.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-XD3ZQET6.js';
|
|
6
6
|
import './chunk-AQSNPZY4.js';
|
|
7
7
|
import './chunk-5SQK3D53.js';
|
|
8
8
|
import './chunk-NJCTQH2P.js';
|
|
9
9
|
import './chunk-S22FSH7C.js';
|
|
10
10
|
import './chunk-L2V5PUFN.js';
|
|
11
11
|
import './chunk-GJWI74ZZ.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
12
|
+
import './chunk-U35H2JIQ.js';
|
|
13
|
+
import './chunk-EVFZ7KEW.js';
|
|
14
|
+
import './chunk-4JQQDCMO.js';
|
|
15
15
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { EngageWidget } from './chunk-
|
|
1
|
+
export { EngageWidget } from './chunk-ZIMFQWGJ.js';
|
|
2
2
|
import './chunk-NDF4A5JM.js';
|
|
3
3
|
import './chunk-6T6CQVNL.js';
|
|
4
4
|
import './chunk-24QZEO3Q.js';
|
|
5
5
|
import './chunk-GJWI74ZZ.js';
|
|
6
6
|
import './chunk-43OCZ3JA.js';
|
|
7
7
|
import './chunk-EKBEOXTH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
8
|
+
import './chunk-U35H2JIQ.js';
|
|
9
|
+
import './chunk-EVFZ7KEW.js';
|
|
10
|
+
import './chunk-4JQQDCMO.js';
|
|
11
11
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { sonorFetch } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
import { sonorFetch } from './chunk-U35H2JIQ.js';
|
|
3
|
+
import './chunk-EVFZ7KEW.js';
|
|
4
|
+
import './chunk-4JQQDCMO.js';
|
|
5
5
|
import './chunk-PKBMQBKP.js';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { StageStyles, SummaryTick } from './chunk-J4FSB4OG.js';
|
|
3
|
-
import { stageFirstName, useFieldControls, stageViews, stageEstimate, AUTO_ADVANCE_TYPES } from './chunk-
|
|
3
|
+
import { stageFirstName, useFieldControls, stageViews, stageEstimate, AUTO_ADVANCE_TYPES } from './chunk-YLSEB32F.js';
|
|
4
4
|
import { FormField } from './chunk-QPEEKFCA.js';
|
|
5
5
|
import { isEmptyValue, isDisplayOnly } from './chunk-AQSNPZY4.js';
|
|
6
6
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { StageStyles, SummaryTick } from './chunk-J4FSB4OG.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-YLSEB32F.js';
|
|
4
4
|
import { FormField } from './chunk-QPEEKFCA.js';
|
|
5
5
|
import { isEmptyValue } from './chunk-AQSNPZY4.js';
|
|
6
6
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { ManagedForm } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { ManagedForm } from './chunk-EIULXXUJ.js';
|
|
2
|
+
import './chunk-YLSEB32F.js';
|
|
3
3
|
import './chunk-DXO6SBMD.js';
|
|
4
4
|
import './chunk-QPEEKFCA.js';
|
|
5
|
-
import './chunk-
|
|
5
|
+
import './chunk-XD3ZQET6.js';
|
|
6
6
|
import './chunk-AQSNPZY4.js';
|
|
7
7
|
import './chunk-5SQK3D53.js';
|
|
8
8
|
import './chunk-NJCTQH2P.js';
|
|
9
9
|
import './chunk-L2V5PUFN.js';
|
|
10
10
|
import './chunk-GJWI74ZZ.js';
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-
|
|
11
|
+
import './chunk-U35H2JIQ.js';
|
|
12
|
+
import './chunk-EVFZ7KEW.js';
|
|
13
|
+
import './chunk-4JQQDCMO.js';
|
|
14
14
|
import './chunk-PKBMQBKP.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { NewsletterShell } from './chunk-SC4MZGWZ.js';
|
|
2
2
|
import './chunk-GYF2ULVO.js';
|
|
3
|
-
import { useForm } from './chunk-
|
|
3
|
+
import { useForm } from './chunk-XD3ZQET6.js';
|
|
4
4
|
import './chunk-AQSNPZY4.js';
|
|
5
5
|
import './chunk-5SQK3D53.js';
|
|
6
6
|
import './chunk-NJCTQH2P.js';
|
|
7
7
|
import './chunk-L2V5PUFN.js';
|
|
8
8
|
import './chunk-GJWI74ZZ.js';
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
11
|
-
import './chunk-
|
|
9
|
+
import './chunk-U35H2JIQ.js';
|
|
10
|
+
import './chunk-EVFZ7KEW.js';
|
|
11
|
+
import './chunk-4JQQDCMO.js';
|
|
12
12
|
import './chunk-PKBMQBKP.js';
|
|
13
13
|
import { jsx } from 'react/jsx-runtime';
|
|
14
14
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-24QZEO3Q.js';
|
|
3
3
|
import { onPageLeave } from './chunk-L2V5PUFN.js';
|
|
4
4
|
import './chunk-GJWI74ZZ.js';
|
|
5
|
-
import { sonorFetch } from './chunk-
|
|
6
|
-
import { getFreshCredential, isSiteToken } from './chunk-
|
|
7
|
-
import './chunk-
|
|
5
|
+
import { sonorFetch } from './chunk-U35H2JIQ.js';
|
|
6
|
+
import { getFreshCredential, isSiteToken } from './chunk-EVFZ7KEW.js';
|
|
7
|
+
import './chunk-4JQQDCMO.js';
|
|
8
8
|
import './chunk-PKBMQBKP.js';
|
|
9
9
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
10
10
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { SiteDesignReporter } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { SiteDesignReporter } from './chunk-GIAOPEN6.js';
|
|
2
|
+
import './chunk-W2CL2DB3.js';
|
|
3
3
|
import './chunk-IHG36STL.js';
|
|
4
4
|
import './chunk-YC7ELZS3.js';
|
|
5
5
|
import './chunk-S22FSH7C.js';
|
|
6
6
|
import './chunk-43OCZ3JA.js';
|
|
7
7
|
import './chunk-EKBEOXTH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
8
|
+
import './chunk-U35H2JIQ.js';
|
|
9
|
+
import './chunk-EVFZ7KEW.js';
|
|
10
|
+
import './chunk-4JQQDCMO.js';
|
|
11
11
|
import './chunk-PKBMQBKP.js';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { SitemapSync } from './chunk-LFXVE32I.js';
|
|
2
|
+
import './chunk-YVKRYQRG.js';
|
|
3
|
+
import './chunk-43OCZ3JA.js';
|
|
4
|
+
import './chunk-EKBEOXTH.js';
|
|
5
|
+
import './chunk-U35H2JIQ.js';
|
|
6
|
+
import './chunk-EVFZ7KEW.js';
|
|
7
|
+
import './chunk-4JQQDCMO.js';
|
|
8
|
+
import './chunk-PKBMQBKP.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { BookingWidget, BookingWidget_default as default } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
2
|
+
export { BookingWidget, BookingWidget_default as default } from '../chunk-3G2SE2J4.js';
|
|
3
|
+
import '../chunk-7QTMMHUO.js';
|
|
4
|
+
import '../chunk-U35H2JIQ.js';
|
|
5
|
+
import '../chunk-EVFZ7KEW.js';
|
|
6
|
+
import '../chunk-4JQQDCMO.js';
|
|
7
7
|
import '../chunk-PKBMQBKP.js';
|
package/dist/affiliates/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { sonorFetch } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
2
|
+
import { sonorFetch } from '../chunk-U35H2JIQ.js';
|
|
3
|
+
import '../chunk-EVFZ7KEW.js';
|
|
4
|
+
import '../chunk-4JQQDCMO.js';
|
|
5
5
|
import '../chunk-PKBMQBKP.js';
|
|
6
6
|
import { useState, useEffect } from 'react';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
package/dist/analytics/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
export { ContactTracking, useContactTracking } from '../chunk-P5GB6NEO.js';
|
|
3
|
-
export { AnalyticsProvider, WebVitals, useAnalytics, useAnalyticsOptional, useTrackEvent } from '../chunk-
|
|
3
|
+
export { AnalyticsProvider, WebVitals, useAnalytics, useAnalyticsOptional, useTrackEvent } from '../chunk-3J2ERO3I.js';
|
|
4
4
|
export { trackConversion, trackEvent } from '../chunk-LCDVPAMR.js';
|
|
5
5
|
import '../chunk-24QZEO3Q.js';
|
|
6
6
|
import '../chunk-L2V5PUFN.js';
|
|
7
7
|
import '../chunk-GJWI74ZZ.js';
|
|
8
8
|
export { isCrossOriginFrame, isFramed, isTopFrameSameOrigin } from '../chunk-43OCZ3JA.js';
|
|
9
9
|
import '../chunk-EKBEOXTH.js';
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-U35H2JIQ.js';
|
|
11
|
+
import '../chunk-EVFZ7KEW.js';
|
|
12
|
+
import '../chunk-4JQQDCMO.js';
|
|
13
13
|
import '../chunk-PKBMQBKP.js';
|
package/dist/articles/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import '../chunk-PKBMQBKP.js';
|
|
|
15
15
|
import React, { useState, Suspense, useEffect } from 'react';
|
|
16
16
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
17
17
|
|
|
18
|
-
var ManagedNewsletterForm = React.lazy(() => import('../ManagedNewsletterForm-
|
|
18
|
+
var ManagedNewsletterForm = React.lazy(() => import('../ManagedNewsletterForm-QAO3POLC.js'));
|
|
19
19
|
function NewsletterWidget({
|
|
20
20
|
title = "Subscribe to Our Newsletter",
|
|
21
21
|
description = "Get the latest posts delivered straight to your inbox.",
|
|
@@ -132,7 +132,7 @@ async function Article({
|
|
|
132
132
|
...item,
|
|
133
133
|
answer: addExternalLinkTargets(item.answer || "", siteUrlResolved)
|
|
134
134
|
})) ?? faqRaw;
|
|
135
|
-
const { ArticleViewTracker } = await import('../ArticleViewTracker-
|
|
135
|
+
const { ArticleViewTracker } = await import('../ArticleViewTracker-V7NUXYBY.js');
|
|
136
136
|
if (children) {
|
|
137
137
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
138
138
|
/* @__PURE__ */ jsx(ArticleViewTracker, { slug: post.slug, site }),
|
package/dist/chat/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { ChatWidget, EchoChat, isChatEnabled } from '../chunk-
|
|
2
|
+
export { ChatWidget, EchoChat, isChatEnabled } from '../chunk-DUAO4Q75.js';
|
|
3
3
|
import '../chunk-JE4A5S4F.js';
|
|
4
4
|
export { DEFAULT_LAUNCHER_OFFSET_BOTTOM, chatLauncherStyles } from '../chunk-NDF4A5JM.js';
|
|
5
5
|
import '../chunk-6T6CQVNL.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-XD3ZQET6.js';
|
|
7
7
|
import '../chunk-AQSNPZY4.js';
|
|
8
8
|
import '../chunk-5SQK3D53.js';
|
|
9
9
|
import '../chunk-NJCTQH2P.js';
|
|
10
10
|
import '../chunk-S22FSH7C.js';
|
|
11
11
|
import '../chunk-L2V5PUFN.js';
|
|
12
12
|
import '../chunk-GJWI74ZZ.js';
|
|
13
|
-
import '../chunk-
|
|
14
|
-
import '../chunk-
|
|
15
|
-
import '../chunk-
|
|
13
|
+
import '../chunk-U35H2JIQ.js';
|
|
14
|
+
import '../chunk-EVFZ7KEW.js';
|
|
15
|
+
import '../chunk-4JQQDCMO.js';
|
|
16
16
|
import '../chunk-PKBMQBKP.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { detectTimezone, releaseSlotHold, fetchBookingTypeDetails, fetchBookingTypes, fetchAvailability, createSlotHold, createBooking, formatDuration, formatDate, formatTime, prepareMeeting } from './chunk-
|
|
2
|
+
import { detectTimezone, releaseSlotHold, fetchBookingTypeDetails, fetchBookingTypes, fetchAvailability, createSlotHold, createBooking, formatDuration, formatDate, formatTime, prepareMeeting } from './chunk-7QTMMHUO.js';
|
|
3
3
|
import { useState, useRef, useMemo, useCallback, useEffect, useId } from 'react';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -3,7 +3,7 @@ import { registerAnalyticsDispatcher } from './chunk-LCDVPAMR.js';
|
|
|
3
3
|
import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-24QZEO3Q.js';
|
|
4
4
|
import { onPageLeave } from './chunk-L2V5PUFN.js';
|
|
5
5
|
import { resolveAnalyticsTarget } from './chunk-43OCZ3JA.js';
|
|
6
|
-
import { sonorFetch, sonorBeacon } from './chunk-
|
|
6
|
+
import { sonorFetch, sonorBeacon } from './chunk-U35H2JIQ.js';
|
|
7
7
|
import { createContext, useRef, useEffect, useState, useMemo, useCallback, useContext } from 'react';
|
|
8
8
|
import { usePathname } from 'next/navigation';
|
|
9
9
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -4,7 +4,9 @@ var DEFAULT_FRAME_ANCESTORS = [
|
|
|
4
4
|
"https://upforge.io",
|
|
5
5
|
"https://*.upforge.io",
|
|
6
6
|
"https://upforgelabs.com",
|
|
7
|
-
"https://*.upforgelabs.com"
|
|
7
|
+
"https://*.upforgelabs.com",
|
|
8
|
+
// Sonor's Edit on page frames the live site in the dashboard.
|
|
9
|
+
"https://app.sonor.io"
|
|
8
10
|
];
|
|
9
11
|
function buildSecurityHeaders(config) {
|
|
10
12
|
if (config === false) return {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { SITE_EDIT_PARAM } from './chunk-6G43IRWR.js';
|
|
3
|
+
import { publishSiteCredential } from './chunk-L2DJD5Y4.js';
|
|
4
|
+
import { FleetHeartbeat } from './chunk-XNVSCQ2O.js';
|
|
5
|
+
import { SignalBridge } from './chunk-HVH37YPX.js';
|
|
5
6
|
import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
6
7
|
import { resolveSiteHost } from './chunk-FESKKJAS.js';
|
|
7
8
|
import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-24QZEO3Q.js';
|
|
@@ -10,20 +11,41 @@ import React, { useState, useRef, useCallback, useEffect, Suspense } from 'react
|
|
|
10
11
|
import dynamic from 'next/dynamic';
|
|
11
12
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
12
13
|
|
|
14
|
+
// src/shared/edit-bridge.ts
|
|
15
|
+
function startEditBridge() {
|
|
16
|
+
if (typeof window === "undefined" || !isCrossOriginFrame()) return () => {
|
|
17
|
+
};
|
|
18
|
+
if (!new URLSearchParams(window.location.search).has(SITE_EDIT_PARAM)) return () => {
|
|
19
|
+
};
|
|
20
|
+
let stop;
|
|
21
|
+
let cancelled = false;
|
|
22
|
+
const start = () => {
|
|
23
|
+
void import('./overlay-RXV6U6QC.js').then((m) => {
|
|
24
|
+
if (!cancelled) stop = m.startEditOverlay();
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
if (document.readyState === "complete") start();
|
|
28
|
+
else window.addEventListener("load", start, { once: true });
|
|
29
|
+
return () => {
|
|
30
|
+
cancelled = true;
|
|
31
|
+
window.removeEventListener("load", start);
|
|
32
|
+
stop?.();
|
|
33
|
+
};
|
|
34
|
+
}
|
|
13
35
|
var LazyAnalyticsProvider = dynamic(
|
|
14
|
-
() => import('./AnalyticsProvider-
|
|
36
|
+
() => import('./AnalyticsProvider-ZMQUV33M.js').then((m) => ({ default: m.AnalyticsProvider })),
|
|
15
37
|
{ ssr: false }
|
|
16
38
|
);
|
|
17
39
|
var LazyEngageWidget = dynamic(
|
|
18
|
-
() => import('./EngageWidget-
|
|
40
|
+
() => import('./EngageWidget-PCGLX7SO.js').then((m) => ({ default: m.EngageWidget })),
|
|
19
41
|
{ ssr: false }
|
|
20
42
|
);
|
|
21
43
|
var LazySiteDesignReporter = dynamic(
|
|
22
|
-
() => import('./SiteDesignReporter-
|
|
44
|
+
() => import('./SiteDesignReporter-C4LR5X2V.js').then((m) => ({ default: m.SiteDesignReporter })),
|
|
23
45
|
{ ssr: false }
|
|
24
46
|
);
|
|
25
47
|
var LazySitemapSync = dynamic(
|
|
26
|
-
() => import('./SitemapSync-
|
|
48
|
+
() => import('./SitemapSync-XVMGKCF3.js').then((m) => ({ default: m.SitemapSync })),
|
|
27
49
|
{ ssr: false }
|
|
28
50
|
);
|
|
29
51
|
function SiteKitClientProviders({
|
|
@@ -55,6 +77,7 @@ function SiteKitClientProviders({
|
|
|
55
77
|
pageMetadataRef.current = metadata;
|
|
56
78
|
}, []);
|
|
57
79
|
useEffect(() => announceFrameReady(), []);
|
|
80
|
+
useEffect(() => startEditBridge(), []);
|
|
58
81
|
const siblings = [];
|
|
59
82
|
if (signal) {
|
|
60
83
|
const signalConfig = typeof signal === "object" ? signal : {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getSEOPageData, ensureMetadata, getABTest, recordABImpression, getRedirectData, getRobotsData, getSitemapEntries } from './chunk-
|
|
1
|
+
import { getSEOPageData, ensureMetadata, getABTest, recordABImpression, getRedirectData, getRobotsData, getSitemapEntries } from './chunk-662ILEZ6.js';
|
|
2
2
|
import { titleProblem, descriptionProblem } from './chunk-BQR4IPBW.js';
|
|
3
3
|
import { resolveSiteHost } from './chunk-FESKKJAS.js';
|
|
4
4
|
|
|
@@ -219,7 +219,7 @@ async function generateSitemap(options) {
|
|
|
219
219
|
}));
|
|
220
220
|
}
|
|
221
221
|
async function registerLocalSitemap(options) {
|
|
222
|
-
const { registerSitemap } = await import('./server-api-
|
|
222
|
+
const { registerSitemap } = await import('./server-api-BVCBLJKL.js');
|
|
223
223
|
let entries = options.entries || [];
|
|
224
224
|
if (options.autoDiscover && entries.length === 0) {
|
|
225
225
|
try {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SITE_CACHE_TAGS } from './chunk-RYVDGXC2.js';
|
|
1
2
|
import { withSiteBody } from './chunk-MJP63SSS.js';
|
|
2
3
|
import { serverApiFetch, requireServerApiConfig } from './chunk-X6F6SO4S.js';
|
|
3
4
|
import { postRegisterSitemap, resolveSyncSite } from './chunk-DIKNRN34.js';
|
|
@@ -71,6 +72,7 @@ function secureApiPost(endpoint, body = {}, revalidate = 86400) {
|
|
|
71
72
|
method: "POST",
|
|
72
73
|
body,
|
|
73
74
|
revalidate,
|
|
75
|
+
tags: [SITE_CACHE_TAGS.seo],
|
|
74
76
|
requireKey: true,
|
|
75
77
|
retry: true,
|
|
76
78
|
logPrefix: SEO_LOG_PREFIX
|