@sonordev/site-kit 7.1.1 → 7.1.2
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/AGENTS.md +2 -2
- package/CHANGELOG.md +17 -3426
- package/agent-manifest.json +1 -1
- package/dist/{AnalyticsProvider-3MI5RCTL.js → AnalyticsProvider-ZB33W6MC.js} +4 -4
- package/dist/{ArticleViewTracker-CMBSJR3N.js → ArticleViewTracker-GMHYLLLZ.js} +3 -3
- package/dist/{BlocksPopup-X3OAAK2L.js → BlocksPopup-EA6LYL25.js} +4 -4
- package/dist/{ChatWidget-JMFBXJ75.js → ChatWidget-UCDWMWCW.js} +5 -5
- package/dist/{EngageWidget-A3QKZ3SU.js → EngageWidget-7ZYSK4GE.js} +4 -4
- package/dist/{FileField-QRSEGO6D.js → FileField-QKA3JB2Q.js} +3 -3
- package/dist/{FormSpotlight-XKV7VTN4.js → FormSpotlight-AQTIA5TP.js} +2 -2
- package/dist/{FormStage-C3YGYAUZ.js → FormStage-FDTLTP3B.js} +2 -2
- package/dist/ManagedForm-H7BVAH2W.js +14 -0
- package/dist/{ManagedNewsletterForm-LPIKGJF4.js → ManagedNewsletterForm-J6QSAGGP.js} +4 -4
- package/dist/{SignalCore-ICXXZBYI.js → SignalCore-JZNXOLNT.js} +3 -3
- package/dist/{SiteDesignReporter-A7MS2CIP.js → SiteDesignReporter-W4EJUSTE.js} +5 -5
- package/dist/SitemapSync-XBANGKHZ.js +8 -0
- package/dist/SitemapSync.d.ts +1 -1
- package/dist/_client/booking-widget.js +5 -5
- package/dist/_client/testimonial-section.d.ts +1 -1
- package/dist/affiliates/api.d.ts +1 -1
- package/dist/affiliates/index.js +3 -3
- package/dist/analytics/AnalyticsProvider.d.ts +1 -1
- package/dist/analytics/index.js +4 -4
- package/dist/analytics/send-gate.d.ts +12 -25
- package/dist/articles/Article.d.ts +1 -1
- package/dist/articles/ArticleList.d.ts +1 -1
- package/dist/articles/ClusterLandingPage.d.ts +2 -2
- package/dist/articles/PublicationLayout.d.ts +1 -1
- package/dist/articles/PublicationSidebar.d.ts +1 -1
- package/dist/articles/RelatedPosts.d.ts +1 -1
- package/dist/articles/author-schema.d.ts +1 -1
- package/dist/articles/excerpt.d.ts +3 -4
- package/dist/articles/index.d.ts +2 -2
- package/dist/articles/index.js +1 -1
- package/dist/articles/news-sitemap.d.ts +1 -1
- package/dist/articles/processArticleHtml.d.ts +1 -1
- package/dist/articles/server-core.d.ts +4 -4
- package/dist/articles/server-ui.js +1 -1
- package/dist/articles/server.d.ts +4 -4
- package/dist/articles/types.d.ts +1 -1
- package/dist/chat/index.js +5 -5
- package/dist/{chunk-PXZ7LAOY.js → chunk-3SDOQUUF.js} +2 -2
- package/dist/{chunk-R3VKF43H.js → chunk-6WIQCXOO.js} +1 -1
- package/dist/{chunk-6OL23QYD.js → chunk-AH5Q262S.js} +1 -1
- package/dist/{chunk-OPRBF7VE.js → chunk-CIG5UL2S.js} +1 -1
- package/dist/{chunk-EQBZ24VH.js → chunk-CSTQDNGK.js} +4 -4
- package/dist/{chunk-JC7KXNNM.js → chunk-D5EC5KVO.js} +1 -1
- package/dist/{chunk-DUQMSNF2.js → chunk-ERXXITG4.js} +1 -1
- package/dist/{chunk-ILAW3XKD.js → chunk-HF57LG73.js} +7 -7
- package/dist/{chunk-542MIHNP.js → chunk-ILU5I6RW.js} +1 -1
- package/dist/{chunk-HAG4YIZY.js → chunk-JBE46QJZ.js} +6 -6
- package/dist/{chunk-ZAWANWUS.js → chunk-JTU2GOM4.js} +1 -1
- package/dist/{chunk-QPEEKFCA.js → chunk-LUXVWITO.js} +2 -2
- package/dist/{chunk-EFPS56JA.js → chunk-M3YEPKP7.js} +1 -1
- package/dist/{chunk-H42PZKVC.js → chunk-NK4CSJNP.js} +2 -2
- package/dist/{chunk-ODADQM6Z.js → chunk-PGMVL4AB.js} +2 -2
- package/dist/{chunk-Q3S26EQA.js → chunk-PHYMNUJU.js} +1 -1
- package/dist/{chunk-ICFRH2ED.js → chunk-Q4W23JYM.js} +1 -1
- package/dist/{chunk-J4D6ZXRW.js → chunk-QEDHRBAT.js} +1 -1
- package/dist/{chunk-V4HUSHZO.js → chunk-RHNWA34F.js} +2 -2
- package/dist/{chunk-KOPVJQ2P.js → chunk-UXOGCKL6.js} +1 -1
- package/dist/{chunk-RK7GF7PQ.js → chunk-V3PUVBME.js} +2 -2
- package/dist/{chunk-NEKEH4CK.js → chunk-V6FDQLR7.js} +1 -1
- package/dist/{chunk-OUNRFXDC.js → chunk-VDF5DFWT.js} +1 -1
- package/dist/{chunk-JIL5VY2R.js → chunk-VGH4MDTU.js} +1 -1
- package/dist/{chunk-RTMMHTEQ.js → chunk-VLARKWZU.js} +1 -1
- package/dist/{chunk-ZETJTCMV.js → chunk-WWSHFRDL.js} +1 -1
- package/dist/{chunk-B73QPZPH.js → chunk-YCJT4JJG.js} +3 -3
- package/dist/{chunk-7FWA3I6A.js → chunk-YEMPUQVU.js} +2 -2
- package/dist/client/index.js +3 -3
- package/dist/cms/CmsPreview.d.ts +2 -2
- package/dist/cms/index.d.ts +3 -3
- package/dist/cms/server-api.d.ts +1 -1
- package/dist/cms/types.d.ts +1 -1
- package/dist/commerce/EventCheckout.d.ts +1 -1
- package/dist/commerce/EventsAgenda.d.ts +3 -3
- package/dist/commerce/api.d.ts +1 -1
- package/dist/commerce/index.js +4 -4
- package/dist/commerce/server.d.ts +3 -4
- package/dist/contracts/entries.d.ts +1 -1
- package/dist/contracts/fleet.d.ts +9 -9
- package/dist/contracts/forms.d.ts +4 -10
- package/dist/contracts/llms.d.ts +1 -1
- package/dist/contracts/portfolio.d.ts +11 -15
- package/dist/contracts/seo-meta.d.ts +11 -12
- package/dist/contracts/seo-pages.d.ts +12 -18
- package/dist/contracts/site-cache.d.ts +4 -4
- package/dist/contracts/sites-normalize.d.ts +2 -4
- package/dist/contracts/sites.d.ts +3 -5
- package/dist/contracts/slot-content.d.ts +2 -2
- package/dist/contracts/slots.d.ts +6 -6
- package/dist/contracts/voice.d.ts +56 -0
- package/dist/contracts/website.d.ts +2 -2
- package/dist/engage/ChatWidget.d.ts +2 -2
- package/dist/engage/EchoUiActions.d.ts +3 -3
- package/dist/engage/EngageWidget.d.ts +1 -1
- package/dist/engage/brand-color.d.ts +1 -1
- package/dist/engage/element-rules.d.ts +2 -2
- package/dist/engage/index.js +6 -6
- package/dist/engage/types.d.ts +3 -3
- package/dist/fleet/FleetHeartbeat.d.ts +2 -2
- package/dist/fleet/index.js +4 -4
- package/dist/forms/FormSpotlight.d.ts +2 -2
- package/dist/forms/ManagedForm.d.ts +1 -1
- package/dist/forms/StaticForm.d.ts +1 -1
- package/dist/forms/field-interactions.d.ts +2 -2
- package/dist/forms/form-loaded-at.d.ts +2 -2
- package/dist/forms/formsApi.d.ts +2 -2
- package/dist/forms/index.d.ts +1 -1
- package/dist/forms/index.js +8 -8
- package/dist/forms/server.d.ts +1 -1
- package/dist/forms/server.js +4 -4
- package/dist/forms/static.js +2 -2
- package/dist/forms/submitForm.d.ts +1 -1
- package/dist/forms/types.d.ts +3 -3
- package/dist/images/ManagedFavicon.d.ts +1 -1
- package/dist/images/ManagedImage.d.ts +4 -4
- package/dist/images/api.d.ts +1 -1
- package/dist/images/index.d.ts +2 -2
- package/dist/images/index.js +4 -4
- package/dist/index.js +1 -1
- package/dist/landing/contract.d.ts +3 -4
- package/dist/layout/SiteKitClientProviders.d.ts +1 -1
- package/dist/layout/SiteKitLayout.d.ts +7 -7
- package/dist/layout/client.d.ts +1 -1
- package/dist/layout/client.js +7 -7
- package/dist/layout/index.js +8 -8
- package/dist/layout/types.d.ts +2 -2
- package/dist/llms/SpeakableSchema.d.ts +2 -2
- package/dist/llms/agent-access.d.ts +2 -2
- package/dist/llms/aiRobots.d.ts +4 -4
- package/dist/llms/api.d.ts +2 -2
- package/dist/llms/generateLLMsTxt.d.ts +1 -1
- package/dist/llms/index.js +4 -4
- package/dist/llms/links.d.ts +1 -1
- package/dist/llms/revalidate.d.ts +1 -1
- package/dist/llms/seo-revalidate.d.ts +2 -3
- package/dist/llms/types.d.ts +6 -6
- package/dist/llms/writeLLMsTxt.d.ts +10 -10
- package/dist/manifest/index.d.ts +8 -8
- package/dist/maps/index.js +3 -3
- package/dist/mcp/WebMcpTools.d.ts +1 -1
- package/dist/mcp/report.d.ts +2 -2
- package/dist/mcp/serverCard.d.ts +1 -1
- package/dist/mcp/sonor.d.ts +5 -6
- package/dist/mcp/sonor.js +8 -8
- package/dist/mcp/transport.d.ts +1 -2
- package/dist/mcp/types.d.ts +4 -5
- package/dist/motion/engine.d.ts +2 -3
- package/dist/motion/failsafe.d.ts +1 -2
- package/dist/motion/gsap.d.ts +2 -2
- package/dist/motion/three.d.ts +1 -1
- package/dist/og/config.d.ts +4 -4
- package/dist/og/contrast.d.ts +2 -2
- package/dist/og/pages.d.ts +5 -5
- package/dist/og/route-fit.d.ts +2 -2
- package/dist/og/route.d.ts +1 -2
- package/dist/og/template.d.ts +1 -1
- package/dist/proxy/index.d.ts +2 -2
- package/dist/proxy/securityHeaders.d.ts +10 -12
- package/dist/redirects/index.d.ts +7 -7
- package/dist/reputation/TestimonialSection.d.ts +1 -1
- package/dist/reputation/api.d.ts +1 -1
- package/dist/revalidate/index.js +2 -2
- package/dist/robots/index.d.ts +5 -5
- package/dist/robots/indexnow.d.ts +2 -3
- package/dist/seo/ManagedScripts.d.ts +2 -2
- package/dist/seo/client.js +4 -4
- package/dist/seo/getManagedMetadata.d.ts +1 -1
- package/dist/seo/groundingSchema.d.ts +2 -2
- package/dist/seo/index.js +4 -4
- package/dist/seo/llms.js +4 -4
- package/dist/seo/register-sitemap-cli-impl.d.ts +1 -1
- package/dist/seo/register-sitemap-cli.d.ts +1 -1
- package/dist/seo/register-sitemap-cli.js +2 -2
- package/dist/seo/schema-filter.d.ts +5 -6
- package/dist/seo/server-api.d.ts +1 -1
- package/dist/seo/sitemap.js +2 -2
- package/dist/seo/types.d.ts +4 -4
- package/dist/seo/withManagedMetadata.d.ts +4 -4
- package/dist/server/index.js +2 -2
- package/dist/server/mint-site-token.d.ts +1 -2
- package/dist/server/server-fetch.d.ts +5 -5
- package/dist/shared/build-entries.d.ts +4 -4
- package/dist/shared/frame.d.ts +8 -9
- package/dist/shared/fresh-fetch.d.ts +1 -2
- package/dist/shared/next-files.d.ts +1 -1
- package/dist/shared/publishCredential.d.ts +1 -1
- package/dist/shared/uuid.d.ts +1 -2
- package/dist/shared/version.d.ts +1 -1
- package/dist/shared/visual-viewport-gap.d.ts +2 -2
- package/dist/signal/index.js +2 -2
- package/dist/site-config/index.d.ts +2 -2
- package/dist/sitemap/index.d.ts +13 -13
- package/dist/sitemap/index.js +2 -2
- package/dist/sitemap/shared.d.ts +3 -3
- package/dist/sites/site-param.d.ts +2 -2
- package/dist/slots/ManagedRichText.d.ts +1 -1
- package/dist/slots/ManagedSlot.d.ts +1 -1
- package/dist/slots/index.d.ts +1 -3
- package/dist/sync/index.js +5 -5
- package/dist/types.d.ts +1 -1
- package/dist/{web-vitals.attribution-N2PCCF4Q.js → web-vitals.attribution-GD6LGLVF.js} +1 -1
- package/dist/website/PopupBlocks.d.ts +3 -4
- package/dist/website/images.js +4 -4
- package/dist/website/index.js +5 -5
- package/dist/website/popups.js +4 -4
- package/dist/{writeLLMsTxt-QR23OQUE.js → writeLLMsTxt-G3JBNBC5.js} +1 -1
- package/docs/MIGRATING-TO-7.md +9 -13
- package/package.json +1 -1
- package/src/admin-auth/README.md +3 -3
- package/src/analytics/README.md +7 -9
- package/src/articles/README.md +6 -6
- package/src/cta-bar/README.md +11 -11
- package/src/forms/README.md +10 -8
- package/src/llms/README.md +3 -3
- package/src/mcp/README.md +7 -7
- package/src/motion/README.md +1 -1
- package/src/og/README.md +26 -27
- package/src/proxy/README.md +14 -14
- package/src/seo/README.md +1 -1
- package/src/slots/README.md +1 -1
- package/dist/ManagedForm-2GSSDJPP.js +0 -14
- package/dist/SitemapSync-4U654SEA.js +0 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HoneypotField } from './chunk-DXO6SBMD.js';
|
|
2
|
-
import { FormField } from './chunk-
|
|
2
|
+
import { FormField } from './chunk-LUXVWITO.js';
|
|
3
3
|
import { normalizeFormConfig } from './chunk-5SQK3D53.js';
|
|
4
4
|
import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { countStageViews, countStageQuestions, useFieldControls } from './chunk-
|
|
2
|
+
import { countStageViews, countStageQuestions, useFieldControls } from './chunk-D5EC5KVO.js';
|
|
3
3
|
import { HoneypotField } from './chunk-DXO6SBMD.js';
|
|
4
|
-
import { DelightStyles, FormMomentum, FormField } from './chunk-
|
|
5
|
-
import { useFormLoadedAt, useFormTracking, submitForm, useRecaptchaWarmup, useForm } from './chunk-
|
|
4
|
+
import { DelightStyles, FormMomentum, FormField } from './chunk-LUXVWITO.js';
|
|
5
|
+
import { useFormLoadedAt, useFormTracking, submitForm, useRecaptchaWarmup, useForm } from './chunk-V6FDQLR7.js';
|
|
6
6
|
import { isFieldVisible, validateField, isFieldComplete, isDisplayOnly } from './chunk-AQSNPZY4.js';
|
|
7
7
|
import { DEFAULT_FORM_SUCCESS_MESSAGE } from './chunk-5SQK3D53.js';
|
|
8
8
|
import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
|
|
@@ -62,7 +62,7 @@ function FormClient({
|
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
64
64
|
let cancelled = false;
|
|
65
|
-
const load = resolvedExperience === "stage" ? import('./FormStage-
|
|
65
|
+
const load = resolvedExperience === "stage" ? import('./FormStage-FDTLTP3B.js').then((m) => m.FormStage) : import('./FormSpotlight-AQTIA5TP.js').then((m) => m.FormSpotlight);
|
|
66
66
|
load.then((Component) => {
|
|
67
67
|
if (!cancelled) setExperience(() => Component);
|
|
68
68
|
}).catch((err) => {
|
|
@@ -26,7 +26,7 @@ function useFieldControls(fields) {
|
|
|
26
26
|
}
|
|
27
27
|
if (needsFile && !requested.current.file) {
|
|
28
28
|
requested.current.file = true;
|
|
29
|
-
import('./FileField-
|
|
29
|
+
import('./FileField-QKA3JB2Q.js').then((m) => {
|
|
30
30
|
if (!cancelled) setControls((prev) => ({ ...prev, File: m.FileField }));
|
|
31
31
|
}).catch(() => {
|
|
32
32
|
requested.current.file = false;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveSiteHost } from './chunk-FESKKJAS.js';
|
|
2
|
-
import { configureSiteCredential, currentCredential } from './chunk-
|
|
2
|
+
import { configureSiteCredential, currentCredential } from './chunk-VDF5DFWT.js';
|
|
3
3
|
|
|
4
4
|
// src/shared/publishCredential.ts
|
|
5
5
|
function publishSiteCredential({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { SITE_EDIT_PARAM } from './chunk-6G43IRWR.js';
|
|
3
|
-
import { publishSiteCredential } from './chunk-
|
|
4
|
-
import { FleetHeartbeat } from './chunk-
|
|
5
|
-
import { SignalBridge } from './chunk-
|
|
3
|
+
import { publishSiteCredential } from './chunk-ERXXITG4.js';
|
|
4
|
+
import { FleetHeartbeat } from './chunk-NK4CSJNP.js';
|
|
5
|
+
import { SignalBridge } from './chunk-PHYMNUJU.js';
|
|
6
6
|
import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
7
7
|
import { resolveSiteHost } from './chunk-FESKKJAS.js';
|
|
8
8
|
import { getOrCreateVisitorId, getOrCreateSessionId } from './chunk-24QZEO3Q.js';
|
|
@@ -33,19 +33,19 @@ function startEditBridge() {
|
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
var LazyAnalyticsProvider = dynamic(
|
|
36
|
-
() => import('./AnalyticsProvider-
|
|
36
|
+
() => import('./AnalyticsProvider-ZB33W6MC.js').then((m) => ({ default: m.AnalyticsProvider })),
|
|
37
37
|
{ ssr: false }
|
|
38
38
|
);
|
|
39
39
|
var LazyEngageWidget = dynamic(
|
|
40
|
-
() => import('./EngageWidget-
|
|
40
|
+
() => import('./EngageWidget-7ZYSK4GE.js').then((m) => ({ default: m.EngageWidget })),
|
|
41
41
|
{ ssr: false }
|
|
42
42
|
);
|
|
43
43
|
var LazySiteDesignReporter = dynamic(
|
|
44
|
-
() => import('./SiteDesignReporter-
|
|
44
|
+
() => import('./SiteDesignReporter-W4EJUSTE.js').then((m) => ({ default: m.SiteDesignReporter })),
|
|
45
45
|
{ ssr: false }
|
|
46
46
|
);
|
|
47
47
|
var LazySitemapSync = dynamic(
|
|
48
|
-
() => import('./SitemapSync-
|
|
48
|
+
() => import('./SitemapSync-XBANGKHZ.js').then((m) => ({ default: m.SitemapSync })),
|
|
49
49
|
{ ssr: false }
|
|
50
50
|
);
|
|
51
51
|
function SiteKitClientProviders({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getSiteConfig } from './chunk-Z22QVHT4.js';
|
|
2
|
-
import { writeLLMsTxtToPublic } from './chunk-
|
|
2
|
+
import { writeLLMsTxtToPublic } from './chunk-QEDHRBAT.js';
|
|
3
3
|
import { buildFetch } from './chunk-VX5CMNMM.js';
|
|
4
4
|
import { findAppDirForDiscovery } from './chunk-ZEGVKVD5.js';
|
|
5
5
|
import { stripEmbeddedDomain, locToPath, inferPageType, isMalformedSitemapPath, resolveTrailingSlash, stripTrailingSlash, llmsWriteTimeoutMs, applyTrailingSlash } from './chunk-YVKRYQRG.js';
|
|
@@ -361,10 +361,10 @@ function createSitemap(config) {
|
|
|
361
361
|
const pagesData = await pagesResponse.json();
|
|
362
362
|
const pagesList = pagesData?.pagesList || [];
|
|
363
363
|
pages = pagesList.map((p) => p.path).filter(Boolean);
|
|
364
|
-
console.log(`[site-kit] Recovered ${pages.length} pages from
|
|
364
|
+
console.log(`[site-kit] Recovered ${pages.length} pages from Sonor API (ISR fallback)`);
|
|
365
365
|
}
|
|
366
366
|
} catch (fetchErr) {
|
|
367
|
-
console.warn("[site-kit]
|
|
367
|
+
console.warn("[site-kit] Sonor API fallback failed:", fetchErr.message);
|
|
368
368
|
}
|
|
369
369
|
}
|
|
370
370
|
if (pages.length === 0) {
|
|
@@ -469,7 +469,7 @@ function createSitemap(config) {
|
|
|
469
469
|
}
|
|
470
470
|
const result = await syncSitemapToPortal(entries, apiUrl, apiKey, syncOptions);
|
|
471
471
|
if (result.success) {
|
|
472
|
-
console.log(`[site-kit] Synced to
|
|
472
|
+
console.log(`[site-kit] Synced to Sonor API: ${result.created} created, ${result.updated} updated`);
|
|
473
473
|
if (config.awaitMetaOptimization === true) {
|
|
474
474
|
try {
|
|
475
475
|
const domain = normalizedBaseUrl.replace(/^https?:\/\/(www\.)?/, "");
|
|
@@ -530,10 +530,10 @@ function createSitemap(config) {
|
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
532
|
} catch (err) {
|
|
533
|
-
console.warn("[site-kit] Failed to sync sitemap to
|
|
533
|
+
console.warn("[site-kit] Failed to sync sitemap to Sonor API:", err.message);
|
|
534
534
|
}
|
|
535
535
|
} else {
|
|
536
|
-
console.log("[site-kit] No API key found, skipping
|
|
536
|
+
console.log("[site-kit] No API key found, skipping Sonor API sync");
|
|
537
537
|
}
|
|
538
538
|
}
|
|
539
539
|
return entries;
|
|
@@ -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-M3YEPKP7.js';
|
|
3
3
|
import { useState, useRef, useMemo, useCallback, useEffect, useId } from 'react';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -243,8 +243,8 @@ function FormField({ field, value, error, onChange, onFocus, onBlur, classPrefix
|
|
|
243
243
|
// cascade from the section produced cream-on-white on brand-colored panels
|
|
244
244
|
// (found live). Default pairs with the white bg; theme both via vars.
|
|
245
245
|
//
|
|
246
|
-
// The fallback chain matters, and it is
|
|
247
|
-
//
|
|
246
|
+
// The fallback chain matters, and it is why this once broke on a dark
|
|
247
|
+
// site: one that set --sk-input-bg and --sk-text-primary
|
|
248
248
|
// but never heard of --sk-input-text landed on #111827 over its own dark
|
|
249
249
|
// field, 1.03:1, an input you cannot read your own typing in. Falling
|
|
250
250
|
// through --sk-text-primary first means theming the page's text is enough.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { sanitizeFleetVersion, buildFleetHeartbeatPayload } from './chunk-ZTZQPYP6.js';
|
|
3
3
|
import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
4
4
|
import { resolveAnalyticsTarget } from './chunk-43OCZ3JA.js';
|
|
5
|
-
import { sonorFetch } from './chunk-
|
|
6
|
-
import { SITE_KIT_VERSION } from './chunk-
|
|
5
|
+
import { sonorFetch } from './chunk-3SDOQUUF.js';
|
|
6
|
+
import { SITE_KIT_VERSION } from './chunk-AH5Q262S.js';
|
|
7
7
|
import { useRef, useEffect } from 'react';
|
|
8
8
|
|
|
9
9
|
// src/fleet/heartbeat.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { toHexColor, normalizeDesignTokens, designTokensHash } from './chunk-IHG36STL.js';
|
|
2
2
|
import { contrastRatio, parseColor, relativeLuminance } from './chunk-S22FSH7C.js';
|
|
3
3
|
import { resolveAnalyticsTarget } from './chunk-43OCZ3JA.js';
|
|
4
|
-
import { sonorFetch } from './chunk-
|
|
5
|
-
import { SITE_KIT_VERSION } from './chunk-
|
|
4
|
+
import { sonorFetch } from './chunk-3SDOQUUF.js';
|
|
5
|
+
import { SITE_KIT_VERSION } from './chunk-AH5Q262S.js';
|
|
6
6
|
|
|
7
7
|
// src/website/design.ts
|
|
8
8
|
var SITE_DESIGN_PATH = "/api/public/site/design";
|
|
@@ -54,7 +54,7 @@ function useSignal() {
|
|
|
54
54
|
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
55
55
|
}
|
|
56
56
|
var LazySignalCore = dynamic(
|
|
57
|
-
() => import('./SignalCore-
|
|
57
|
+
() => import('./SignalCore-JZNXOLNT.js').then((m) => ({ default: m.SignalCore })),
|
|
58
58
|
{ ssr: false }
|
|
59
59
|
);
|
|
60
60
|
function SignalBridge({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { getSiteDesignTokens, tokensForReport, shouldReportDesign, sendSiteDesign } from './chunk-
|
|
2
|
+
import { getSiteDesignTokens, tokensForReport, shouldReportDesign, sendSiteDesign } from './chunk-PGMVL4AB.js';
|
|
3
3
|
import { designTokensHash } from './chunk-IHG36STL.js';
|
|
4
4
|
import { useDeferredActivation } from './chunk-YC7ELZS3.js';
|
|
5
5
|
import { resolveAnalyticsTarget } from './chunk-43OCZ3JA.js';
|
|
@@ -673,7 +673,7 @@ async function writeLLMsTxtToPublic(options = {}) {
|
|
|
673
673
|
}
|
|
674
674
|
if (!markdown) {
|
|
675
675
|
console.warn(
|
|
676
|
-
`[site-kit] llms.txt unavailable (
|
|
676
|
+
`[site-kit] llms.txt unavailable (Sonor fetch failed, no local data) \u2014 skipped write, keeping any existing file at ${llmsPath}`
|
|
677
677
|
);
|
|
678
678
|
return { success: false, path: llmsPath, optimized: false };
|
|
679
679
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { GlassStyles } from './chunk-JE4A5S4F.js';
|
|
3
3
|
import { chatLauncherStyles } from './chunk-NDF4A5JM.js';
|
|
4
|
-
import { useForm } from './chunk-
|
|
4
|
+
import { useForm } from './chunk-V6FDQLR7.js';
|
|
5
5
|
import { parseColor, relativeLuminance, DARK_LUMINANCE, contrastRatio } from './chunk-S22FSH7C.js';
|
|
6
|
-
import { sonorFetch } from './chunk-
|
|
6
|
+
import { sonorFetch } from './chunk-3SDOQUUF.js';
|
|
7
7
|
import { useState, useEffect, useRef, useLayoutEffect, useCallback, Fragment as Fragment$1 } from 'react';
|
|
8
8
|
import { lexer } from 'marked';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { locToPath, isMalformedSitemapPath, inferPageType } from './chunk-YVKRYQRG.js';
|
|
3
3
|
import { resolveAnalyticsTarget } from './chunk-43OCZ3JA.js';
|
|
4
|
-
import { sonorFetch } from './chunk-
|
|
4
|
+
import { sonorFetch } from './chunk-3SDOQUUF.js';
|
|
5
5
|
import { useRef, useEffect } from 'react';
|
|
6
6
|
|
|
7
7
|
var SYNC_STAMP_KEY = "_sk_sitemap_synced_at";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FormEnhancer } from './chunk-
|
|
2
|
-
import { StaticForm } from './chunk-
|
|
1
|
+
import { FormEnhancer } from './chunk-VLARKWZU.js';
|
|
2
|
+
import { StaticForm } from './chunk-CIG5UL2S.js';
|
|
3
3
|
import { serverApiFetch } from './chunk-X6F6SO4S.js';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -4,7 +4,7 @@ import { normalizeFormConfig } from './chunk-5SQK3D53.js';
|
|
|
4
4
|
import { DEFAULT_HONEYPOT_FIELD } from './chunk-NJCTQH2P.js';
|
|
5
5
|
import { onPageLeave } from './chunk-L2V5PUFN.js';
|
|
6
6
|
import { uuid } from './chunk-GJWI74ZZ.js';
|
|
7
|
-
import { sonorFetch, sonorBeacon } from './chunk-
|
|
7
|
+
import { sonorFetch, sonorBeacon } from './chunk-3SDOQUUF.js';
|
|
8
8
|
import { useRef, useCallback, useEffect, useState, useMemo } from 'react';
|
|
9
9
|
|
|
10
10
|
// src/forms/field-interactions.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { secretsMatch, readCappedBody } from './chunk-XTRZGXB2.js';
|
|
2
|
-
import { SITE_KIT_VERSION } from './chunk-
|
|
2
|
+
import { SITE_KIT_VERSION } from './chunk-AH5Q262S.js';
|
|
3
3
|
|
|
4
4
|
// src/llms/revalidate.ts
|
|
5
5
|
function createLlmsRevalidateHandler(secret, options) {
|
|
@@ -4,7 +4,7 @@ import React, { lazy, useRef, useEffect, useState, Suspense } from 'react';
|
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
var InteractiveForm = lazy(
|
|
7
|
-
() => import('./ManagedForm-
|
|
7
|
+
() => import('./ManagedForm-H7BVAH2W.js').then((m) => ({ default: m.ManagedForm }))
|
|
8
8
|
);
|
|
9
9
|
function FormEnhancer({
|
|
10
10
|
formId,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateLLMsTxt, generateLLMsFullTxt } from './chunk-
|
|
1
|
+
import { generateLLMsTxt, generateLLMsFullTxt } from './chunk-QEDHRBAT.js';
|
|
2
2
|
import { createHash } from 'crypto';
|
|
3
3
|
import { existsSync, readFileSync } from 'fs';
|
|
4
4
|
import { join } from 'path';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { DEFAULT_ENGAGE_Z_INDEX } from './chunk-NDF4A5JM.js';
|
|
3
3
|
import { getOrCreateVisitorId } from './chunk-24QZEO3Q.js';
|
|
4
4
|
import { resolveAnalyticsTarget } from './chunk-43OCZ3JA.js';
|
|
5
|
-
import { sonorFetch } from './chunk-
|
|
5
|
+
import { sonorFetch } from './chunk-3SDOQUUF.js';
|
|
6
6
|
import React, { useState, useEffect, useCallback, useRef, createElement } from 'react';
|
|
7
7
|
import ReactDOM from 'react-dom';
|
|
8
8
|
import dynamic from 'next/dynamic';
|
|
@@ -339,11 +339,11 @@ function DesignRenderer({
|
|
|
339
339
|
)) });
|
|
340
340
|
}
|
|
341
341
|
var LazyBlocksPopup = dynamic(
|
|
342
|
-
() => import('./BlocksPopup-
|
|
342
|
+
() => import('./BlocksPopup-EA6LYL25.js').then((m) => ({ default: m.BlocksPopup })),
|
|
343
343
|
{ ssr: false }
|
|
344
344
|
);
|
|
345
345
|
var LazyChatWidget = dynamic(
|
|
346
|
-
() => import('./ChatWidget-
|
|
346
|
+
() => import('./ChatWidget-UCDWMWCW.js').then((m) => ({ default: m.ChatWidget })),
|
|
347
347
|
{ ssr: false }
|
|
348
348
|
);
|
|
349
349
|
function EngageWidget(props) {
|
|
@@ -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-3SDOQUUF.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';
|
|
@@ -157,7 +157,7 @@ function WebVitals({
|
|
|
157
157
|
useEffect(() => {
|
|
158
158
|
let cancelled = false;
|
|
159
159
|
let teardown;
|
|
160
|
-
import('./web-vitals.attribution-
|
|
160
|
+
import('./web-vitals.attribution-GD6LGLVF.js').then(({ onCLS, onLCP, onTTFB, onINP, onFCP }) => {
|
|
161
161
|
if (cancelled) return;
|
|
162
162
|
const { propApiUrl: propApiUrl2, propApiKey: propApiKey2, propSite: propSite2, allowInFrame: allowInFrame2, allowLocalhost: allowLocalhost2, debug: debug2, visitorId: visitorId2, sessionId: sessionId2, sessionTimeout: sessionTimeout2 } = propsRef.current;
|
|
163
163
|
const sent = /* @__PURE__ */ new Map();
|
package/dist/client/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { publishSiteCredential } from '../chunk-
|
|
2
|
+
import { publishSiteCredential } from '../chunk-ERXXITG4.js';
|
|
3
3
|
export { useDeferredActivation } from '../chunk-YC7ELZS3.js';
|
|
4
4
|
import '../chunk-FESKKJAS.js';
|
|
5
5
|
import '../chunk-A4CC4ZG3.js';
|
|
@@ -7,8 +7,8 @@ export { trackConversion, trackEvent } from '../chunk-LCDVPAMR.js';
|
|
|
7
7
|
export { VISUAL_VIEWPORT_GAP_PROPERTY, VisualViewportGap, useVisualViewportGap } from '../chunk-6T6CQVNL.js';
|
|
8
8
|
export { getOrCreateSessionId, getOrCreateVisitorId, useSiteKitIdentity } from '../chunk-24QZEO3Q.js';
|
|
9
9
|
import '../chunk-GJWI74ZZ.js';
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-VDF5DFWT.js';
|
|
11
|
+
import '../chunk-AH5Q262S.js';
|
|
12
12
|
import '../chunk-PKBMQBKP.js';
|
|
13
13
|
|
|
14
14
|
// src/client/SiteKitCredential.tsx
|
package/dist/cms/CmsPreview.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { SectionType, SectionRendererProps } from './types';
|
|
3
3
|
interface CmsPreviewProps {
|
|
4
|
-
/**
|
|
4
|
+
/** Sonor API base URL */
|
|
5
5
|
apiUrl?: string;
|
|
6
6
|
/** API key for fetching draft content */
|
|
7
7
|
apiKey: string;
|
|
@@ -18,7 +18,7 @@ interface CmsPreviewProps {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Client component for previewing draft CMS content.
|
|
21
|
-
* Fetches draft content from
|
|
21
|
+
* Fetches draft content from Sonor API and re-renders on changes.
|
|
22
22
|
*
|
|
23
23
|
* @example
|
|
24
24
|
* ```tsx
|
package/dist/cms/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* project has CMS pages and the API no longer serves them, so these components
|
|
6
6
|
* render nothing. Site copy is managed copy now (`@sonordev/site-kit/website/slots`:
|
|
7
7
|
* `ManagedSlot`, `ManagedRichText`, `ManagedLink`, `ManagedList`), edited in
|
|
8
|
-
* Sonor under Website → Content.
|
|
8
|
+
* Sonor under Website → Content.
|
|
9
9
|
*
|
|
10
10
|
* REQUIRES TWO OPTIONAL PEER DEPENDENCIES. Importing this entry without them
|
|
11
11
|
* fails the consuming site's build with "Module not found":
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
*
|
|
25
25
|
* Do NOT apply this pattern to a dependency reachable from a widely-imported
|
|
26
26
|
* entry: bundlers resolve even a dynamic import at build time, so there is no
|
|
27
|
-
* runtime fallback to hide behind.
|
|
28
|
-
* case
|
|
27
|
+
* runtime fallback to hide behind. react-markdown (4.0.3; 7.0 dropped it) is
|
|
28
|
+
* the case where exactly that made it impossible.
|
|
29
29
|
*/
|
|
30
30
|
export { CmsPage } from './CmsPage';
|
|
31
31
|
export { CmsSection } from './CmsSection';
|
package/dist/cms/server-api.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @sonordev/site-kit/cms - Server-Only API Functions
|
|
3
3
|
*
|
|
4
|
-
* Fetches CMS page/section data from
|
|
4
|
+
* Fetches CMS page/section data from Sonor API.
|
|
5
5
|
* Uses the same secure API pattern as seo/server-api.ts — both delegate config
|
|
6
6
|
* resolution + fetch/retry to the shared server-fetch primitive (single source
|
|
7
7
|
* of truth — see ../server/server-fetch).
|
package/dist/cms/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Multi-variant inline event checkout. Renders a tier selector (one row per variant
|
|
5
5
|
* with qty controls), customer info, and a Square card element. Submits a single
|
|
6
|
-
* lineItems[] payload to
|
|
6
|
+
* lineItems[] payload to Sonor multi-line checkout endpoint — one charge for
|
|
7
7
|
* the aggregate total, no redirect.
|
|
8
8
|
*
|
|
9
9
|
* v1: Square inline only. For single-tier events without variants, the component
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* EventsAgenda — month-grouped event list
|
|
2
|
+
* EventsAgenda — month-grouped event list.
|
|
3
3
|
*
|
|
4
4
|
* For sparse community/event calendars an agenda reads far better than a
|
|
5
|
-
* month grid, especially on phones
|
|
6
|
-
*
|
|
5
|
+
* month grid, especially on phones, which is why community sites kept
|
|
6
|
+
* forking the grid into one. Headless-first: every element carries
|
|
7
7
|
* data-sk-part, rows carry data-category / data-offering-type (same contract
|
|
8
8
|
* as CalendarView chips), so two-scheme coloring is site CSS:
|
|
9
9
|
*
|
package/dist/commerce/api.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @sonordev/site-kit/commerce - Commerce API
|
|
3
3
|
*
|
|
4
4
|
* API functions for fetching offerings, submitting orders, and registrations.
|
|
5
|
-
* All data goes through
|
|
5
|
+
* All data goes through Sonor API with API key auth - never Supabase directly.
|
|
6
6
|
*/
|
|
7
7
|
import type { CommerceOffering, FetchOfferingsOptions, FetchEventsOptions, CheckoutCustomer, CheckoutResult } from './types';
|
|
8
8
|
export declare function fetchOfferings(options?: FetchOfferingsOptions): Promise<CommerceOffering[]>;
|
package/dist/commerce/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import '../chunk-P5GB6NEO.js';
|
|
3
|
-
import { useAnalyticsOptional } from '../chunk-
|
|
3
|
+
import { useAnalyticsOptional } from '../chunk-YEMPUQVU.js';
|
|
4
4
|
import '../chunk-LCDVPAMR.js';
|
|
5
5
|
import '../chunk-24QZEO3Q.js';
|
|
6
6
|
import '../chunk-L2V5PUFN.js';
|
|
7
7
|
import '../chunk-GJWI74ZZ.js';
|
|
8
8
|
import '../chunk-43OCZ3JA.js';
|
|
9
9
|
import '../chunk-EKBEOXTH.js';
|
|
10
|
-
import { sonorFetch } from '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
10
|
+
import { sonorFetch } from '../chunk-3SDOQUUF.js';
|
|
11
|
+
import '../chunk-VDF5DFWT.js';
|
|
12
|
+
import '../chunk-AH5Q262S.js';
|
|
13
13
|
import '../chunk-PKBMQBKP.js';
|
|
14
14
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
15
15
|
import React5, { useState, useEffect, useMemo, useRef, useCallback } from 'react';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Helpers for server-side rendering and dynamic routes.
|
|
5
5
|
* Use in Next.js getStaticPaths, getStaticProps, or App Router.
|
|
6
6
|
*
|
|
7
|
-
* All data fetching goes through the
|
|
7
|
+
* All data fetching goes through the Sonor API.
|
|
8
8
|
*/
|
|
9
9
|
import type { CommerceOffering, OfferingType } from './types';
|
|
10
10
|
interface ServerConfig {
|
|
@@ -102,8 +102,7 @@ export declare function getOfferingsResult(config: ServerConfig, options?: {
|
|
|
102
102
|
* Uses POST /api/public/commerce/events — the same endpoint the client fetcher
|
|
103
103
|
* uses — because the GET offerings list does NOT embed commerce_schedules,
|
|
104
104
|
* which made this helper return events with empty `schedules[]` and forced
|
|
105
|
-
* sites to hand-roll their own fetcher for any calendar UI
|
|
106
|
-
* lesson). Falls back to the legacy offerings query if the events endpoint
|
|
105
|
+
* sites to hand-roll their own fetcher for any calendar UI. Falls back to the legacy offerings query if the events endpoint
|
|
107
106
|
* is unavailable (older self-hosted API).
|
|
108
107
|
*/
|
|
109
108
|
export declare function getUpcomingEvents(config: ServerConfig, options?: {
|
|
@@ -154,7 +153,7 @@ export declare function generateOfferingMetadata(offering: CommerceOffering | nu
|
|
|
154
153
|
/**
|
|
155
154
|
* Create a server config for API calls
|
|
156
155
|
*
|
|
157
|
-
* @param apiUrl -
|
|
156
|
+
* @param apiUrl - Sonor API URL (e.g., 'https://api.sonor.io')
|
|
158
157
|
* @param apiKey - Project API key
|
|
159
158
|
* @param projectId - Project ID
|
|
160
159
|
*/
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* tsup config, its package.json check and the boundary test, so a new
|
|
5
5
|
* contract is added in one place.
|
|
6
6
|
*/
|
|
7
|
-
export declare const CONTRACT_ENTRIES: readonly ['forms', 'llms', 'slots', 'slot-content', 'site-cache', 'site-edit', 'website', 'color', 'fleet', 'sites', 'seo-pages', 'seo-meta', 'portfolio'];
|
|
7
|
+
export declare const CONTRACT_ENTRIES: readonly ['forms', 'llms', 'slots', 'slot-content', 'site-cache', 'site-edit', 'website', 'color', 'fleet', 'sites', 'seo-pages', 'seo-meta', 'portfolio', 'voice'];
|
|
8
8
|
export type ContractEntry = (typeof CONTRACT_ENTRIES)[number];
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* @sonordev/contracts/fleet — Fleet heartbeat wire contract (v1)
|
|
3
3
|
*
|
|
4
4
|
* Single source of truth for the heartbeat payload shape, shared by site-kit
|
|
5
|
-
* (send side, `@sonordev/site-kit/fleet/contract`) and
|
|
5
|
+
* (send side, `@sonordev/site-kit/fleet/contract`) and the Sonor API (ingest
|
|
6
6
|
* side: its DTO is type-checked against FleetHeartbeatPayload).
|
|
7
7
|
*
|
|
8
|
-
* Why it exists:
|
|
9
|
-
*
|
|
10
|
-
* site running" without
|
|
11
|
-
*
|
|
8
|
+
* Why it exists: sites run whatever site-kit version they last deployed, and
|
|
9
|
+
* Sonor should be able to answer "which version / modules / key state is each
|
|
10
|
+
* site running" without anyone opening each repo. The heartbeat answers that
|
|
11
|
+
* from live traffic. It is fire-and-forget, deferred to idle (never in the
|
|
12
12
|
* hydration path), and carries NO visitor data — only the site's own build
|
|
13
13
|
* fingerprint. Project identity is resolved server-side from the x-api-key
|
|
14
14
|
* header, exactly like every other /api/public/* endpoint; sites never send
|
|
@@ -56,7 +56,7 @@ export interface FleetHeartbeatPayload {
|
|
|
56
56
|
next_version?: string | null;
|
|
57
57
|
/** Client-observable active modules — deduped, validated, canonical order. */
|
|
58
58
|
modules: FleetModule[];
|
|
59
|
-
/** Normalized lowercase host (multi-site sub-dimension
|
|
59
|
+
/** Normalized lowercase host (multi-site sub-dimension). */
|
|
60
60
|
site?: string | null;
|
|
61
61
|
/** 'client' (runtime boot) or 'build' (CI/build step). Default 'client'. */
|
|
62
62
|
source?: FleetHeartbeatSource;
|
|
@@ -77,9 +77,9 @@ export declare function normalizeFleetModules(input: unknown): FleetModule[];
|
|
|
77
77
|
export declare function sanitizeFleetVersion(raw: unknown): string | null;
|
|
78
78
|
/**
|
|
79
79
|
* Light client-side site normalization to the canonical host shape (lowercase,
|
|
80
|
-
* no protocol/path/port).
|
|
81
|
-
*
|
|
82
|
-
*
|
|
80
|
+
* no protocol/path/port). The Sonor API's normalizer is AUTHORITATIVE and
|
|
81
|
+
* re-runs on ingest; this just avoids sending obvious noise. Keep the two
|
|
82
|
+
* shapes aligned.
|
|
83
83
|
*/
|
|
84
84
|
export declare function normalizeFleetSite(raw: unknown): string | null;
|
|
85
85
|
/**
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @sonordev/contracts/forms — managed-form honeypot policy (v1)
|
|
3
3
|
*
|
|
4
|
-
* Single source of truth for the honeypot
|
|
5
|
-
*
|
|
6
|
-
* the server (sonor-api names the trap in the form config it returns AND
|
|
7
|
-
* detects hits on intake). Both import this: site-kit as
|
|
8
|
-
* `@sonordev/site-kit/forms/contract`, sonor-api through
|
|
9
|
-
* `src/modules/forms/honeypot-contract.ts`.
|
|
4
|
+
* Single source of truth for the honeypot field's naming, shared by site-kit
|
|
5
|
+
* (which renders the field, as `@sonordev/site-kit/forms/contract`) and Sonor.
|
|
10
6
|
*
|
|
11
|
-
* The default field name
|
|
12
|
-
*
|
|
13
|
-
* as spam, so generic names are only trusted when they DON'T match a real
|
|
14
|
-
* field of the form (see `resolveHoneypotFieldNames`).
|
|
7
|
+
* The default field name is deliberately unlike a real field's, so it never
|
|
8
|
+
* collides with a form's own fields (see `resolveHoneypotFieldNames`).
|
|
15
9
|
*/
|
|
16
10
|
/** Bump on breaking changes to the honeypot policy. */
|
|
17
11
|
export declare const FORMS_HONEYPOT_CONTRACT_VERSION: 1;
|
package/dist/contracts/llms.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare const LLMS_PUBLIC_SUMMARY_MAX_LENGTH = 400;
|
|
|
14
14
|
/** Max length for optional llms.txt blockquote disclaimer line. */
|
|
15
15
|
export declare const LLMS_DISCLAIMER_MAX_LENGTH = 280;
|
|
16
16
|
/**
|
|
17
|
-
* Optional keys we allow inside managed_llm_schema JSON from
|
|
17
|
+
* Optional keys we allow inside managed_llm_schema JSON from Sonor.
|
|
18
18
|
* Values outside this set should not be relied on by consumers; strip unknown keys when emitting JSON-LD.
|
|
19
19
|
*/
|
|
20
20
|
export declare const MANAGED_LLM_SCHEMA_KNOWN_KEYS: Set<string>;
|