@sonordev/site-kit 1.4.7 → 1.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/AnalyticsProvider-KJWDN6YO.js +25 -0
  2. package/dist/{AnalyticsProvider-SC4YOBFI.js.map → AnalyticsProvider-KJWDN6YO.js.map} +1 -1
  3. package/dist/AnalyticsProvider-OXX23PK5.mjs +4 -0
  4. package/dist/{AnalyticsProvider-ZVZ2SNZR.mjs.map → AnalyticsProvider-OXX23PK5.mjs.map} +1 -1
  5. package/dist/analytics/index.js +9 -9
  6. package/dist/analytics/index.mjs +2 -2
  7. package/dist/{chunk-FP66BKW6.mjs → chunk-35L6FXF5.mjs} +3 -3
  8. package/dist/{chunk-FP66BKW6.mjs.map → chunk-35L6FXF5.mjs.map} +1 -1
  9. package/dist/{chunk-5DAALKHB.js → chunk-466AL5CC.js} +3 -3
  10. package/dist/{chunk-5DAALKHB.js.map → chunk-466AL5CC.js.map} +1 -1
  11. package/dist/{chunk-FRN4JQXL.js → chunk-AWSVC7SP.js} +4 -4
  12. package/dist/{chunk-FRN4JQXL.js.map → chunk-AWSVC7SP.js.map} +1 -1
  13. package/dist/{chunk-AU4GIQQU.mjs → chunk-BPXMOHVH.mjs} +3 -3
  14. package/dist/{chunk-AU4GIQQU.mjs.map → chunk-BPXMOHVH.mjs.map} +1 -1
  15. package/dist/{chunk-EG2FNRKR.mjs → chunk-CYZYPWGW.mjs} +3 -3
  16. package/dist/{chunk-EG2FNRKR.mjs.map → chunk-CYZYPWGW.mjs.map} +1 -1
  17. package/dist/{chunk-GTLIGQDM.js → chunk-DKSHZ7TG.js} +3 -3
  18. package/dist/{chunk-GTLIGQDM.js.map → chunk-DKSHZ7TG.js.map} +1 -1
  19. package/dist/{chunk-RNOXXICL.mjs → chunk-XTRXH5OL.mjs} +3 -3
  20. package/dist/{chunk-RNOXXICL.mjs.map → chunk-XTRXH5OL.mjs.map} +1 -1
  21. package/dist/{chunk-WAY6CT4A.js → chunk-YP5YVWAG.js} +5 -5
  22. package/dist/{chunk-WAY6CT4A.js.map → chunk-YP5YVWAG.js.map} +1 -1
  23. package/dist/commerce/index.js +47 -47
  24. package/dist/commerce/index.mjs +3 -3
  25. package/dist/index.js +28 -28
  26. package/dist/index.mjs +3 -3
  27. package/dist/layout/client.js +2 -2
  28. package/dist/layout/client.mjs +1 -1
  29. package/dist/layout/index.js +2 -2
  30. package/dist/layout/index.mjs +1 -1
  31. package/dist/seo/register-sitemap-cli.js +19 -9
  32. package/dist/seo/register-sitemap-cli.js.map +1 -1
  33. package/dist/seo/register-sitemap-cli.mjs +18 -8
  34. package/dist/seo/register-sitemap-cli.mjs.map +1 -1
  35. package/package.json +1 -1
  36. package/dist/AnalyticsProvider-SC4YOBFI.js +0 -25
  37. package/dist/AnalyticsProvider-ZVZ2SNZR.mjs +0 -4
@@ -1,188 +1,188 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkWAY6CT4A_js = require('../chunk-WAY6CT4A.js');
5
- require('../chunk-FRN4JQXL.js');
6
- require('../chunk-GTLIGQDM.js');
4
+ var chunkYP5YVWAG_js = require('../chunk-YP5YVWAG.js');
5
+ require('../chunk-AWSVC7SP.js');
6
+ require('../chunk-DKSHZ7TG.js');
7
7
  require('../chunk-ZSMWDLMK.js');
8
8
 
9
9
 
10
10
 
11
11
  Object.defineProperty(exports, "CalendarView", {
12
12
  enumerable: true,
13
- get: function () { return chunkWAY6CT4A_js.CalendarView; }
13
+ get: function () { return chunkYP5YVWAG_js.CalendarView; }
14
14
  });
15
15
  Object.defineProperty(exports, "CheckoutForm", {
16
16
  enumerable: true,
17
- get: function () { return chunkWAY6CT4A_js.CheckoutForm; }
17
+ get: function () { return chunkYP5YVWAG_js.CheckoutForm; }
18
18
  });
19
19
  Object.defineProperty(exports, "EventCalendar", {
20
20
  enumerable: true,
21
- get: function () { return chunkWAY6CT4A_js.EventCalendar; }
21
+ get: function () { return chunkYP5YVWAG_js.EventCalendar; }
22
22
  });
23
23
  Object.defineProperty(exports, "EventEmbed", {
24
24
  enumerable: true,
25
- get: function () { return chunkWAY6CT4A_js.EventEmbed; }
25
+ get: function () { return chunkYP5YVWAG_js.EventEmbed; }
26
26
  });
27
27
  Object.defineProperty(exports, "EventModal", {
28
28
  enumerable: true,
29
- get: function () { return chunkWAY6CT4A_js.EventModal; }
29
+ get: function () { return chunkYP5YVWAG_js.EventModal; }
30
30
  });
31
31
  Object.defineProperty(exports, "EventTile", {
32
32
  enumerable: true,
33
- get: function () { return chunkWAY6CT4A_js.EventTile; }
33
+ get: function () { return chunkYP5YVWAG_js.EventTile; }
34
34
  });
35
35
  Object.defineProperty(exports, "EventsWidget", {
36
36
  enumerable: true,
37
- get: function () { return chunkWAY6CT4A_js.EventsWidget; }
37
+ get: function () { return chunkYP5YVWAG_js.EventsWidget; }
38
38
  });
39
39
  Object.defineProperty(exports, "OfferingCard", {
40
40
  enumerable: true,
41
- get: function () { return chunkWAY6CT4A_js.OfferingCard; }
41
+ get: function () { return chunkYP5YVWAG_js.OfferingCard; }
42
42
  });
43
43
  Object.defineProperty(exports, "OfferingList", {
44
44
  enumerable: true,
45
- get: function () { return chunkWAY6CT4A_js.OfferingList; }
45
+ get: function () { return chunkYP5YVWAG_js.OfferingList; }
46
46
  });
