@sonordev/site-kit 3.0.4 → 3.2.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/AGENTS.md +107 -0
- package/agent-manifest.json +377 -0
- package/dist/AnalyticsProvider-CD635CHQ.mjs +8 -0
- package/dist/{AnalyticsProvider-MLT26JRP.mjs.map → AnalyticsProvider-CD635CHQ.mjs.map} +1 -1
- package/dist/AnalyticsProvider-WK2Z6AIN.js +29 -0
- package/dist/{AnalyticsProvider-WTOGN7LV.js.map → AnalyticsProvider-WK2Z6AIN.js.map} +1 -1
- package/dist/BlogPostFaqSection-4AD2NIGG.js +13 -0
- package/dist/{BlogPostFaqSection-H556RV62.js.map → BlogPostFaqSection-4AD2NIGG.js.map} +1 -1
- package/dist/{BlogPostFaqSection-VSHOKKUD.mjs → BlogPostFaqSection-TU6YEC7P.mjs} +3 -3
- package/dist/{BlogPostFaqSection-VSHOKKUD.mjs.map → BlogPostFaqSection-TU6YEC7P.mjs.map} +1 -1
- package/dist/ChatWidget-AIOOZY6H.js +17 -0
- package/dist/{ChatWidget-MAL7FB4M.js.map → ChatWidget-AIOOZY6H.js.map} +1 -1
- package/dist/ChatWidget-UAAWDBNS.mjs +8 -0
- package/dist/{ChatWidget-QPZTPSPE.mjs.map → ChatWidget-UAAWDBNS.mjs.map} +1 -1
- package/dist/EngageWidget-EZ5T6H3K.mjs +7 -0
- package/dist/{EngageWidget-IPBUA4DW.mjs.map → EngageWidget-EZ5T6H3K.mjs.map} +1 -1
- package/dist/EngageWidget-RWVWW56C.js +16 -0
- package/dist/{EngageWidget-N3CABK3L.js.map → EngageWidget-RWVWW56C.js.map} +1 -1
- package/dist/{SignalCore-4MDIJUAP.mjs → SignalCore-4B4RNYLV.mjs} +60 -47
- package/dist/SignalCore-4B4RNYLV.mjs.map +1 -0
- package/dist/{SignalCore-ZMFUE3N4.js → SignalCore-AECW2JFP.js} +60 -47
- package/dist/SignalCore-AECW2JFP.js.map +1 -0
- package/dist/SitemapSync-AICU4SSV.js +15 -0
- package/dist/{SitemapSync-FUCH6Y6J.js.map → SitemapSync-AICU4SSV.js.map} +1 -1
- package/dist/SitemapSync-CIZCAZXK.mjs +6 -0
- package/dist/{SitemapSync-LCSPRAWU.mjs.map → SitemapSync-CIZCAZXK.mjs.map} +1 -1
- package/dist/analytics/index.js +11 -9
- package/dist/analytics/index.mjs +4 -2
- package/dist/blog/index.js +12 -12
- package/dist/blog/index.mjs +2 -2
- package/dist/blog/server-ui.js +5 -5
- package/dist/blog/server-ui.mjs +1 -1
- package/dist/brand.css +8 -3
- package/dist/{chunk-QTWA44S3.mjs → chunk-2WYEJOGA.mjs} +7 -8
- package/dist/chunk-2WYEJOGA.mjs.map +1 -0
- package/dist/{chunk-AN4ATCYQ.mjs → chunk-45QHDA7Q.mjs} +3 -3
- package/dist/{chunk-AN4ATCYQ.mjs.map → chunk-45QHDA7Q.mjs.map} +1 -1
- package/dist/{chunk-RI6JZUAE.js → chunk-4FBV5BJW.js} +7 -8
- package/dist/chunk-4FBV5BJW.js.map +1 -0
- package/dist/{chunk-YJWKHCOB.js → chunk-4NTMIU6V.js} +13 -11
- package/dist/chunk-4NTMIU6V.js.map +1 -0
- package/dist/{chunk-YFGKIKXA.mjs → chunk-57QV6NIY.mjs} +3 -3
- package/dist/{chunk-YFGKIKXA.mjs.map → chunk-57QV6NIY.mjs.map} +1 -1
- package/dist/chunk-5OWZUNNE.js +102 -0
- package/dist/chunk-5OWZUNNE.js.map +1 -0
- package/dist/{chunk-EUDTPXUI.mjs → chunk-6HPNFWSC.mjs} +3 -3
- package/dist/{chunk-EUDTPXUI.mjs.map → chunk-6HPNFWSC.mjs.map} +1 -1
- package/dist/{chunk-ZM2ALSBM.js → chunk-7TX5BKVA.js} +18 -7
- package/dist/chunk-7TX5BKVA.js.map +1 -0
- package/dist/{chunk-FT5JNCD4.mjs → chunk-AB2VYIYU.mjs} +11 -11
- package/dist/{chunk-FT5JNCD4.mjs.map → chunk-AB2VYIYU.mjs.map} +1 -1
- package/dist/{chunk-I5TJIESQ.js → chunk-BMKZHXWQ.js} +11 -11
- package/dist/{chunk-I5TJIESQ.js.map → chunk-BMKZHXWQ.js.map} +1 -1
- package/dist/{chunk-KHFNPPOX.mjs → chunk-DSRPKUQI.mjs} +6 -6
- package/dist/{chunk-KHFNPPOX.mjs.map → chunk-DSRPKUQI.mjs.map} +1 -1
- package/dist/chunk-EAASMIWX.js +258 -0
- package/dist/chunk-EAASMIWX.js.map +1 -0
- package/dist/{chunk-T4QBSRA4.mjs → chunk-EIWRPGOK.mjs} +37 -60
- package/dist/chunk-EIWRPGOK.mjs.map +1 -0
- package/dist/{chunk-O7E6QVK3.js → chunk-GCDVKOSM.js} +3 -3
- package/dist/{chunk-O7E6QVK3.js.map → chunk-GCDVKOSM.js.map} +1 -1
- package/dist/{chunk-KMZ527EM.mjs → chunk-GN62H6EG.mjs} +34 -8
- package/dist/chunk-GN62H6EG.mjs.map +1 -0
- package/dist/{chunk-UJQYSVYV.js → chunk-GQF6QAQS.js} +4 -4
- package/dist/{chunk-UJQYSVYV.js.map → chunk-GQF6QAQS.js.map} +1 -1
- package/dist/{chunk-MLJXELPA.js → chunk-HAZN43I6.js} +60 -94
- package/dist/chunk-HAZN43I6.js.map +1 -0
- package/dist/chunk-LZSCCJ4O.mjs +253 -0
- package/dist/chunk-LZSCCJ4O.mjs.map +1 -0
- package/dist/{chunk-TCVHI3JP.mjs → chunk-N2HR2E4Z.mjs} +60 -92
- package/dist/chunk-N2HR2E4Z.mjs.map +1 -0
- package/dist/{chunk-VCWSSGCU.js → chunk-NAVDN4AE.js} +7 -7
- package/dist/{chunk-VCWSSGCU.js.map → chunk-NAVDN4AE.js.map} +1 -1
- package/dist/chunk-NDHFU4HV.mjs +97 -0
- package/dist/chunk-NDHFU4HV.mjs.map +1 -0
- package/dist/{chunk-PST3NOEM.mjs → chunk-O237KKCX.mjs} +4 -4
- package/dist/{chunk-PST3NOEM.mjs.map → chunk-O237KKCX.mjs.map} +1 -1
- package/dist/{chunk-5AESOLXS.mjs → chunk-OTY7EWET.mjs} +13 -11
- package/dist/chunk-OTY7EWET.mjs.map +1 -0
- package/dist/chunk-Q2NBD54V.js +69 -0
- package/dist/chunk-Q2NBD54V.js.map +1 -0
- package/dist/{chunk-DGHPOWLU.js → chunk-R5A64DCX.js} +8 -8
- package/dist/{chunk-DGHPOWLU.js.map → chunk-R5A64DCX.js.map} +1 -1
- package/dist/{chunk-3YQCPLGP.mjs → chunk-RFIWVH3D.mjs} +41 -79
- package/dist/chunk-RFIWVH3D.mjs.map +1 -0
- package/dist/{chunk-NNZDHLXN.js → chunk-S3YQGTBF.js} +35 -9
- package/dist/chunk-S3YQGTBF.js.map +1 -0
- package/dist/{chunk-IBDVZ6BF.js → chunk-SLWTG2LJ.js} +69 -74
- package/dist/chunk-SLWTG2LJ.js.map +1 -0
- package/dist/chunk-SN2O72UF.mjs +6 -0
- package/dist/chunk-SN2O72UF.mjs.map +1 -0
- package/dist/{chunk-65SMJBHW.mjs → chunk-T2DEEKVQ.mjs} +69 -74
- package/dist/chunk-T2DEEKVQ.mjs.map +1 -0
- package/dist/{chunk-3GCEFS73.js → chunk-TE3W5REY.js} +39 -62
- package/dist/chunk-TE3W5REY.js.map +1 -0
- package/dist/{chunk-IFVMZFNT.js → chunk-TVCCZ7NR.js} +41 -79
- package/dist/chunk-TVCCZ7NR.js.map +1 -0
- package/dist/{chunk-EBJ4S5DU.js → chunk-UT2CF4FC.js} +4 -4
- package/dist/{chunk-EBJ4S5DU.js.map → chunk-UT2CF4FC.js.map} +1 -1
- package/dist/chunk-V6NVBFEP.js +54 -0
- package/dist/chunk-V6NVBFEP.js.map +1 -0
- package/dist/{chunk-6FWQMKVO.mjs → chunk-WN5A3KSY.mjs} +18 -7
- package/dist/chunk-WN5A3KSY.mjs.map +1 -0
- package/dist/chunk-WRZQS7O4.js +8 -0
- package/dist/chunk-WRZQS7O4.js.map +1 -0
- package/dist/chunk-WZHWWOUC.js +51 -0
- package/dist/chunk-WZHWWOUC.js.map +1 -0
- package/dist/chunk-X3S6KXAP.mjs +47 -0
- package/dist/chunk-X3S6KXAP.mjs.map +1 -0
- package/dist/chunk-X4OPM3SK.mjs +43 -0
- package/dist/chunk-X4OPM3SK.mjs.map +1 -0
- package/dist/chunk-ZPLN537Q.mjs +57 -0
- package/dist/chunk-ZPLN537Q.mjs.map +1 -0
- package/dist/cli/index.js +8986 -1276
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +8972 -1280
- package/dist/cli/index.mjs.map +1 -1
- package/dist/commerce/index.js +50 -48
- package/dist/commerce/index.mjs +5 -3
- package/dist/engage/index.js +11 -8
- package/dist/engage/index.js.map +1 -1
- package/dist/engage/index.mjs +8 -5
- package/dist/engage/index.mjs.map +1 -1
- package/dist/fleet/contract.d.mts +99 -0
- package/dist/fleet/contract.d.ts +99 -0
- package/dist/fleet/contract.js +53 -0
- package/dist/fleet/contract.js.map +1 -0
- package/dist/fleet/contract.mjs +4 -0
- package/dist/fleet/contract.mjs.map +1 -0
- package/dist/fleet/index.d.mts +89 -0
- package/dist/fleet/index.d.ts +89 -0
- package/dist/fleet/index.js +74 -0
- package/dist/fleet/index.js.map +1 -0
- package/dist/fleet/index.mjs +9 -0
- package/dist/fleet/index.mjs.map +1 -0
- package/dist/forms/contract.d.mts +69 -0
- package/dist/forms/contract.d.ts +69 -0
- package/dist/forms/contract.js +33 -0
- package/dist/forms/contract.js.map +1 -0
- package/dist/forms/contract.mjs +4 -0
- package/dist/forms/contract.mjs.map +1 -0
- package/dist/forms/index.js +21 -17
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/index.mjs +14 -10
- package/dist/forms/index.mjs.map +1 -1
- package/dist/forms/styles.css +10 -8
- package/dist/images/index.js +10 -8
- package/dist/images/index.mjs +3 -1
- package/dist/index.js +98 -96
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -7
- package/dist/index.mjs.map +1 -1
- package/dist/layout/client.d.mts +8 -1
- package/dist/layout/client.d.ts +8 -1
- package/dist/layout/client.js +8 -3
- package/dist/layout/client.mjs +7 -2
- package/dist/layout/index.d.mts +7 -1
- package/dist/layout/index.d.ts +7 -1
- package/dist/layout/index.js +57 -4
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/index.mjs +56 -3
- package/dist/layout/index.mjs.map +1 -1
- package/dist/llms/index.d.mts +4 -0
- package/dist/llms/index.d.ts +4 -0
- package/dist/llms/index.js +12 -12
- package/dist/llms/index.mjs +2 -2
- package/dist/maps/index.js +9 -18
- package/dist/maps/index.js.map +1 -1
- package/dist/maps/index.mjs +9 -18
- package/dist/maps/index.mjs.map +1 -1
- package/dist/portfolio/contract.d.mts +61 -0
- package/dist/portfolio/contract.d.ts +61 -0
- package/dist/portfolio/contract.js +43 -0
- package/dist/portfolio/contract.js.map +1 -0
- package/dist/portfolio/contract.mjs +38 -0
- package/dist/portfolio/contract.mjs.map +1 -0
- package/dist/seo/client.js +4 -2
- package/dist/seo/client.mjs +3 -1
- package/dist/seo/index.js +4 -2
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +3 -1
- package/dist/seo/index.mjs.map +1 -1
- package/dist/seo-pages/contract.d.mts +62 -0
- package/dist/seo-pages/contract.d.ts +62 -0
- package/dist/seo-pages/contract.js +48 -0
- package/dist/seo-pages/contract.js.map +1 -0
- package/dist/seo-pages/contract.mjs +44 -0
- package/dist/seo-pages/contract.mjs.map +1 -0
- package/dist/signal/index.js +11 -11
- package/dist/signal/index.mjs +2 -2
- package/dist/sitemap/index.js +2 -2
- package/dist/sitemap/index.mjs +1 -1
- package/dist/sites/contract.d.mts +57 -0
- package/dist/sites/contract.d.ts +57 -0
- package/dist/sites/contract.js +37 -0
- package/dist/sites/contract.js.map +1 -0
- package/dist/sites/contract.mjs +4 -0
- package/dist/sites/contract.mjs.map +1 -0
- package/package.json +44 -4
- package/skills/site-kit/SKILL.md +66 -0
- package/dist/AnalyticsProvider-MLT26JRP.mjs +0 -6
- package/dist/AnalyticsProvider-WTOGN7LV.js +0 -27
- package/dist/BlogPostFaqSection-H556RV62.js +0 -13
- package/dist/ChatWidget-MAL7FB4M.js +0 -14
- package/dist/ChatWidget-QPZTPSPE.mjs +0 -5
- package/dist/EngageWidget-IPBUA4DW.mjs +0 -5
- package/dist/EngageWidget-N3CABK3L.js +0 -14
- package/dist/SignalCore-4MDIJUAP.mjs.map +0 -1
- package/dist/SignalCore-ZMFUE3N4.js.map +0 -1
- package/dist/SitemapSync-FUCH6Y6J.js +0 -13
- package/dist/SitemapSync-LCSPRAWU.mjs +0 -4
- package/dist/chunk-3GCEFS73.js.map +0 -1
- package/dist/chunk-3YQCPLGP.mjs.map +0 -1
- package/dist/chunk-5AESOLXS.mjs.map +0 -1
- package/dist/chunk-65SMJBHW.mjs.map +0 -1
- package/dist/chunk-6FWQMKVO.mjs.map +0 -1
- package/dist/chunk-IBDVZ6BF.js.map +0 -1
- package/dist/chunk-IFVMZFNT.js.map +0 -1
- package/dist/chunk-KMZ527EM.mjs.map +0 -1
- package/dist/chunk-MLJXELPA.js.map +0 -1
- package/dist/chunk-NNZDHLXN.js.map +0 -1
- package/dist/chunk-QTWA44S3.mjs.map +0 -1
- package/dist/chunk-RI6JZUAE.js.map +0 -1
- package/dist/chunk-T4QBSRA4.mjs.map +0 -1
- package/dist/chunk-TCVHI3JP.mjs.map +0 -1
- package/dist/chunk-YJWKHCOB.js.map +0 -1
- package/dist/chunk-ZM2ALSBM.js.map +0 -1
package/dist/commerce/index.js
CHANGED
|
@@ -1,194 +1,196 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
6
|
-
require('../chunk-
|
|
4
|
+
var chunkTE3W5REY_js = require('../chunk-TE3W5REY.js');
|
|
5
|
+
require('../chunk-UT2CF4FC.js');
|
|
6
|
+
require('../chunk-SLWTG2LJ.js');
|
|
7
7
|
require('../chunk-HMFFAUCD.js');
|
|
8
8
|
require('../chunk-3BNFUMLL.js');
|
|
9
|
+
require('../chunk-EAASMIWX.js');
|
|
10
|
+
require('../chunk-WRZQS7O4.js');
|
|
9
11
|
require('../chunk-ZSMWDLMK.js');
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
Object.defineProperty(exports, "CalendarView", {
|
|
14
16
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkTE3W5REY_js.CalendarView; }
|
|
16
18
|
});
|
|
17
19
|
Object.defineProperty(exports, "CheckoutForm", {
|
|
18
20
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkTE3W5REY_js.CheckoutForm; }
|
|
20
22
|
});
|
|
21
23
|
Object.defineProperty(exports, "EventCalendar", {
|
|
22
24
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkTE3W5REY_js.EventCalendar; }
|
|
24
26
|
});
|
|
25
27
|
Object.defineProperty(exports, "EventCheckout", {
|
|
26
28
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkTE3W5REY_js.EventCheckout; }
|
|
28
30
|
});
|
|
29
31
|
Object.defineProperty(exports, "EventEmbed", {
|
|
30
32
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkTE3W5REY_js.EventEmbed; }
|
|
32
34
|
});
|
|
33
35
|
Object.defineProperty(exports, "EventModal", {
|
|
34
36
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkTE3W5REY_js.EventModal; }
|
|
36
38
|
});
|
|
37
39
|
Object.defineProperty(exports, "EventTile", {
|
|
38
40
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkTE3W5REY_js.EventTile; }
|
|
40
42
|
});
|
|
41
43
|
Object.defineProperty(exports, "EventsWidget", {
|
|
42
44
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkTE3W5REY_js.EventsWidget; }
|
|
44
46
|
});
|
|
45
47
|
Object.defineProperty(exports, "OfferingCard", {
|
|
46
48
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
49
|
+
get: function () { return chunkTE3W5REY_js.OfferingCard; }
|
|
48
50
|
});
|
|
49
51
|
Object.defineProperty(exports, "OfferingList", {
|
|
50
52
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
53
|
+
get: function () { return chunkTE3W5REY_js.OfferingList; }
|
|
52
54
|
});
|
|
53
55
|
Object.defineProperty(exports, "ProductDetail", {
|
|
54
56
|
enumerable: true,
|
|
55
|
-
get: function () { return
|
|
57
|
+
get: function () { return chunkTE3W5REY_js.ProductDetail; }
|
|
56
58
|
});
|
|
57
59
|
Object.defineProperty(exports, "ProductEmbed", {
|
|
58
60
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
61
|
+
get: function () { return chunkTE3W5REY_js.ProductEmbed; }
|
|
60
62
|
});
|
|
61
63
|
Object.defineProperty(exports, "ProductGrid", {
|
|
62
64
|
enumerable: true,
|
|
63
|
-
get: function () { return
|
|
65
|
+
get: function () { return chunkTE3W5REY_js.ProductGrid; }
|
|
64
66
|
});
|
|
65
67
|
Object.defineProperty(exports, "ProductPage", {
|
|
66
68
|
enumerable: true,
|
|
67
|
-
get: function () { return
|
|
69
|
+
get: function () { return chunkTE3W5REY_js.ProductPage; }
|
|
68
70
|
});
|
|
69
71
|
Object.defineProperty(exports, "RegistrationForm", {
|
|
70
72
|
enumerable: true,
|
|
71
|
-
get: function () { return
|
|
73
|
+
get: function () { return chunkTE3W5REY_js.RegistrationForm; }
|
|
72
74
|
});
|
|
73
75
|
Object.defineProperty(exports, "SizeChart", {
|
|
74
76
|
enumerable: true,
|
|
75
|
-
get: function () { return
|
|
77
|
+
get: function () { return chunkTE3W5REY_js.SizeChart; }
|
|
76
78
|
});
|
|
77
79
|
Object.defineProperty(exports, "UpcomingEvents", {
|
|
78
80
|
enumerable: true,
|
|
79
|
-
get: function () { return
|
|
81
|
+
get: function () { return chunkTE3W5REY_js.UpcomingEvents; }
|
|
80
82
|
});
|
|
81
83
|
Object.defineProperty(exports, "createCheckoutSession", {
|
|
82
84
|
enumerable: true,
|
|
83
|
-
get: function () { return
|
|
85
|
+
get: function () { return chunkTE3W5REY_js.createCheckoutSession; }
|
|
84
86
|
});
|
|
85
87
|
Object.defineProperty(exports, "createPaymentIntent", {
|
|
86
88
|
enumerable: true,
|
|
87
|
-
get: function () { return
|
|
89
|
+
get: function () { return chunkTE3W5REY_js.createPaymentIntent; }
|
|
88
90
|
});
|
|
89
91
|
Object.defineProperty(exports, "fetchActiveProcessor", {
|
|
90
92
|
enumerable: true,
|
|
91
|
-
get: function () { return
|
|
93
|
+
get: function () { return chunkTE3W5REY_js.fetchActiveProcessor; }
|
|
92
94
|
});
|
|
93
95
|
Object.defineProperty(exports, "fetchCategories", {
|
|
94
96
|
enumerable: true,
|
|
95
|
-
get: function () { return
|
|
97
|
+
get: function () { return chunkTE3W5REY_js.fetchCategories; }
|
|
96
98
|
});
|
|
97
99
|
Object.defineProperty(exports, "fetchLatestOffering", {
|
|
98
100
|
enumerable: true,
|
|
99
|
-
get: function () { return
|
|
101
|
+
get: function () { return chunkTE3W5REY_js.fetchLatestOffering; }
|
|
100
102
|
});
|
|
101
103
|
Object.defineProperty(exports, "fetchNextEvent", {
|
|
102
104
|
enumerable: true,
|
|
103
|
-
get: function () { return
|
|
105
|
+
get: function () { return chunkTE3W5REY_js.fetchNextEvent; }
|
|
104
106
|
});
|
|
105
107
|
Object.defineProperty(exports, "fetchOffering", {
|
|
106
108
|
enumerable: true,
|
|
107
|
-
get: function () { return
|
|
109
|
+
get: function () { return chunkTE3W5REY_js.fetchOffering; }
|
|
108
110
|
});
|
|
109
111
|
Object.defineProperty(exports, "fetchOfferings", {
|
|
110
112
|
enumerable: true,
|
|
111
|
-
get: function () { return
|
|
113
|
+
get: function () { return chunkTE3W5REY_js.fetchOfferings; }
|
|
112
114
|
});
|
|
113
115
|
Object.defineProperty(exports, "fetchProcessorConfig", {
|
|
114
116
|
enumerable: true,
|
|
115
|
-
get: function () { return
|
|
117
|
+
get: function () { return chunkTE3W5REY_js.fetchProcessorConfig; }
|
|
116
118
|
});
|
|
117
119
|
Object.defineProperty(exports, "fetchProductBySlug", {
|
|
118
120
|
enumerable: true,
|
|
119
|
-
get: function () { return
|
|
121
|
+
get: function () { return chunkTE3W5REY_js.fetchProductBySlug; }
|
|
120
122
|
});
|
|
121
123
|
Object.defineProperty(exports, "fetchProducts", {
|
|
122
124
|
enumerable: true,
|
|
123
|
-
get: function () { return
|
|
125
|
+
get: function () { return chunkTE3W5REY_js.fetchProducts; }
|
|
124
126
|
});
|
|
125
127
|
Object.defineProperty(exports, "fetchProductsPublic", {
|
|
126
128
|
enumerable: true,
|
|
127
|
-
get: function () { return
|
|
129
|
+
get: function () { return chunkTE3W5REY_js.fetchProductsPublic; }
|
|
128
130
|
});
|
|
129
131
|
Object.defineProperty(exports, "fetchServices", {
|
|
130
132
|
enumerable: true,
|
|
131
|
-
get: function () { return
|
|
133
|
+
get: function () { return chunkTE3W5REY_js.fetchServices; }
|
|
132
134
|
});
|
|
133
135
|
Object.defineProperty(exports, "fetchShippingRates", {
|
|
134
136
|
enumerable: true,
|
|
135
|
-
get: function () { return
|
|
137
|
+
get: function () { return chunkTE3W5REY_js.fetchShippingRates; }
|
|
136
138
|
});
|
|
137
139
|
Object.defineProperty(exports, "fetchUpcomingEvents", {
|
|
138
140
|
enumerable: true,
|
|
139
|
-
get: function () { return
|
|
141
|
+
get: function () { return chunkTE3W5REY_js.fetchUpcomingEvents; }
|
|
140
142
|
});
|
|
141
143
|
Object.defineProperty(exports, "formatDate", {
|
|
142
144
|
enumerable: true,
|
|
143
|
-
get: function () { return
|
|
145
|
+
get: function () { return chunkTE3W5REY_js.formatDate; }
|
|
144
146
|
});
|
|
145
147
|
Object.defineProperty(exports, "formatDateRange", {
|
|
146
148
|
enumerable: true,
|
|
147
|
-
get: function () { return
|
|
149
|
+
get: function () { return chunkTE3W5REY_js.formatDateRange; }
|
|
148
150
|
});
|
|
149
151
|
Object.defineProperty(exports, "formatDateTime", {
|
|
150
152
|
enumerable: true,
|
|
151
|
-
get: function () { return
|
|
153
|
+
get: function () { return chunkTE3W5REY_js.formatDateTime; }
|
|
152
154
|
});
|
|
153
155
|
Object.defineProperty(exports, "formatPrice", {
|
|
154
156
|
enumerable: true,
|
|
155
|
-
get: function () { return
|
|
157
|
+
get: function () { return chunkTE3W5REY_js.formatPrice; }
|
|
156
158
|
});
|
|
157
159
|
Object.defineProperty(exports, "formatTime", {
|
|
158
160
|
enumerable: true,
|
|
159
|
-
get: function () { return
|
|
161
|
+
get: function () { return chunkTE3W5REY_js.formatTime; }
|
|
160
162
|
});
|
|
161
163
|
Object.defineProperty(exports, "getOfferingUrl", {
|
|
162
164
|
enumerable: true,
|
|
163
|
-
get: function () { return
|
|
165
|
+
get: function () { return chunkTE3W5REY_js.getOfferingUrl; }
|
|
164
166
|
});
|
|
165
167
|
Object.defineProperty(exports, "getRelativeTimeUntil", {
|
|
166
168
|
enumerable: true,
|
|
167
|
-
get: function () { return
|
|
169
|
+
get: function () { return chunkTE3W5REY_js.getRelativeTimeUntil; }
|
|
168
170
|
});
|
|
169
171
|
Object.defineProperty(exports, "getSpotsRemaining", {
|
|
170
172
|
enumerable: true,
|
|
171
|
-
get: function () { return
|
|
173
|
+
get: function () { return chunkTE3W5REY_js.getSpotsRemaining; }
|
|
172
174
|
});
|
|
173
175
|
Object.defineProperty(exports, "isEventSoldOut", {
|
|
174
176
|
enumerable: true,
|
|
175
|
-
get: function () { return
|
|
177
|
+
get: function () { return chunkTE3W5REY_js.isEventSoldOut; }
|
|
176
178
|
});
|
|
177
179
|
Object.defineProperty(exports, "registerForEvent", {
|
|
178
180
|
enumerable: true,
|
|
179
|
-
get: function () { return
|
|
181
|
+
get: function () { return chunkTE3W5REY_js.registerForEvent; }
|
|
180
182
|
});
|
|
181
183
|
Object.defineProperty(exports, "useEventModal", {
|
|
182
184
|
enumerable: true,
|
|
183
|
-
get: function () { return
|
|
185
|
+
get: function () { return chunkTE3W5REY_js.useEventModal; }
|
|
184
186
|
});
|
|
185
187
|
Object.defineProperty(exports, "validateAddress", {
|
|
186
188
|
enumerable: true,
|
|
187
|
-
get: function () { return
|
|
189
|
+
get: function () { return chunkTE3W5REY_js.validateAddress; }
|
|
188
190
|
});
|
|
189
191
|
Object.defineProperty(exports, "validateDiscountCode", {
|
|
190
192
|
enumerable: true,
|
|
191
|
-
get: function () { return
|
|
193
|
+
get: function () { return chunkTE3W5REY_js.validateDiscountCode; }
|
|
192
194
|
});
|
|
193
195
|
//# sourceMappingURL=index.js.map
|
|
194
196
|
//# sourceMappingURL=index.js.map
|
package/dist/commerce/index.mjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { CalendarView, CheckoutForm, EventCalendar, EventCheckout, EventEmbed, EventModal, EventTile, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, SizeChart, UpcomingEvents, createCheckoutSession, createPaymentIntent, fetchActiveProcessor, fetchCategories, fetchLatestOffering, fetchNextEvent, fetchOffering, fetchOfferings, fetchProcessorConfig, fetchProductBySlug, fetchProducts, fetchProductsPublic, fetchServices, fetchShippingRates, fetchUpcomingEvents, formatDate, formatDateRange, formatDateTime, formatPrice, formatTime, getOfferingUrl, getRelativeTimeUntil, getSpotsRemaining, isEventSoldOut, registerForEvent, useEventModal, validateAddress, validateDiscountCode } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
2
|
+
export { CalendarView, CheckoutForm, EventCalendar, EventCheckout, EventEmbed, EventModal, EventTile, EventsWidget, OfferingCard, OfferingList, ProductDetail, ProductEmbed, ProductGrid, ProductPage, RegistrationForm, SizeChart, UpcomingEvents, createCheckoutSession, createPaymentIntent, fetchActiveProcessor, fetchCategories, fetchLatestOffering, fetchNextEvent, fetchOffering, fetchOfferings, fetchProcessorConfig, fetchProductBySlug, fetchProducts, fetchProductsPublic, fetchServices, fetchShippingRates, fetchUpcomingEvents, formatDate, formatDateRange, formatDateTime, formatPrice, formatTime, getOfferingUrl, getRelativeTimeUntil, getSpotsRemaining, isEventSoldOut, registerForEvent, useEventModal, validateAddress, validateDiscountCode } from '../chunk-EIWRPGOK.mjs';
|
|
3
|
+
import '../chunk-45QHDA7Q.mjs';
|
|
4
|
+
import '../chunk-T2DEEKVQ.mjs';
|
|
5
5
|
import '../chunk-3DPXOZAU.mjs';
|
|
6
6
|
import '../chunk-EE6SFAZP.mjs';
|
|
7
|
+
import '../chunk-LZSCCJ4O.mjs';
|
|
8
|
+
import '../chunk-SN2O72UF.mjs';
|
|
7
9
|
import '../chunk-4XPGGLVP.mjs';
|
|
8
10
|
//# sourceMappingURL=index.mjs.map
|
|
9
11
|
//# sourceMappingURL=index.mjs.map
|
package/dist/engage/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
require('../chunk-
|
|
4
|
+
var chunkNAVDN4AE_js = require('../chunk-NAVDN4AE.js');
|
|
5
|
+
var chunk4NTMIU6V_js = require('../chunk-4NTMIU6V.js');
|
|
6
|
+
require('../chunk-HAZN43I6.js');
|
|
7
|
+
require('../chunk-V6NVBFEP.js');
|
|
7
8
|
require('../chunk-3BNFUMLL.js');
|
|
9
|
+
require('../chunk-EAASMIWX.js');
|
|
10
|
+
require('../chunk-WRZQS7O4.js');
|
|
8
11
|
require('../chunk-ZSMWDLMK.js');
|
|
9
12
|
|
|
10
13
|
// src/engage/echo-config.ts
|
|
@@ -18,8 +21,8 @@ var SONOR_PUBLIC_ECHO_DEFAULTS = {
|
|
|
18
21
|
"Can I migrate from HubSpot?",
|
|
19
22
|
"How does the SEO module work?"
|
|
20
23
|
],
|
|
21
|
-
brandColor: "#
|
|
22
|
-
// blue-
|
|
24
|
+
brandColor: "#2563eb",
|
|
25
|
+
// blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary
|
|
23
26
|
assistantName: "Echo"
|
|
24
27
|
};
|
|
25
28
|
function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
|
|
@@ -36,15 +39,15 @@ function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
|
|
|
36
39
|
|
|
37
40
|
Object.defineProperty(exports, "ChatWidget", {
|
|
38
41
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
42
|
+
get: function () { return chunkNAVDN4AE_js.ChatWidget; }
|
|
40
43
|
});
|
|
41
44
|
Object.defineProperty(exports, "DesignRenderer", {
|
|
42
45
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
46
|
+
get: function () { return chunk4NTMIU6V_js.DesignRenderer; }
|
|
44
47
|
});
|
|
45
48
|
Object.defineProperty(exports, "EngageWidget", {
|
|
46
49
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
50
|
+
get: function () { return chunk4NTMIU6V_js.EngageWidget; }
|
|
48
51
|
});
|
|
49
52
|
exports.SONOR_PUBLIC_ECHO_DEFAULTS = SONOR_PUBLIC_ECHO_DEFAULTS;
|
|
50
53
|
exports.getEchoWidgetProps = getEchoWidgetProps;
|
package/dist/engage/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.js","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
|
package/dist/engage/index.mjs
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
export { ChatWidget } from '../chunk-
|
|
3
|
-
export { DesignRenderer, EngageWidget } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
2
|
+
export { ChatWidget } from '../chunk-DSRPKUQI.mjs';
|
|
3
|
+
export { DesignRenderer, EngageWidget } from '../chunk-OTY7EWET.mjs';
|
|
4
|
+
import '../chunk-N2HR2E4Z.mjs';
|
|
5
|
+
import '../chunk-X3S6KXAP.mjs';
|
|
5
6
|
import '../chunk-EE6SFAZP.mjs';
|
|
7
|
+
import '../chunk-LZSCCJ4O.mjs';
|
|
8
|
+
import '../chunk-SN2O72UF.mjs';
|
|
6
9
|
import '../chunk-4XPGGLVP.mjs';
|
|
7
10
|
|
|
8
11
|
// src/engage/echo-config.ts
|
|
@@ -16,8 +19,8 @@ var SONOR_PUBLIC_ECHO_DEFAULTS = {
|
|
|
16
19
|
"Can I migrate from HubSpot?",
|
|
17
20
|
"How does the SEO module work?"
|
|
18
21
|
],
|
|
19
|
-
brandColor: "#
|
|
20
|
-
// blue-
|
|
22
|
+
brandColor: "#2563eb",
|
|
23
|
+
// blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary
|
|
21
24
|
assistantName: "Echo"
|
|
22
25
|
};
|
|
23
26
|
function getEchoWidgetProps(config = SONOR_PUBLIC_ECHO_DEFAULTS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/engage/echo-config.ts"],"names":[],"mappings":";;;;;;;;;;AAgBO,IAAM,0BAAA,GAA+C;AAAA,EAC1D,SAAA,EAAW,yBAAA;AAAA,EACX,cAAA,EACE,0KAAA;AAAA,EACF,kBAAA,EAAoB;AAAA,IAClB,qBAAA;AAAA,IACA,0BAAA;AAAA,IACA,6BAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,UAAA,EAAY,SAAA;AAAA;AAAA,EACZ,aAAA,EAAe;AACjB;AAEO,SAAS,kBAAA,CAAmB,SAA2B,0BAAA,EAA4B;AACxF,EAAA,OAAO;AAAA,IACL,cAAA,EAAgB,IAAA;AAAA,IAChB,UAAA,EAAY,MAAA,CAAO,SAAA,IAAa,0BAAA,CAA2B,SAAA;AAAA,IAC3D,eAAA,EAAiB,MAAA,CAAO,cAAA,IAAkB,0BAAA,CAA2B,cAAA;AAAA,IACrE,mBAAA,EAAqB,MAAA,CAAO,kBAAA,IAAsB,0BAAA,CAA2B,kBAAA;AAAA,IAC7E,WAAA,EAAa,MAAA,CAAO,UAAA,IAAc,0BAAA,CAA2B,UAAA;AAAA,IAC7D,cAAA,EAAgB,MAAA,CAAO,aAAA,IAAiB,0BAAA,CAA2B,aAAA;AAAA,IACnE,kBAAkB,MAAA,CAAO;AAAA,GAC3B;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/engage - Echo Public Configuration\n *\n * Helpers for configuring the ChatWidget with Echo-specific defaults\n * for the Sonor public site (sonor.io).\n */\n\nexport interface EchoPublicConfig {\n signalUrl?: string\n welcomeMessage?: string\n suggestedQuestions?: string[]\n brandColor?: string\n assistantName?: string\n assistantAvatar?: string\n}\n\nexport const SONOR_PUBLIC_ECHO_DEFAULTS: EchoPublicConfig = {\n signalUrl: 'https://signal.sonor.io',\n welcomeMessage:\n \"Hi! I'm Echo, Sonor's AI assistant. I can answer questions about our platform, help you understand pricing, or get you started with a demo. What would you like to know?\",\n suggestedQuestions: [\n 'What does Sonor do?',\n 'How does Signal AI work?',\n 'What are the pricing plans?',\n 'Can I migrate from HubSpot?',\n 'How does the SEO module work?',\n ],\n brandColor: '#2563eb', // blue-600 (~5.2:1 on white, AA); overridden by --sk-primary CSS var or API brand_primary\n assistantName: 'Echo',\n}\n\nexport function getEchoWidgetProps(config: EchoPublicConfig = SONOR_PUBLIC_ECHO_DEFAULTS) {\n return {\n signal_enabled: true,\n signal_url: config.signalUrl || SONOR_PUBLIC_ECHO_DEFAULTS.signalUrl,\n welcome_message: config.welcomeMessage || SONOR_PUBLIC_ECHO_DEFAULTS.welcomeMessage,\n suggested_questions: config.suggestedQuestions || SONOR_PUBLIC_ECHO_DEFAULTS.suggestedQuestions,\n brand_color: config.brandColor || SONOR_PUBLIC_ECHO_DEFAULTS.brandColor,\n assistant_name: config.assistantName || SONOR_PUBLIC_ECHO_DEFAULTS.assistantName,\n assistant_avatar: config.assistantAvatar,\n }\n}\n"]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sonordev/site-kit/fleet/contract — Fleet heartbeat wire contract (v1)
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the heartbeat payload shape, shared by site-kit
|
|
5
|
+
* (send side) and sonor-api (ingest side) — the same pattern as
|
|
6
|
+
* `@sonordev/site-kit/llms/contract` and `@sonordev/site-kit/slots/contract`.
|
|
7
|
+
* Import THIS module (never the React component) from the Nest APIs.
|
|
8
|
+
*
|
|
9
|
+
* Why it exists: ~24+ client sites run site-kit at wildly drifted versions and
|
|
10
|
+
* the platform could not answer "which version / modules / key state is each
|
|
11
|
+
* site running" without shelling into every local repo. The heartbeat answers
|
|
12
|
+
* that from live traffic. It is fire-and-forget, deferred to idle (never in the
|
|
13
|
+
* hydration path), and carries NO visitor data — only the site's own build
|
|
14
|
+
* fingerprint. Project identity is resolved server-side from the x-api-key
|
|
15
|
+
* header, exactly like every other /api/public/* endpoint; sites never send
|
|
16
|
+
* project IDs.
|
|
17
|
+
*
|
|
18
|
+
* The x-sitekit-version header (set by shared/sonorFetch on every request)
|
|
19
|
+
* already gives the platform a passive "last seen version" for ALL traffic,
|
|
20
|
+
* including server-only module fetches. The heartbeat adds the things a header
|
|
21
|
+
* can't carry: the active module set and the host Next.js version.
|
|
22
|
+
*/
|
|
23
|
+
/** Bump on breaking payload changes. Ingest accepts the current version. */
|
|
24
|
+
declare const FLEET_CONTRACT_VERSION = 1;
|
|
25
|
+
/**
|
|
26
|
+
* Client-observable site-kit modules — the set a site can honestly self-report
|
|
27
|
+
* from a client boot, because SiteKitClientProviders actually mounts them.
|
|
28
|
+
*
|
|
29
|
+
* Server-only modules (seo, blog, images, reputation, redirects, llms) are
|
|
30
|
+
* intentionally absent: they render on the server and cannot be observed from
|
|
31
|
+
* the browser. Their usage still surfaces passively through the
|
|
32
|
+
* x-sitekit-version header on their own server fetches.
|
|
33
|
+
*/
|
|
34
|
+
type FleetModule = 'analytics' | 'engage' | 'signal' | 'sitemapSync' | 'forms' | 'commerce' | 'sync' | 'maps' | 'slots';
|
|
35
|
+
/** Canonical order — used to serialize equal module sets identically. */
|
|
36
|
+
declare const FLEET_MODULES: readonly FleetModule[];
|
|
37
|
+
/** Where a heartbeat originated. */
|
|
38
|
+
type FleetHeartbeatSource = 'client' | 'build';
|
|
39
|
+
/** Hard cap on modules accepted in one payload (junk guard). */
|
|
40
|
+
declare const FLEET_MODULES_MAX = 32;
|
|
41
|
+
/** Hard cap on the free-form version strings we accept. */
|
|
42
|
+
declare const FLEET_VERSION_MAX_LENGTH = 40;
|
|
43
|
+
/** Semver-ish shape. Non-matching values are stored as null, never rejected. */
|
|
44
|
+
declare const FLEET_VERSION_PATTERN: RegExp;
|
|
45
|
+
/** Max host length per RFC 1035. */
|
|
46
|
+
declare const FLEET_SITE_MAX_LENGTH = 253;
|
|
47
|
+
/**
|
|
48
|
+
* The heartbeat body a site POSTs to `/api/public/fleet/heartbeat`.
|
|
49
|
+
* All wire fields are snake_case to match the other contract modules and the
|
|
50
|
+
* agent-facing read endpoints.
|
|
51
|
+
*/
|
|
52
|
+
interface FleetHeartbeatPayload {
|
|
53
|
+
contract_version: number;
|
|
54
|
+
/** SITE_KIT_VERSION at runtime, e.g. "3.2.0". */
|
|
55
|
+
kit_version: string;
|
|
56
|
+
/** Installed Next.js version if detectable, else null. */
|
|
57
|
+
next_version?: string | null;
|
|
58
|
+
/** Client-observable active modules — deduped, validated, canonical order. */
|
|
59
|
+
modules: FleetModule[];
|
|
60
|
+
/** Normalized lowercase host (multi-site sub-dimension; see CLAUDE.md). */
|
|
61
|
+
site?: string | null;
|
|
62
|
+
/** 'client' (runtime boot) or 'build' (CI/build step). Default 'client'. */
|
|
63
|
+
source?: FleetHeartbeatSource;
|
|
64
|
+
}
|
|
65
|
+
/** The ingest endpoint's response. `received_at` is server-stamped ISO 8601. */
|
|
66
|
+
interface FleetHeartbeatResponse {
|
|
67
|
+
ok: boolean;
|
|
68
|
+
contract_version: number;
|
|
69
|
+
received_at: string;
|
|
70
|
+
}
|
|
71
|
+
declare function isFleetModule(x: unknown): x is FleetModule;
|
|
72
|
+
/**
|
|
73
|
+
* Dedupe + validate a modules array: drop unknowns, cap length, emit in the
|
|
74
|
+
* canonical FLEET_MODULES order so equal sets always serialize identically.
|
|
75
|
+
*/
|
|
76
|
+
declare function normalizeFleetModules(input: unknown): FleetModule[];
|
|
77
|
+
/** Coerce a version-ish string to a clean value or null (never throws). */
|
|
78
|
+
declare function sanitizeFleetVersion(raw: unknown): string | null;
|
|
79
|
+
/**
|
|
80
|
+
* Light client-side site normalization to the canonical host shape (lowercase,
|
|
81
|
+
* no protocol/path/port). sonor-api's IngestService.normalizeSite is the
|
|
82
|
+
* AUTHORITATIVE normalizer and re-runs on ingest — this just avoids sending
|
|
83
|
+
* obvious noise. Keep the two shapes aligned (see CLAUDE.md "site" convention).
|
|
84
|
+
*/
|
|
85
|
+
declare function normalizeFleetSite(raw: unknown): string | null;
|
|
86
|
+
/**
|
|
87
|
+
* Build a validated heartbeat payload from loose inputs. Used by BOTH the
|
|
88
|
+
* client component and the build-time sender so the wire shape is produced in
|
|
89
|
+
* exactly one place (single source of truth for the heartbeat body).
|
|
90
|
+
*/
|
|
91
|
+
declare function buildFleetHeartbeatPayload(input: {
|
|
92
|
+
kitVersion: string;
|
|
93
|
+
nextVersion?: string | null;
|
|
94
|
+
modules?: unknown;
|
|
95
|
+
site?: string | null;
|
|
96
|
+
source?: FleetHeartbeatSource;
|
|
97
|
+
}): FleetHeartbeatPayload;
|
|
98
|
+
|
|
99
|
+
export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, type FleetHeartbeatPayload, type FleetHeartbeatResponse, type FleetHeartbeatSource, type FleetModule, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sonordev/site-kit/fleet/contract — Fleet heartbeat wire contract (v1)
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the heartbeat payload shape, shared by site-kit
|
|
5
|
+
* (send side) and sonor-api (ingest side) — the same pattern as
|
|
6
|
+
* `@sonordev/site-kit/llms/contract` and `@sonordev/site-kit/slots/contract`.
|
|
7
|
+
* Import THIS module (never the React component) from the Nest APIs.
|
|
8
|
+
*
|
|
9
|
+
* Why it exists: ~24+ client sites run site-kit at wildly drifted versions and
|
|
10
|
+
* the platform could not answer "which version / modules / key state is each
|
|
11
|
+
* site running" without shelling into every local repo. The heartbeat answers
|
|
12
|
+
* that from live traffic. It is fire-and-forget, deferred to idle (never in the
|
|
13
|
+
* hydration path), and carries NO visitor data — only the site's own build
|
|
14
|
+
* fingerprint. Project identity is resolved server-side from the x-api-key
|
|
15
|
+
* header, exactly like every other /api/public/* endpoint; sites never send
|
|
16
|
+
* project IDs.
|
|
17
|
+
*
|
|
18
|
+
* The x-sitekit-version header (set by shared/sonorFetch on every request)
|
|
19
|
+
* already gives the platform a passive "last seen version" for ALL traffic,
|
|
20
|
+
* including server-only module fetches. The heartbeat adds the things a header
|
|
21
|
+
* can't carry: the active module set and the host Next.js version.
|
|
22
|
+
*/
|
|
23
|
+
/** Bump on breaking payload changes. Ingest accepts the current version. */
|
|
24
|
+
declare const FLEET_CONTRACT_VERSION = 1;
|
|
25
|
+
/**
|
|
26
|
+
* Client-observable site-kit modules — the set a site can honestly self-report
|
|
27
|
+
* from a client boot, because SiteKitClientProviders actually mounts them.
|
|
28
|
+
*
|
|
29
|
+
* Server-only modules (seo, blog, images, reputation, redirects, llms) are
|
|
30
|
+
* intentionally absent: they render on the server and cannot be observed from
|
|
31
|
+
* the browser. Their usage still surfaces passively through the
|
|
32
|
+
* x-sitekit-version header on their own server fetches.
|
|
33
|
+
*/
|
|
34
|
+
type FleetModule = 'analytics' | 'engage' | 'signal' | 'sitemapSync' | 'forms' | 'commerce' | 'sync' | 'maps' | 'slots';
|
|
35
|
+
/** Canonical order — used to serialize equal module sets identically. */
|
|
36
|
+
declare const FLEET_MODULES: readonly FleetModule[];
|
|
37
|
+
/** Where a heartbeat originated. */
|
|
38
|
+
type FleetHeartbeatSource = 'client' | 'build';
|
|
39
|
+
/** Hard cap on modules accepted in one payload (junk guard). */
|
|
40
|
+
declare const FLEET_MODULES_MAX = 32;
|
|
41
|
+
/** Hard cap on the free-form version strings we accept. */
|
|
42
|
+
declare const FLEET_VERSION_MAX_LENGTH = 40;
|
|
43
|
+
/** Semver-ish shape. Non-matching values are stored as null, never rejected. */
|
|
44
|
+
declare const FLEET_VERSION_PATTERN: RegExp;
|
|
45
|
+
/** Max host length per RFC 1035. */
|
|
46
|
+
declare const FLEET_SITE_MAX_LENGTH = 253;
|
|
47
|
+
/**
|
|
48
|
+
* The heartbeat body a site POSTs to `/api/public/fleet/heartbeat`.
|
|
49
|
+
* All wire fields are snake_case to match the other contract modules and the
|
|
50
|
+
* agent-facing read endpoints.
|
|
51
|
+
*/
|
|
52
|
+
interface FleetHeartbeatPayload {
|
|
53
|
+
contract_version: number;
|
|
54
|
+
/** SITE_KIT_VERSION at runtime, e.g. "3.2.0". */
|
|
55
|
+
kit_version: string;
|
|
56
|
+
/** Installed Next.js version if detectable, else null. */
|
|
57
|
+
next_version?: string | null;
|
|
58
|
+
/** Client-observable active modules — deduped, validated, canonical order. */
|
|
59
|
+
modules: FleetModule[];
|
|
60
|
+
/** Normalized lowercase host (multi-site sub-dimension; see CLAUDE.md). */
|
|
61
|
+
site?: string | null;
|
|
62
|
+
/** 'client' (runtime boot) or 'build' (CI/build step). Default 'client'. */
|
|
63
|
+
source?: FleetHeartbeatSource;
|
|
64
|
+
}
|
|
65
|
+
/** The ingest endpoint's response. `received_at` is server-stamped ISO 8601. */
|
|
66
|
+
interface FleetHeartbeatResponse {
|
|
67
|
+
ok: boolean;
|
|
68
|
+
contract_version: number;
|
|
69
|
+
received_at: string;
|
|
70
|
+
}
|
|
71
|
+
declare function isFleetModule(x: unknown): x is FleetModule;
|
|
72
|
+
/**
|
|
73
|
+
* Dedupe + validate a modules array: drop unknowns, cap length, emit in the
|
|
74
|
+
* canonical FLEET_MODULES order so equal sets always serialize identically.
|
|
75
|
+
*/
|
|
76
|
+
declare function normalizeFleetModules(input: unknown): FleetModule[];
|
|
77
|
+
/** Coerce a version-ish string to a clean value or null (never throws). */
|
|
78
|
+
declare function sanitizeFleetVersion(raw: unknown): string | null;
|
|
79
|
+
/**
|
|
80
|
+
* Light client-side site normalization to the canonical host shape (lowercase,
|
|
81
|
+
* no protocol/path/port). sonor-api's IngestService.normalizeSite is the
|
|
82
|
+
* AUTHORITATIVE normalizer and re-runs on ingest — this just avoids sending
|
|
83
|
+
* obvious noise. Keep the two shapes aligned (see CLAUDE.md "site" convention).
|
|
84
|
+
*/
|
|
85
|
+
declare function normalizeFleetSite(raw: unknown): string | null;
|
|
86
|
+
/**
|
|
87
|
+
* Build a validated heartbeat payload from loose inputs. Used by BOTH the
|
|
88
|
+
* client component and the build-time sender so the wire shape is produced in
|
|
89
|
+
* exactly one place (single source of truth for the heartbeat body).
|
|
90
|
+
*/
|
|
91
|
+
declare function buildFleetHeartbeatPayload(input: {
|
|
92
|
+
kitVersion: string;
|
|
93
|
+
nextVersion?: string | null;
|
|
94
|
+
modules?: unknown;
|
|
95
|
+
site?: string | null;
|
|
96
|
+
source?: FleetHeartbeatSource;
|
|
97
|
+
}): FleetHeartbeatPayload;
|
|
98
|
+
|
|
99
|
+
export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, type FleetHeartbeatPayload, type FleetHeartbeatResponse, type FleetHeartbeatSource, type FleetModule, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkQ2NBD54V_js = require('../chunk-Q2NBD54V.js');
|
|
4
|
+
require('../chunk-ZSMWDLMK.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "FLEET_CONTRACT_VERSION", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkQ2NBD54V_js.FLEET_CONTRACT_VERSION; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FLEET_MODULES", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkQ2NBD54V_js.FLEET_MODULES; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "FLEET_MODULES_MAX", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunkQ2NBD54V_js.FLEET_MODULES_MAX; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "FLEET_SITE_MAX_LENGTH", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunkQ2NBD54V_js.FLEET_SITE_MAX_LENGTH; }
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "FLEET_VERSION_MAX_LENGTH", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return chunkQ2NBD54V_js.FLEET_VERSION_MAX_LENGTH; }
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "FLEET_VERSION_PATTERN", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return chunkQ2NBD54V_js.FLEET_VERSION_PATTERN; }
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "buildFleetHeartbeatPayload", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () { return chunkQ2NBD54V_js.buildFleetHeartbeatPayload; }
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "isFleetModule", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () { return chunkQ2NBD54V_js.isFleetModule; }
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(exports, "normalizeFleetModules", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
get: function () { return chunkQ2NBD54V_js.normalizeFleetModules; }
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "normalizeFleetSite", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () { return chunkQ2NBD54V_js.normalizeFleetSite; }
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "sanitizeFleetVersion", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () { return chunkQ2NBD54V_js.sanitizeFleetVersion; }
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=contract.js.map
|
|
53
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"contract.js"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { FLEET_CONTRACT_VERSION, FLEET_MODULES, FLEET_MODULES_MAX, FLEET_SITE_MAX_LENGTH, FLEET_VERSION_MAX_LENGTH, FLEET_VERSION_PATTERN, buildFleetHeartbeatPayload, isFleetModule, normalizeFleetModules, normalizeFleetSite, sanitizeFleetVersion } from '../chunk-ZPLN537Q.mjs';
|
|
2
|
+
import '../chunk-4XPGGLVP.mjs';
|
|
3
|
+
//# sourceMappingURL=contract.mjs.map
|
|
4
|
+
//# sourceMappingURL=contract.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"contract.mjs"}
|