47
47
  Object.defineProperty(exports, "ProductDetail", {
48
48
  enumerable: true,
49
- get: function () { return chunkWAY6CT4A_js.ProductDetail; }
49
+ get: function () { return chunkYP5YVWAG_js.ProductDetail; }
50
50
  });
51
51
  Object.defineProperty(exports, "ProductEmbed", {
52
52
  enumerable: true,
53
- get: function () { return chunkWAY6CT4A_js.ProductEmbed; }
53
+ get: function () { return chunkYP5YVWAG_js.ProductEmbed; }
54
54
  });
55
55
  Object.defineProperty(exports, "ProductGrid", {
56
56
  enumerable: true,
57
- get: function () { return chunkWAY6CT4A_js.ProductGrid; }
57
+ get: function () { return chunkYP5YVWAG_js.ProductGrid; }
58
58
  });
59
59
  Object.defineProperty(exports, "ProductPage", {
60
60
  enumerable: true,
61
- get: function () { return chunkWAY6CT4A_js.ProductPage; }
61
+ get: function () { return chunkYP5YVWAG_js.ProductPage; }
62
62
  });
63
63
  Object.defineProperty(exports, "RegistrationForm", {
64
64
  enumerable: true,
65
- get: function () { return chunkWAY6CT4A_js.RegistrationForm; }
65
+ get: function () { return chunkYP5YVWAG_js.RegistrationForm; }
66
66
  });
67
67
  Object.defineProperty(exports, "SizeChart", {
68
68
  enumerable: true,
69
- get: function () { return chunkWAY6CT4A_js.SizeChart; }
69
+ get: function () { return chunkYP5YVWAG_js.SizeChart; }
70
70
  });
71
71
  Object.defineProperty(exports, "UpcomingEvents", {
72
72
  enumerable: true,
73
- get: function () { return chunkWAY6CT4A_js.UpcomingEvents; }
73
+ get: function () { return chunkYP5YVWAG_js.UpcomingEvents; }
74
74
  });
75
75
  Object.defineProperty(exports, "createCheckoutSession", {
76
76
  enumerable: true,
77
- get: function () { return chunkWAY6CT4A_js.createCheckoutSession; }
77
+ get: function () { return chunkYP5YVWAG_js.createCheckoutSession; }
78
78
  });
79
79
  Object.defineProperty(exports, "createPaymentIntent", {
80
80
  enumerable: true,
81
- get: function () { return chunkWAY6CT4A_js.createPaymentIntent; }
81
+ get: function () { return chunkYP5YVWAG_js.createPaymentIntent; }
82
82
  });
83
83
  Object.defineProperty(exports, "fetchActiveProcessor", {
84
84
  enumerable: true,
85
- get: function () { return chunkWAY6CT4A_js.fetchActiveProcessor; }
85
+ get: function () { return chunkYP5YVWAG_js.fetchActiveProcessor; }
86
86
  });
87
87
  Object.defineProperty(exports, "fetchCategories", {
88
88
  enumerable: true,
89
- get: function () { return chunkWAY6CT4A_js.fetchCategories; }
89
+ get: function () { return chunkYP5YVWAG_js.fetchCategories; }
90
90
  });
91
91
  Object.defineProperty(exports, "fetchLatestOffering", {
92
92
  enumerable: true,
93
- get: function () { return chunkWAY6CT4A_js.fetchLatestOffering; }
93
+ get: function () { return chunkYP5YVWAG_js.fetchLatestOffering; }
94
94
  });
95
95
  Object.defineProperty(exports, "fetchNextEvent", {
96
96
  enumerable: true,
97
- get: function () { return chunkWAY6CT4A_js.fetchNextEvent; }
97
+ get: function () { return chunkYP5YVWAG_js.fetchNextEvent; }
98
98
  });
99
99
  Object.defineProperty(exports, "fetchOffering", {
100
100
  enumerable: true,
101
- get: function () { return chunkWAY6CT4A_js.fetchOffering; }
101
+ get: function () { return chunkYP5YVWAG_js.fetchOffering; }
102
102
  });
103
103
  Object.defineProperty(exports, "fetchOfferings", {
104
104
  enumerable: true,
105
- get: function () { return chunkWAY6CT4A_js.fetchOfferings; }
105
+ get: function () { return chunkYP5YVWAG_js.fetchOfferings; }
106
106
  });
107
107
  Object.defineProperty(exports, "fetchProcessorConfig", {
108
108
  enumerable: true,
109
- get: function () { return chunkWAY6CT4A_js.fetchProcessorConfig; }
109
+ get: function () { return chunkYP5YVWAG_js.fetchProcessorConfig; }
110
110
  });
111
111
  Object.defineProperty(exports, "fetchProductBySlug", {
112
112
  enumerable: true,
113
- get: function () { return chunkWAY6CT4A_js.fetchProductBySlug; }
113
+ get: function () { return chunkYP5YVWAG_js.fetchProductBySlug; }
114
114
  });
115
115
  Object.defineProperty(exports, "fetchProducts", {
116
116
  enumerable: true,
117
- get: function () { return chunkWAY6CT4A_js.fetchProducts; }
117
+ get: function () { return chunkYP5YVWAG_js.fetchProducts; }
118
118
  });
119
119
  Object.defineProperty(exports, "fetchProductsPublic", {
120
120
  enumerable: true,
121
- get: function () { return chunkWAY6CT4A_js.fetchProductsPublic; }
121
+ get: function () { return chunkYP5YVWAG_js.fetchProductsPublic; }
122
122
  });
123
123
  Object.defineProperty(exports, "fetchServices", {
124
124
  enumerable: true,
125
- get: function () { return chunkWAY6CT4A_js.fetchServices; }
125
+ get: function () { return chunkYP5YVWAG_js.fetchServices; }
126
126
  });
127
127
  Object.defineProperty(exports, "fetchShippingRates", {
128
128
  enumerable: true,
129
- get: function () { return chunkWAY6CT4A_js.fetchShippingRates; }
129
+ get: function () { return chunkYP5YVWAG_js.fetchShippingRates; }
130
130
  });
131
131
  Object.defineProperty(exports, "fetchUpcomingEvents", {
132
132
  enumerable: true,
133
- get: function () { return chunkWAY6CT4A_js.fetchUpcomingEvents; }
133
+ get: function () { return chunkYP5YVWAG_js.fetchUpcomingEvents; }
134
134
  });
135
135
  Object.defineProperty(exports, "formatDate", {
136
136
  enumerable: true,
137
- get: function () { return chunkWAY6CT4A_js.formatDate; }
137
+ get: function () { return chunkYP5YVWAG_js.formatDate; }
138
138
  });
139
139
  Object.defineProperty(exports, "formatDateRange", {
140
140
  enumerable: true,
141
- get: function () { return chunkWAY6CT4A_js.formatDateRange; }
141
+ get: function () { return chunkYP5YVWAG_js.formatDateRange; }
142
142
  });
143
143
  Object.defineProperty(exports, "formatDateTime", {
144
144
  enumerable: true,
145
- get: function () { return chunkWAY6CT4A_js.formatDateTime; }
145
+ get: function () { return chunkYP5YVWAG_js.formatDateTime; }
146
146
  });
147
147
  Object.defineProperty(exports, "formatPrice", {
148
148
  enumerable: true,
149
- get: function () { return chunkWAY6CT4A_js.formatPrice; }
149
+ get: function () { return chunkYP5YVWAG_js.formatPrice; }
150
150
  });
151
151
  Object.defineProperty(exports, "formatTime", {
152
152
  enumerable: true,
153
- get: function () { return chunkWAY6CT4A_js.formatTime; }
153
+ get: function () { return chunkYP5YVWAG_js.formatTime; }
154
154
  });
155
155
  Object.defineProperty(exports, "getOfferingUrl", {
156
156
  enumerable: true,
157
- get: function () { return chunkWAY6CT4A_js.getOfferingUrl; }
157
+ get: function () { return chunkYP5YVWAG_js.getOfferingUrl; }
158
158
  });
159
159
  Object.defineProperty(exports, "getRelativeTimeUntil", {
160
160
  enumerable: true,
161
- get: function () { return chunkWAY6CT4A_js.getRelativeTimeUntil; }
161
+ get: function () { return chunkYP5YVWAG_js.getRelativeTimeUntil; }
162
162
  });
163
163
  Object.defineProperty(exports, "getSpotsRemaining", {
164
164
  enumerable: true,
165
- get: function () { return chunkWAY6CT4A_js.getSpotsRemaining; }
165
+ get: function () { return chunkYP5YVWAG_js.getSpotsRemaining; }
166
166
  });
167
167
  Object.defineProperty(exports, "isEventSoldOut", {
168
168
  enumerable: true,
169
- get: function () { return chunkWAY6CT4A_js.isEventSoldOut; }
169
+ get: function () { return chunkYP5YVWAG_js.isEventSoldOut; }
170
170
  });
171
171
  Object.defineProperty(exports, "registerForEvent", {
172
172
  enumerable: true,
173
- get: function () { return chunkWAY6CT4A_js.registerForEvent; }
173
+ get: function () { return chunkYP5YVWAG_js.registerForEvent; }
174
174
  });
175
175
  Object.defineProperty(exports, "useEventModal", {
176
176
  enumerable: true,
177
- get: function () { return chunkWAY6CT4A_js.useEventModal; }
177
+ get: function () { return chunkYP5YVWAG_js.useEventModal; }
178
178
  });
179
179
  Object.defineProperty(exports, "validateAddress", {
180
180
  enumerable: true,
181
- get: function () { return chunkWAY6CT4A_js.validateAddress; }
181
+ get: function () { return chunkYP5YVWAG_js.validateAddress; }
182
182
  });
183
183
  Object.defineProperty(exports, "validateDiscountCode", {
184
184
  enumerable: true,
185
- get: function () { return chunkWAY6CT4A_js.validateDiscountCode; }
185
+ get: function () { return chunkYP5YVWAG_js.validateDiscountCode; }
186
186
  });
187
187
  //# sourceMappingURL=index.js.map
188
188
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- export { CalendarView, CheckoutForm, EventCalendar, 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-EG2FNRKR.mjs';
3
- import '../chunk-AU4GIQQU.mjs';
4
- import '../chunk-FP66BKW6.mjs';
2
+ export { CalendarView, CheckoutForm, EventCalendar, 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-CYZYPWGW.mjs';
3
+ import '../chunk-BPXMOHVH.mjs';
4
+ import '../chunk-35L6FXF5.mjs';
5
5
  import '../chunk-4XPGGLVP.mjs';
6
6
  //# sourceMappingURL=index.mjs.map
7
7
  //# sourceMappingURL=index.mjs.map
package/dist/index.js CHANGED
@@ -5,13 +5,13 @@ var chunkX4J33XQD_js = require('./chunk-X4J33XQD.js');
5
5
  var chunkG6VGUAK2_js = require('./chunk-G6VGUAK2.js');
6
6
  var chunkTKQLH33E_js = require('./chunk-TKQLH33E.js');
7
7
  require('./chunk-DY4K6X3A.js');
8
- var chunkWAY6CT4A_js = require('./chunk-WAY6CT4A.js');
8
+ var chunkYP5YVWAG_js = require('./chunk-YP5YVWAG.js');
9
9
  var chunkIJ2LWZID_js = require('./chunk-IJ2LWZID.js');
10
10
  var chunkIFAW7JFO_js = require('./chunk-IFAW7JFO.js');
11
11
  require('./chunk-EUNL6GAL.js');
12
12
  var chunkYBQT623Y_js = require('./chunk-YBQT623Y.js');
13
- require('./chunk-FRN4JQXL.js');
14
- var chunkGTLIGQDM_js = require('./chunk-GTLIGQDM.js');
13
+ require('./chunk-AWSVC7SP.js');
14
+ var chunkDKSHZ7TG_js = require('./chunk-DKSHZ7TG.js');
15
15
  var chunkDK2WNYQA_js = require('./chunk-DK2WNYQA.js');
16
16
  var chunk373TK6TZ_js = require('./chunk-373TK6TZ.js');
17
17
  require('./chunk-ZSMWDLMK.js');
@@ -96,7 +96,7 @@ function SiteKitProvider({
96
96
  }
97
97
  if (analytics?.enabled) {
98
98
  content = /* @__PURE__ */ jsxRuntime.jsx(React2.Suspense, { fallback: null, children: /* @__PURE__ */ jsxRuntime.jsx(
99
- chunkGTLIGQDM_js.AnalyticsProvider,
99
+ chunkDKSHZ7TG_js.AnalyticsProvider,
100
100
  {
101
101
  apiUrl: finalApiUrl,
102
102
  apiKey,
@@ -1585,99 +1585,99 @@ Object.defineProperty(exports, "fetchReviews", {
1585
1585
  });
1586
1586
  Object.defineProperty(exports, "CalendarView", {
1587
1587
  enumerable: true,
1588
- get: function () { return chunkWAY6CT4A_js.CalendarView; }
1588
+ get: function () { return chunkYP5YVWAG_js.CalendarView; }
1589
1589
  });
1590
1590
  Object.defineProperty(exports, "CheckoutForm", {
1591
1591
  enumerable: true,
1592
- get: function () { return chunkWAY6CT4A_js.CheckoutForm; }
1592
+ get: function () { return chunkYP5YVWAG_js.CheckoutForm; }
1593
1593
  });
1594
1594
  Object.defineProperty(exports, "EventCalendar", {
1595
1595
  enumerable: true,
1596
- get: function () { return chunkWAY6CT4A_js.EventCalendar; }
1596
+ get: function () { return chunkYP5YVWAG_js.EventCalendar; }
1597
1597
  });
1598
1598
  Object.defineProperty(exports, "EventEmbed", {
1599
1599
  enumerable: true,
1600
- get: function () { return chunkWAY6CT4A_js.EventEmbed; }
1600
+ get: function () { return chunkYP5YVWAG_js.EventEmbed; }
1601
1601
  });
1602
1602
  Object.defineProperty(exports, "EventModal", {
1603
1603
  enumerable: true,
1604
- get: function () { return chunkWAY6CT4A_js.EventModal; }
1604
+ get: function () { return chunkYP5YVWAG_js.EventModal; }
1605
1605
  });
1606
1606
  Object.defineProperty(exports, "EventTile", {
1607
1607
  enumerable: true,
1608
- get: function () { return chunkWAY6CT4A_js.EventTile; }
1608
+ get: function () { return chunkYP5YVWAG_js.EventTile; }
1609
1609
  });
1610
1610
  Object.defineProperty(exports, "OfferingCard", {
1611
1611
  enumerable: true,
1612
- get: function () { return chunkWAY6CT4A_js.OfferingCard; }
1612
+ get: function () { return chunkYP5YVWAG_js.OfferingCard; }
1613
1613
  });
1614
1614
  Object.defineProperty(exports, "OfferingList", {
1615
1615
  enumerable: true,
1616
- get: function () { return chunkWAY6CT4A_js.OfferingList; }
1616
+ get: function () { return chunkYP5YVWAG_js.OfferingList; }
1617
1617
  });
1618
1618
  Object.defineProperty(exports, "ProductEmbed", {
1619
1619
  enumerable: true,
1620
- get: function () { return chunkWAY6CT4A_js.ProductEmbed; }
1620
+ get: function () { return chunkYP5YVWAG_js.ProductEmbed; }
1621
1621
  });
1622
1622
  Object.defineProperty(exports, "RegistrationForm", {
1623
1623
  enumerable: true,
1624
- get: function () { return chunkWAY6CT4A_js.RegistrationForm; }
1624
+ get: function () { return chunkYP5YVWAG_js.RegistrationForm; }
1625
1625
  });
1626
1626
  Object.defineProperty(exports, "UpcomingEvents", {
1627
1627
  enumerable: true,
1628
- get: function () { return chunkWAY6CT4A_js.UpcomingEvents; }
1628
+ get: function () { return chunkYP5YVWAG_js.UpcomingEvents; }
1629
1629
  });
1630
1630
  Object.defineProperty(exports, "createCheckoutSession", {
1631
1631
  enumerable: true,
1632
- get: function () { return chunkWAY6CT4A_js.createCheckoutSession; }
1632
+ get: function () { return chunkYP5YVWAG_js.createCheckoutSession; }
1633
1633
  });
1634
1634
  Object.defineProperty(exports, "fetchNextEvent", {
1635
1635
  enumerable: true,
1636
- get: function () { return chunkWAY6CT4A_js.fetchNextEvent; }
1636
+ get: function () { return chunkYP5YVWAG_js.fetchNextEvent; }
1637
1637
  });
1638
1638
  Object.defineProperty(exports, "fetchOffering", {
1639
1639
  enumerable: true,
1640
- get: function () { return chunkWAY6CT4A_js.fetchOffering; }
1640
+ get: function () { return chunkYP5YVWAG_js.fetchOffering; }
1641
1641
  });
1642
1642
  Object.defineProperty(exports, "fetchOfferings", {
1643
1643
  enumerable: true,
1644
- get: function () { return chunkWAY6CT4A_js.fetchOfferings; }
1644
+ get: function () { return chunkYP5YVWAG_js.fetchOfferings; }
1645
1645
  });
1646
1646
  Object.defineProperty(exports, "fetchProducts", {
1647
1647
  enumerable: true,
1648
- get: function () { return chunkWAY6CT4A_js.fetchProducts; }
1648
+ get: function () { return chunkYP5YVWAG_js.fetchProducts; }
1649
1649
  });
1650
1650
  Object.defineProperty(exports, "fetchServices", {
1651
1651
  enumerable: true,
1652
- get: function () { return chunkWAY6CT4A_js.fetchServices; }
1652
+ get: function () { return chunkYP5YVWAG_js.fetchServices; }
1653
1653
  });
1654
1654
  Object.defineProperty(exports, "fetchUpcomingEvents", {
1655
1655
  enumerable: true,
1656
- get: function () { return chunkWAY6CT4A_js.fetchUpcomingEvents; }
1656
+ get: function () { return chunkYP5YVWAG_js.fetchUpcomingEvents; }
1657
1657
  });
1658
1658
  Object.defineProperty(exports, "formatDate", {
1659
1659
  enumerable: true,
1660
- get: function () { return chunkWAY6CT4A_js.formatDate; }
1660
+ get: function () { return chunkYP5YVWAG_js.formatDate; }
1661
1661
  });
1662
1662
  Object.defineProperty(exports, "formatDateTime", {
1663
1663
  enumerable: true,
1664
- get: function () { return chunkWAY6CT4A_js.formatDateTime; }
1664
+ get: function () { return chunkYP5YVWAG_js.formatDateTime; }
1665
1665
  });
1666
1666
  Object.defineProperty(exports, "formatPrice", {
1667
1667
  enumerable: true,
1668
- get: function () { return chunkWAY6CT4A_js.formatPrice; }
1668
+ get: function () { return chunkYP5YVWAG_js.formatPrice; }
1669
1669
  });
1670
1670
  Object.defineProperty(exports, "getOfferingUrl", {
1671
1671
  enumerable: true,
1672
- get: function () { return chunkWAY6CT4A_js.getOfferingUrl; }
1672
+ get: function () { return chunkYP5YVWAG_js.getOfferingUrl; }
1673
1673
  });
1674
1674
  Object.defineProperty(exports, "registerForEvent", {
1675
1675
  enumerable: true,
1676
- get: function () { return chunkWAY6CT4A_js.registerForEvent; }
1676
+ get: function () { return chunkYP5YVWAG_js.registerForEvent; }
1677
1677
  });
1678
1678
  Object.defineProperty(exports, "useEventModal", {
1679
1679
  enumerable: true,
1680
- get: function () { return chunkWAY6CT4A_js.useEventModal; }
1680
+ get: function () { return chunkYP5YVWAG_js.useEventModal; }
1681
1681
  });
1682
1682
  Object.defineProperty(exports, "BookingWidget", {
1683
1683
  enumerable: true,
package/dist/index.mjs CHANGED
@@ -4,13 +4,13 @@ export { clearRedirectCache, fetchRedirectRules, generateNextRedirects, handleMa
4
4
  export { ManagedImage, assignImageToSlot, clearImageSlot, fetchManagedImage, fetchManagedImages, listImageFiles, uploadImage } from './chunk-36Y7OWES.mjs';
5
5
  export { TestimonialSection, fetchReviewStats, fetchReviews } from './chunk-APZMXRI3.mjs';
6
6
  import './chunk-N24BPFF6.mjs';
7
- export { CalendarView, CheckoutForm, EventCalendar, EventEmbed, EventModal, EventTile, OfferingCard, OfferingList, ProductEmbed, RegistrationForm, UpcomingEvents, createCheckoutSession, fetchNextEvent, fetchOffering, fetchOfferings, fetchProducts, fetchServices, fetchUpcomingEvents, formatDate, formatDateTime, formatPrice, getOfferingUrl, registerForEvent, useEventModal } from './chunk-EG2FNRKR.mjs';
7
+ export { CalendarView, CheckoutForm, EventCalendar, EventEmbed, EventModal, EventTile, OfferingCard, OfferingList, ProductEmbed, RegistrationForm, UpcomingEvents, createCheckoutSession, fetchNextEvent, fetchOffering, fetchOfferings, fetchProducts, fetchServices, fetchUpcomingEvents, formatDate, formatDateTime, formatPrice, getOfferingUrl, registerForEvent, useEventModal } from './chunk-CYZYPWGW.mjs';
8
8
  export { BookingWidget, createBooking, createSlotHold, detectTimezone, fetchAvailability, fetchAvailableDates, fetchBookingTypeDetails, fetchBookingTypes, formatDate as formatBookingDate, formatTime as formatBookingTime, formatDuration, releaseSlotHold } from './chunk-ZU6YPEAF.mjs';
9
9
  export { SetupWizard } from './chunk-IKIJEKU3.mjs';
10
10
  import './chunk-VZMDH3R4.mjs';
11
11
  import { SitemapSync } from './chunk-HNCSTGVK.mjs';
12
- import './chunk-AU4GIQQU.mjs';
13
- import { AnalyticsProvider } from './chunk-FP66BKW6.mjs';
12
+ import './chunk-BPXMOHVH.mjs';
13
+ import { AnalyticsProvider } from './chunk-35L6FXF5.mjs';
14
14
  import { EngageWidget } from './chunk-VZMRZQ2D.mjs';
15
15
  import { configureFormsApi } from './chunk-S7FRYNSU.mjs';
16
16
  import './chunk-4XPGGLVP.mjs';
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunk5DAALKHB_js = require('../chunk-5DAALKHB.js');
4
+ var chunk466AL5CC_js = require('../chunk-466AL5CC.js');
5
5
  require('../chunk-ZSMWDLMK.js');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "SiteKitClientProviders", {
10
10
  enumerable: true,
11
- get: function () { return chunk5DAALKHB_js.SiteKitClientProviders; }
11
+ get: function () { return chunk466AL5CC_js.SiteKitClientProviders; }
12
12
  });
13
13
  //# sourceMappingURL=client.js.map
14
14
  //# sourceMappingURL=client.js.map
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- export { SiteKitClientProviders } from '../chunk-RNOXXICL.mjs';
2
+ export { SiteKitClientProviders } from '../chunk-XTRXH5OL.mjs';
3
3
  import '../chunk-4XPGGLVP.mjs';
4
4
  //# sourceMappingURL=client.mjs.map
5
5
  //# sourceMappingURL=client.mjs.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk5DAALKHB_js = require('../chunk-5DAALKHB.js');
3
+ var chunk466AL5CC_js = require('../chunk-466AL5CC.js');
4
4
  var chunkDY4K6X3A_js = require('../chunk-DY4K6X3A.js');
5
5
  var chunkLTTTIJPN_js = require('../chunk-LTTTIJPN.js');
6
6
  require('../chunk-PJKHCYI5.js');
@@ -31,7 +31,7 @@ async function SiteKitLayout({
31
31
  favicon && /* @__PURE__ */ jsxRuntime.jsx(chunkDY4K6X3A_js.ManagedFavicon, { apiKey: resolvedApiKey, apiUrl: resolvedApiUrl }),
32
32
  managedScripts && /* @__PURE__ */ jsxRuntime.jsx(chunkLTTTIJPN_js.ManagedScripts, { position: "head" }),
33
33
  /* @__PURE__ */ jsxRuntime.jsx(
34
- chunk5DAALKHB_js.SiteKitClientProviders,
34
+ chunk466AL5CC_js.SiteKitClientProviders,
35
35
  {
36
36
  apiKey: resolvedApiKey,
37
37
  apiUrl: resolvedApiUrl,
@@ -1,4 +1,4 @@
1
- import { SiteKitClientProviders } from '../chunk-RNOXXICL.mjs';
1
+ import { SiteKitClientProviders } from '../chunk-XTRXH5OL.mjs';
2
2
  import { ManagedFavicon } from '../chunk-N24BPFF6.mjs';
3
3
  import { ManagedScripts } from '../chunk-J4K335PQ.mjs';
4
4
  import '../chunk-3QKTOTWS.mjs';
@@ -2,17 +2,18 @@
2
2
  'use strict';
3
3
 
4
4
  require('../chunk-ZSMWDLMK.js');
5
- var fs = require('fs');
6
5
  var path = require('path');
6
+ var dotenv = require('dotenv');
7
+ var fs = require('fs');
7
8
 
8
9
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
10
 
10
- var fs__default = /*#__PURE__*/_interopDefault(fs);
11
11
  var path__default = /*#__PURE__*/_interopDefault(path);
12
+ var fs__default = /*#__PURE__*/_interopDefault(fs);
12
13
 
13
14
  function getApiConfig() {
14
- const apiUrl = process.env.SONOR_API_URL || process.env.UPTRADE_API_URL || process.env.NEXT_PUBLIC_UPTRADE_API_URL || "https://api.sonor.io";
15
- const apiKey = process.env.SONOR_API_KEY || process.env.UPTRADE_API_KEY || process.env.NEXT_PUBLIC_UPTRADE_API_KEY || "";
15
+ const apiUrl = process.env.SONOR_API_URL || process.env.UPTRADE_API_URL || process.env.NEXT_PUBLIC_SONOR_API_URL || process.env.NEXT_PUBLIC_UPTRADE_API_URL || "https://api.sonor.io";
16
+ const apiKey = process.env.SONOR_API_KEY || process.env.UPTRADE_API_KEY || process.env.NEXT_PUBLIC_SONOR_API_KEY || process.env.NEXT_PUBLIC_UPTRADE_API_KEY || "";
16
17
  return { apiUrl, apiKey };
17
18
  }
18
19
  function discoverNextJsRoutes(appDir, basePath = "") {
@@ -55,7 +56,9 @@ function discoverNextJsRoutes(appDir, basePath = "") {
55
56
  async function registerSitemapViaApi(entries, optimizeMeta) {
56
57
  const { apiUrl, apiKey } = getApiConfig();
57
58
  if (!apiKey) {
58
- console.warn("[Sonor] No API key (SONOR_API_KEY or UPTRADE_API_KEY)");
59
+ console.warn(
60
+ "[Sonor] No API key (SONOR_API_KEY, UPTRADE_API_KEY, NEXT_PUBLIC_SONOR_API_KEY, or NEXT_PUBLIC_UPTRADE_API_KEY)"
61
+ );
59
62
  return { success: false, created: 0, updated: 0 };
60
63
  }
61
64
  try {
@@ -80,15 +83,15 @@ async function registerSitemapViaApi(entries, optimizeMeta) {
80
83
  async function registerLocalSitemap(options) {
81
84
  let entries = options.entries || [];
82
85
  if (options.autoDiscover && entries.length === 0) {
83
- const cwd = process.cwd();
86
+ const cwd2 = process.cwd();
84
87
  const appDirs = [
85
- path__default.default.join(cwd, "app"),
86
- path__default.default.join(cwd, "src", "app")
88
+ path__default.default.join(cwd2, "app"),
89
+ path__default.default.join(cwd2, "src", "app")
87
90
  ];
88
91
  for (const appDir of appDirs) {
89
92
  if (fs__default.default.existsSync(appDir)) {
90
93
  entries = discoverNextJsRoutes(appDir);
91
- console.log(`[Sonor] Auto-discovered ${entries.length} routes from ${path__default.default.relative(cwd, appDir)}`);
94
+ console.log(`[Sonor] Auto-discovered ${entries.length} routes from ${path__default.default.relative(cwd2, appDir)}`);
92
95
  break;
93
96
  }
94
97
  }
@@ -115,6 +118,13 @@ async function registerLocalSitemap(options) {
115
118
  }
116
119
 
117
120
  // src/seo/register-sitemap-cli.ts
121
+ var cwd = process.cwd();
122
+ dotenv.config({ path: path__default.default.join(cwd, ".env") });
123
+ dotenv.config({ path: path__default.default.join(cwd, ".env.local"), override: true });
124
+ if (process.env.NODE_ENV === "production") {
125
+ dotenv.config({ path: path__default.default.join(cwd, ".env.production") });
126
+ dotenv.config({ path: path__default.default.join(cwd, ".env.production.local"), override: true });
127
+ }
118
128
  async function main() {
119
129
  const args = process.argv.slice(2);
120
130
  const autoDiscover = args.includes("--auto-discover") || args.includes("-a");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/seo/register-sitemap-cli-impl.ts","../../src/seo/register-sitemap-cli.ts"],"names":["fs","path"],"mappings":"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","file":"register-sitemap-cli.js","sourcesContent":["/**\n * Standalone implementation for uptrade-register-sitemap CLI.\n * Does NOT import from server-api or routing, so it can run in Node without\n * pulling in server-only (which throws when required outside Next.js server context).\n */\n\nimport fs from 'fs'\nimport path from 'path'\n\nfunction getApiConfig(): { apiUrl: string; apiKey: string } {\n const apiUrl =\n process.env.SONOR_API_URL ||\n process.env.UPTRADE_API_URL ||\n process.env.NEXT_PUBLIC_UPTRADE_API_URL ||\n 'https://api.sonor.io'\n const apiKey =\n process.env.SONOR_API_KEY ||\n process.env.UPTRADE_API_KEY ||\n process.env.NEXT_PUBLIC_UPTRADE_API_KEY ||\n ''\n return { apiUrl, apiKey }\n}\n\nfunction discoverNextJsRoutes(\n appDir: string,\n basePath: string = ''\n): Array<{ path: string; priority: number }> {\n const entries: Array<{ path: string; priority: number }> = []\n\n const items = fs.readdirSync(appDir, { withFileTypes: true })\n\n for (const item of items) {\n if (item.name.startsWith('_') || item.name.startsWith('.')) continue\n if (item.name === 'api') continue\n if (item.name === 'node_modules') continue\n\n const itemPath = path.join(appDir, item.name)\n\n if (item.isDirectory()) {\n const hasPage =\n fs.existsSync(path.join(itemPath, 'page.tsx')) ||\n fs.existsSync(path.join(itemPath, 'page.js')) ||\n fs.existsSync(path.join(itemPath, 'page.jsx'))\n\n const isRouteGroup = item.name.startsWith('(') && item.name.endsWith(')')\n const isDynamic = item.name.startsWith('[') && item.name.endsWith(']')\n\n let routePath = basePath\n if (!isRouteGroup && !isDynamic) {\n routePath = `${basePath}/${item.name}`\n }\n\n if (hasPage && !isDynamic) {\n const priority = routePath === '' ? 1.0 : 0.8\n entries.push({ path: routePath || '/', priority })\n }\n\n if (!isDynamic) {\n const subEntries = discoverNextJsRoutes(\n itemPath,\n isRouteGroup ? basePath : routePath\n )\n entries.push(...subEntries)\n }\n }\n }\n\n if (basePath === '') {\n const hasRootPage =\n fs.existsSync(path.join(appDir, 'page.tsx')) ||\n fs.existsSync(path.join(appDir, 'page.js')) ||\n fs.existsSync(path.join(appDir, 'page.jsx'))\n if (hasRootPage) {\n entries.unshift({ path: '/', priority: 1.0 })\n }\n }\n\n return entries\n}\n\nasync function registerSitemapViaApi(\n entries: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: string\n }>,\n optimizeMeta: boolean\n): Promise<{\n success: boolean\n created: number\n updated: number\n removed?: number\n meta_optimization?: { triggered: boolean; pages_queued: number } | null\n}> {\n const { apiUrl, apiKey } = getApiConfig()\n if (!apiKey) {\n console.warn('[Sonor] No API key (SONOR_API_KEY or UPTRADE_API_KEY)')\n return { success: false, created: 0, updated: 0 }\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/public/seo/register-sitemap`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n body: JSON.stringify({ entries, optimize_meta: optimizeMeta }),\n })\n\n if (!response.ok) {\n console.error(`[Sonor] Sitemap registration failed: ${response.status} ${response.statusText}`)\n return { success: false, created: 0, updated: 0 }\n }\n\n return await response.json()\n } catch (error) {\n console.error('[Sonor] Sitemap registration error:', error)\n return { success: false, created: 0, updated: 0 }\n }\n}\n\nexport type RegisterLocalSitemapOptions = {\n entries?: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n }>\n autoDiscover?: boolean\n optimize_meta?: boolean\n}\n\nexport type RegisterLocalSitemapResult = {\n success: boolean\n created: number\n updated: number\n removed?: number\n meta_optimization?: {\n triggered: boolean\n pages_queued: number\n } | null\n}\n\nexport async function registerLocalSitemap(\n options: RegisterLocalSitemapOptions\n): Promise<RegisterLocalSitemapResult> {\n let entries = options.entries || []\n\n if (options.autoDiscover && entries.length === 0) {\n const cwd = process.cwd()\n const appDirs = [\n path.join(cwd, 'app'),\n path.join(cwd, 'src', 'app'),\n ]\n for (const appDir of appDirs) {\n if (fs.existsSync(appDir)) {\n entries = discoverNextJsRoutes(appDir)\n console.log(`[Sonor] Auto-discovered ${entries.length} routes from ${path.relative(cwd, appDir)}`)\n break\n }\n }\n }\n\n if (entries.length === 0) {\n console.warn('[Sonor] No sitemap entries to register')\n return { success: true, created: 0, updated: 0 }\n }\n\n console.log(`[Sonor] Registering ${entries.length} sitemap entries...`)\n const payload = entries.map((e) => ({\n path: e.path,\n title: e.title,\n priority: e.priority,\n changefreq: e.changefreq,\n }))\n const result = await registerSitemapViaApi(\n payload,\n options.optimize_meta !== false\n )\n\n if (result.success) {\n console.log(`[Sonor] Sitemap registered: ${result.created} new, ${result.updated} updated`)\n }\n\n return result\n}\n","#!/usr/bin/env node\n/**\n * CLI script to register sitemap entries at build time\n * \n * Usage:\n * npx uptrade-register-sitemap\n * npx uptrade-register-sitemap --auto-discover\n * npx uptrade-register-sitemap --no-optimize # Skip Signal AI meta optimization\n * \n * Or in package.json:\n * {\n * \"scripts\": {\n * \"postbuild\": \"uptrade-register-sitemap --auto-discover\"\n * }\n * }\n */\n\nimport { registerLocalSitemap } from './register-sitemap-cli-impl'\n\nasync function main() {\n const args = process.argv.slice(2)\n const autoDiscover = args.includes('--auto-discover') || args.includes('-a')\n const skipOptimize = args.includes('--no-optimize') || args.includes('--skip-optimize')\n \n console.log('[Sonor] Registering sitemap entries...')\n \n try {\n const result = await registerLocalSitemap({\n autoDiscover,\n optimize_meta: !skipOptimize,\n })\n \n if (result.success) {\n console.log(`[Sonor] ✓ Sitemap registered successfully`)\n console.log(`[Sonor] Created: ${result.created}`)\n console.log(`[Sonor] Updated: ${result.updated}`)\n if (result.removed !== undefined && result.removed > 0) {\n console.log(`[Sonor] Removed: ${result.removed}`)\n }\n if (result.meta_optimization?.triggered) {\n console.log(`[Sonor] ✓ Signal AI meta optimization triggered for ${result.meta_optimization.pages_queued} pages`)\n console.log(`[Sonor] (Running in background - check Portal SEO module for results)`)\n }\n process.exit(0)\n } else {\n console.error('[Sonor] ✗ Failed to register sitemap')\n process.exit(1)\n }\n } catch (error) {\n console.error('[Sonor] ✗ Error:', error)\n process.exit(1)\n }\n}\n\nmain()\n"]}
1
+ {"version":3,"sources":["../../src/seo/register-sitemap-cli-impl.ts","../../src/seo/register-sitemap-cli.ts"],"names":["fs","path","cwd","dotenvConfig"],"mappings":"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","file":"register-sitemap-cli.js","sourcesContent":["/**\n * Standalone implementation for uptrade-register-sitemap CLI.\n * Does NOT import from server-api or routing, so it can run in Node without\n * pulling in server-only (which throws when required outside Next.js server context).\n */\n\nimport fs from 'fs'\nimport path from 'path'\n\nfunction getApiConfig(): { apiUrl: string; apiKey: string } {\n const apiUrl =\n process.env.SONOR_API_URL ||\n process.env.UPTRADE_API_URL ||\n process.env.NEXT_PUBLIC_SONOR_API_URL ||\n process.env.NEXT_PUBLIC_UPTRADE_API_URL ||\n 'https://api.sonor.io'\n const apiKey =\n process.env.SONOR_API_KEY ||\n process.env.UPTRADE_API_KEY ||\n process.env.NEXT_PUBLIC_SONOR_API_KEY ||\n process.env.NEXT_PUBLIC_UPTRADE_API_KEY ||\n ''\n return { apiUrl, apiKey }\n}\n\nfunction discoverNextJsRoutes(\n appDir: string,\n basePath: string = ''\n): Array<{ path: string; priority: number }> {\n const entries: Array<{ path: string; priority: number }> = []\n\n const items = fs.readdirSync(appDir, { withFileTypes: true })\n\n for (const item of items) {\n if (item.name.startsWith('_') || item.name.startsWith('.')) continue\n if (item.name === 'api') continue\n if (item.name === 'node_modules') continue\n\n const itemPath = path.join(appDir, item.name)\n\n if (item.isDirectory()) {\n const hasPage =\n fs.existsSync(path.join(itemPath, 'page.tsx')) ||\n fs.existsSync(path.join(itemPath, 'page.js')) ||\n fs.existsSync(path.join(itemPath, 'page.jsx'))\n\n const isRouteGroup = item.name.startsWith('(') && item.name.endsWith(')')\n const isDynamic = item.name.startsWith('[') && item.name.endsWith(']')\n\n let routePath = basePath\n if (!isRouteGroup && !isDynamic) {\n routePath = `${basePath}/${item.name}`\n }\n\n if (hasPage && !isDynamic) {\n const priority = routePath === '' ? 1.0 : 0.8\n entries.push({ path: routePath || '/', priority })\n }\n\n if (!isDynamic) {\n const subEntries = discoverNextJsRoutes(\n itemPath,\n isRouteGroup ? basePath : routePath\n )\n entries.push(...subEntries)\n }\n }\n }\n\n if (basePath === '') {\n const hasRootPage =\n fs.existsSync(path.join(appDir, 'page.tsx')) ||\n fs.existsSync(path.join(appDir, 'page.js')) ||\n fs.existsSync(path.join(appDir, 'page.jsx'))\n if (hasRootPage) {\n entries.unshift({ path: '/', priority: 1.0 })\n }\n }\n\n return entries\n}\n\nasync function registerSitemapViaApi(\n entries: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: string\n }>,\n optimizeMeta: boolean\n): Promise<{\n success: boolean\n created: number\n updated: number\n removed?: number\n meta_optimization?: { triggered: boolean; pages_queued: number } | null\n}> {\n const { apiUrl, apiKey } = getApiConfig()\n if (!apiKey) {\n console.warn(\n '[Sonor] No API key (SONOR_API_KEY, UPTRADE_API_KEY, NEXT_PUBLIC_SONOR_API_KEY, or NEXT_PUBLIC_UPTRADE_API_KEY)',\n )\n return { success: false, created: 0, updated: 0 }\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/public/seo/register-sitemap`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n body: JSON.stringify({ entries, optimize_meta: optimizeMeta }),\n })\n\n if (!response.ok) {\n console.error(`[Sonor] Sitemap registration failed: ${response.status} ${response.statusText}`)\n return { success: false, created: 0, updated: 0 }\n }\n\n return await response.json()\n } catch (error) {\n console.error('[Sonor] Sitemap registration error:', error)\n return { success: false, created: 0, updated: 0 }\n }\n}\n\nexport type RegisterLocalSitemapOptions = {\n entries?: Array<{\n path: string\n title?: string\n priority?: number\n changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never'\n }>\n autoDiscover?: boolean\n optimize_meta?: boolean\n}\n\nexport type RegisterLocalSitemapResult = {\n success: boolean\n created: number\n updated: number\n removed?: number\n meta_optimization?: {\n triggered: boolean\n pages_queued: number\n } | null\n}\n\nexport async function registerLocalSitemap(\n options: RegisterLocalSitemapOptions\n): Promise<RegisterLocalSitemapResult> {\n let entries = options.entries || []\n\n if (options.autoDiscover && entries.length === 0) {\n const cwd = process.cwd()\n const appDirs = [\n path.join(cwd, 'app'),\n path.join(cwd, 'src', 'app'),\n ]\n for (const appDir of appDirs) {\n if (fs.existsSync(appDir)) {\n entries = discoverNextJsRoutes(appDir)\n console.log(`[Sonor] Auto-discovered ${entries.length} routes from ${path.relative(cwd, appDir)}`)\n break\n }\n }\n }\n\n if (entries.length === 0) {\n console.warn('[Sonor] No sitemap entries to register')\n return { success: true, created: 0, updated: 0 }\n }\n\n console.log(`[Sonor] Registering ${entries.length} sitemap entries...`)\n const payload = entries.map((e) => ({\n path: e.path,\n title: e.title,\n priority: e.priority,\n changefreq: e.changefreq,\n }))\n const result = await registerSitemapViaApi(\n payload,\n options.optimize_meta !== false\n )\n\n if (result.success) {\n console.log(`[Sonor] Sitemap registered: ${result.created} new, ${result.updated} updated`)\n }\n\n return result\n}\n","#!/usr/bin/env node\n/**\n * CLI script to register sitemap entries at build time\n * \n * Usage:\n * npx uptrade-register-sitemap\n * npx uptrade-register-sitemap --auto-discover\n * npx uptrade-register-sitemap --no-optimize # Skip Signal AI meta optimization\n * \n * Or in package.json:\n * {\n * \"scripts\": {\n * \"postbuild\": \"uptrade-register-sitemap --auto-discover\"\n * }\n * }\n */\n\nimport path from 'path'\nimport { config as dotenvConfig } from 'dotenv'\nimport { registerLocalSitemap } from './register-sitemap-cli-impl'\n\n// npm postbuild runs outside Next.js — env from .env* is not loaded automatically\nconst cwd = process.cwd()\ndotenvConfig({ path: path.join(cwd, '.env') })\ndotenvConfig({ path: path.join(cwd, '.env.local'), override: true })\nif (process.env.NODE_ENV === 'production') {\n dotenvConfig({ path: path.join(cwd, '.env.production') })\n dotenvConfig({ path: path.join(cwd, '.env.production.local'), override: true })\n}\n\nasync function main() {\n const args = process.argv.slice(2)\n const autoDiscover = args.includes('--auto-discover') || args.includes('-a')\n const skipOptimize = args.includes('--no-optimize') || args.includes('--skip-optimize')\n \n console.log('[Sonor] Registering sitemap entries...')\n \n try {\n const result = await registerLocalSitemap({\n autoDiscover,\n optimize_meta: !skipOptimize,\n })\n \n if (result.success) {\n console.log(`[Sonor] ✓ Sitemap registered successfully`)\n console.log(`[Sonor] Created: ${result.created}`)\n console.log(`[Sonor] Updated: ${result.updated}`)\n if (result.removed !== undefined && result.removed > 0) {\n console.log(`[Sonor] Removed: ${result.removed}`)\n }\n if (result.meta_optimization?.triggered) {\n console.log(`[Sonor] ✓ Signal AI meta optimization triggered for ${result.meta_optimization.pages_queued} pages`)\n console.log(`[Sonor] (Running in background - check Portal SEO module for results)`)\n }\n process.exit(0)\n } else {\n console.error('[Sonor] ✗ Failed to register sitemap')\n process.exit(1)\n }\n } catch (error) {\n console.error('[Sonor] ✗ Error:', error)\n process.exit(1)\n }\n}\n\nmain()\n"]}