@sonordev/site-kit 1.2.7
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/README.md +376 -0
- package/dist/SetupWizard-Cki06kB0.d.mts +12 -0
- package/dist/SetupWizard-Cki06kB0.d.ts +12 -0
- package/dist/analytics/index.d.mts +93 -0
- package/dist/analytics/index.d.ts +93 -0
- package/dist/analytics/index.js +89 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/index.mjs +71 -0
- package/dist/analytics/index.mjs.map +1 -0
- package/dist/api-CWtoFJCO.d.mts +137 -0
- package/dist/api-CWtoFJCO.d.ts +137 -0
- package/dist/blog/index.d.mts +305 -0
- package/dist/blog/index.d.ts +305 -0
- package/dist/blog/index.js +1578 -0
- package/dist/blog/index.js.map +1 -0
- package/dist/blog/index.mjs +1562 -0
- package/dist/blog/index.mjs.map +1 -0
- package/dist/blog/server.d.mts +229 -0
- package/dist/blog/server.d.ts +229 -0
- package/dist/blog/server.js +692 -0
- package/dist/blog/server.js.map +1 -0
- package/dist/blog/server.mjs +666 -0
- package/dist/blog/server.mjs.map +1 -0
- package/dist/chunk-24277A3Q.mjs +968 -0
- package/dist/chunk-24277A3Q.mjs.map +1 -0
- package/dist/chunk-373TK6TZ.js +321 -0
- package/dist/chunk-373TK6TZ.js.map +1 -0
- package/dist/chunk-3MYZS6PD.js +30 -0
- package/dist/chunk-3MYZS6PD.js.map +1 -0
- package/dist/chunk-43GBM4SX.js +283 -0
- package/dist/chunk-43GBM4SX.js.map +1 -0
- package/dist/chunk-4XPGGLVP.mjs +53 -0
- package/dist/chunk-4XPGGLVP.mjs.map +1 -0
- package/dist/chunk-622GAQP5.js +2008 -0
- package/dist/chunk-622GAQP5.js.map +1 -0
- package/dist/chunk-6BIPAKL4.mjs +28 -0
- package/dist/chunk-6BIPAKL4.mjs.map +1 -0
- package/dist/chunk-6ZCISNAB.mjs +343 -0
- package/dist/chunk-6ZCISNAB.mjs.map +1 -0
- package/dist/chunk-72MQFHYJ.js +1429 -0
- package/dist/chunk-72MQFHYJ.js.map +1 -0
- package/dist/chunk-7557OTHW.js +62 -0
- package/dist/chunk-7557OTHW.js.map +1 -0
- package/dist/chunk-7FUV73JZ.js +981 -0
- package/dist/chunk-7FUV73JZ.js.map +1 -0
- package/dist/chunk-7RF6PVHA.mjs +324 -0
- package/dist/chunk-7RF6PVHA.mjs.map +1 -0
- package/dist/chunk-7RYCHO6D.mjs +134 -0
- package/dist/chunk-7RYCHO6D.mjs.map +1 -0
- package/dist/chunk-7UKPRW25.mjs +1999 -0
- package/dist/chunk-7UKPRW25.mjs.map +1 -0
- package/dist/chunk-7URAOG2M.js +14864 -0
- package/dist/chunk-7URAOG2M.js.map +1 -0
- package/dist/chunk-AFAO3TGS.mjs +810 -0
- package/dist/chunk-AFAO3TGS.mjs.map +1 -0
- package/dist/chunk-BYLIU6XG.js +343 -0
- package/dist/chunk-BYLIU6XG.js.map +1 -0
- package/dist/chunk-D63MUKZ6.mjs +4423 -0
- package/dist/chunk-D63MUKZ6.mjs.map +1 -0
- package/dist/chunk-DDKW2FNA.js +390 -0
- package/dist/chunk-DDKW2FNA.js.map +1 -0
- package/dist/chunk-DQYMKR27.mjs +341 -0
- package/dist/chunk-DQYMKR27.mjs.map +1 -0
- package/dist/chunk-DW5UJKHH.js +221 -0
- package/dist/chunk-DW5UJKHH.js.map +1 -0
- package/dist/chunk-EEZCR6E6.js +50 -0
- package/dist/chunk-EEZCR6E6.js.map +1 -0
- package/dist/chunk-GCJXQ4AG.mjs +59 -0
- package/dist/chunk-GCJXQ4AG.mjs.map +1 -0
- package/dist/chunk-JGNQK2G6.mjs +14845 -0
- package/dist/chunk-JGNQK2G6.mjs.map +1 -0
- package/dist/chunk-JTLOJLWQ.mjs +563 -0
- package/dist/chunk-JTLOJLWQ.mjs.map +1 -0
- package/dist/chunk-K23A4G76.mjs +202 -0
- package/dist/chunk-K23A4G76.mjs.map +1 -0
- package/dist/chunk-KKU3K7RG.js +336 -0
- package/dist/chunk-KKU3K7RG.js.map +1 -0
- package/dist/chunk-KUGMH4ZF.js +571 -0
- package/dist/chunk-KUGMH4ZF.js.map +1 -0
- package/dist/chunk-LBVWVP72.js +110 -0
- package/dist/chunk-LBVWVP72.js.map +1 -0
- package/dist/chunk-LIVWLY2P.js +138 -0
- package/dist/chunk-LIVWLY2P.js.map +1 -0
- package/dist/chunk-M2T6R7BA.mjs +1003 -0
- package/dist/chunk-M2T6R7BA.mjs.map +1 -0
- package/dist/chunk-MV3QN7PW.mjs +47 -0
- package/dist/chunk-MV3QN7PW.mjs.map +1 -0
- package/dist/chunk-OB7E654K.js +72 -0
- package/dist/chunk-OB7E654K.js.map +1 -0
- package/dist/chunk-OIIKTGRL.mjs +380 -0
- package/dist/chunk-OIIKTGRL.mjs.map +1 -0
- package/dist/chunk-P3UWIUJS.mjs +1427 -0
- package/dist/chunk-P3UWIUJS.mjs.map +1 -0
- package/dist/chunk-PKN27UMH.mjs +136 -0
- package/dist/chunk-PKN27UMH.mjs.map +1 -0
- package/dist/chunk-QXV4667R.mjs +105 -0
- package/dist/chunk-QXV4667R.mjs.map +1 -0
- package/dist/chunk-S7FRYNSU.mjs +315 -0
- package/dist/chunk-S7FRYNSU.mjs.map +1 -0
- package/dist/chunk-TFLQX7K7.mjs +68 -0
- package/dist/chunk-TFLQX7K7.mjs.map +1 -0
- package/dist/chunk-UWE5PCYJ.mjs +279 -0
- package/dist/chunk-UWE5PCYJ.mjs.map +1 -0
- package/dist/chunk-UYFDNX2F.js +4469 -0
- package/dist/chunk-UYFDNX2F.js.map +1 -0
- package/dist/chunk-W4PALSGM.js +350 -0
- package/dist/chunk-W4PALSGM.js.map +1 -0
- package/dist/chunk-WECQ6KOB.js +1008 -0
- package/dist/chunk-WECQ6KOB.js.map +1 -0
- package/dist/chunk-XQQWI6WB.js +814 -0
- package/dist/chunk-XQQWI6WB.js.map +1 -0
- package/dist/chunk-XZJOZJB6.js +140 -0
- package/dist/chunk-XZJOZJB6.js.map +1 -0
- package/dist/chunk-ZSMWDLMK.js +63 -0
- package/dist/chunk-ZSMWDLMK.js.map +1 -0
- package/dist/cli/index.js +37243 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.mjs +37209 -0
- package/dist/cli/index.mjs.map +1 -0
- package/dist/commerce/index.d.mts +170 -0
- package/dist/commerce/index.d.ts +170 -0
- package/dist/commerce/index.js +174 -0
- package/dist/commerce/index.js.map +1 -0
- package/dist/commerce/index.mjs +5 -0
- package/dist/commerce/index.mjs.map +1 -0
- package/dist/commerce/server.d.mts +107 -0
- package/dist/commerce/server.d.ts +107 -0
- package/dist/commerce/server.js +187 -0
- package/dist/commerce/server.js.map +1 -0
- package/dist/commerce/server.mjs +177 -0
- package/dist/commerce/server.mjs.map +1 -0
- package/dist/config/index.d.mts +43 -0
- package/dist/config/index.d.ts +43 -0
- package/dist/config/index.js +66 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/index.mjs +64 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/engage/index.d.mts +33 -0
- package/dist/engage/index.d.ts +33 -0
- package/dist/engage/index.js +22 -0
- package/dist/engage/index.js.map +1 -0
- package/dist/engage/index.mjs +5 -0
- package/dist/engage/index.mjs.map +1 -0
- package/dist/forms/index.d.mts +437 -0
- package/dist/forms/index.d.ts +437 -0
- package/dist/forms/index.js +1168 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/index.mjs +1142 -0
- package/dist/forms/index.mjs.map +1 -0
- package/dist/generators-2XKQMPKH.mjs +4 -0
- package/dist/generators-2XKQMPKH.mjs.map +1 -0
- package/dist/generators-DTMO36DV.js +33 -0
- package/dist/generators-DTMO36DV.js.map +1 -0
- package/dist/images/index.d.mts +4 -0
- package/dist/images/index.d.ts +4 -0
- package/dist/images/index.js +46 -0
- package/dist/images/index.js.map +1 -0
- package/dist/images/index.mjs +5 -0
- package/dist/images/index.mjs.map +1 -0
- package/dist/images/server.d.mts +69 -0
- package/dist/images/server.d.ts +69 -0
- package/dist/images/server.js +21 -0
- package/dist/images/server.js.map +1 -0
- package/dist/images/server.mjs +4 -0
- package/dist/images/server.mjs.map +1 -0
- package/dist/index.d.mts +846 -0
- package/dist/index.d.ts +846 -0
- package/dist/index.js +2623 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2416 -0
- package/dist/index.mjs.map +1 -0
- package/dist/layout/index.d.mts +53 -0
- package/dist/layout/index.d.ts +53 -0
- package/dist/layout/index.js +187 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/index.mjs +185 -0
- package/dist/layout/index.mjs.map +1 -0
- package/dist/llms/index.d.mts +448 -0
- package/dist/llms/index.d.ts +448 -0
- package/dist/llms/index.js +581 -0
- package/dist/llms/index.js.map +1 -0
- package/dist/llms/index.mjs +529 -0
- package/dist/llms/index.mjs.map +1 -0
- package/dist/manifest/index.d.mts +62 -0
- package/dist/manifest/index.d.ts +62 -0
- package/dist/manifest/index.js +85 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/manifest/index.mjs +83 -0
- package/dist/manifest/index.mjs.map +1 -0
- package/dist/middleware/index.d.mts +63 -0
- package/dist/middleware/index.d.ts +63 -0
- package/dist/middleware/index.js +54 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/index.mjs +51 -0
- package/dist/middleware/index.mjs.map +1 -0
- package/dist/migrator-2MQHOFDQ.mjs +4 -0
- package/dist/migrator-2MQHOFDQ.mjs.map +1 -0
- package/dist/migrator-THJCF6MZ.js +37 -0
- package/dist/migrator-THJCF6MZ.js.map +1 -0
- package/dist/redirects/index.d.mts +78 -0
- package/dist/redirects/index.d.ts +78 -0
- package/dist/redirects/index.js +26 -0
- package/dist/redirects/index.js.map +1 -0
- package/dist/redirects/index.mjs +5 -0
- package/dist/redirects/index.mjs.map +1 -0
- package/dist/reputation/index.d.mts +57 -0
- package/dist/reputation/index.d.ts +57 -0
- package/dist/reputation/index.js +21 -0
- package/dist/reputation/index.js.map +1 -0
- package/dist/reputation/index.mjs +4 -0
- package/dist/reputation/index.mjs.map +1 -0
- package/dist/robots/index.d.mts +38 -0
- package/dist/robots/index.d.ts +38 -0
- package/dist/robots/index.js +52 -0
- package/dist/robots/index.js.map +1 -0
- package/dist/robots/index.mjs +50 -0
- package/dist/robots/index.mjs.map +1 -0
- package/dist/routing-B5XS-6_W.d.mts +118 -0
- package/dist/routing-DZYzyDHw.d.ts +118 -0
- package/dist/scanner-GAF5PO5F.js +53 -0
- package/dist/scanner-GAF5PO5F.js.map +1 -0
- package/dist/scanner-LKJKW7IT.mjs +4 -0
- package/dist/scanner-LKJKW7IT.mjs.map +1 -0
- package/dist/securityHeaders-nwZ6nP4g.d.mts +24 -0
- package/dist/securityHeaders-nwZ6nP4g.d.ts +24 -0
- package/dist/seo/index.d.mts +600 -0
- package/dist/seo/index.d.ts +600 -0
- package/dist/seo/index.js +883 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/index.mjs +773 -0
- package/dist/seo/index.mjs.map +1 -0
- package/dist/seo/register-sitemap-cli.js +151 -0
- package/dist/seo/register-sitemap-cli.js.map +1 -0
- package/dist/seo/register-sitemap-cli.mjs +144 -0
- package/dist/seo/register-sitemap-cli.mjs.map +1 -0
- package/dist/seo/server.d.mts +107 -0
- package/dist/seo/server.d.ts +107 -0
- package/dist/seo/server.js +207 -0
- package/dist/seo/server.js.map +1 -0
- package/dist/seo/server.mjs +186 -0
- package/dist/seo/server.mjs.map +1 -0
- package/dist/server-api-EWXKOQZA.mjs +4 -0
- package/dist/server-api-EWXKOQZA.mjs.map +1 -0
- package/dist/server-api-GJPNRYUP.js +81 -0
- package/dist/server-api-GJPNRYUP.js.map +1 -0
- package/dist/setup/client.d.mts +60 -0
- package/dist/setup/client.d.ts +60 -0
- package/dist/setup/client.js +31 -0
- package/dist/setup/client.js.map +1 -0
- package/dist/setup/client.mjs +6 -0
- package/dist/setup/client.mjs.map +1 -0
- package/dist/setup/index.d.mts +5 -0
- package/dist/setup/index.d.ts +5 -0
- package/dist/setup/index.js +35 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/index.mjs +6 -0
- package/dist/setup/index.mjs.map +1 -0
- package/dist/setup/server.d.mts +14 -0
- package/dist/setup/server.d.ts +14 -0
- package/dist/setup/server.js +13 -0
- package/dist/setup/server.js.map +1 -0
- package/dist/setup/server.mjs +4 -0
- package/dist/setup/server.mjs.map +1 -0
- package/dist/site-config/index.d.mts +24 -0
- package/dist/site-config/index.d.ts +24 -0
- package/dist/site-config/index.js +17 -0
- package/dist/site-config/index.js.map +1 -0
- package/dist/site-config/index.mjs +4 -0
- package/dist/site-config/index.mjs.map +1 -0
- package/dist/sitemap/index.d.mts +96 -0
- package/dist/sitemap/index.d.ts +96 -0
- package/dist/sitemap/index.js +288 -0
- package/dist/sitemap/index.js.map +1 -0
- package/dist/sitemap/index.mjs +285 -0
- package/dist/sitemap/index.mjs.map +1 -0
- package/dist/socket-loader-J26QHHOB.js +16 -0
- package/dist/socket-loader-J26QHHOB.js.map +1 -0
- package/dist/socket-loader-R7S2YJ2J.mjs +14 -0
- package/dist/socket-loader-R7S2YJ2J.mjs.map +1 -0
- package/dist/types-0dmq3k20.d.mts +168 -0
- package/dist/types-0dmq3k20.d.ts +168 -0
- package/dist/types-Blb2QNkV.d.mts +263 -0
- package/dist/types-Blb2QNkV.d.ts +263 -0
- package/dist/types-BnCwwUX3.d.mts +250 -0
- package/dist/types-BnCwwUX3.d.ts +250 -0
- package/dist/types-CGlnp43R.d.mts +312 -0
- package/dist/types-CGlnp43R.d.ts +312 -0
- package/dist/types-D08004rU.d.mts +179 -0
- package/dist/types-D08004rU.d.ts +179 -0
- package/dist/types-DNSYU7qI.d.mts +127 -0
- package/dist/types-DNSYU7qI.d.ts +127 -0
- package/dist/types-KZP_VWZp.d.mts +266 -0
- package/dist/types-KZP_VWZp.d.ts +266 -0
- package/dist/useEventModal-BVTx69XE.d.mts +274 -0
- package/dist/useEventModal-Dx1dItTJ.d.ts +274 -0
- package/dist/web-vitals-444RLW3B.js +252 -0
- package/dist/web-vitals-444RLW3B.js.map +1 -0
- package/dist/web-vitals-KPICZIEF.mjs +241 -0
- package/dist/web-vitals-KPICZIEF.mjs.map +1 -0
- package/package.json +192 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkDW5UJKHH_js = require('./chunk-DW5UJKHH.js');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
async function ManagedScripts({
|
|
7
|
+
position,
|
|
8
|
+
path
|
|
9
|
+
}) {
|
|
10
|
+
const scripts = await chunkDW5UJKHH_js.getManagedScripts(position, path);
|
|
11
|
+
if (!scripts.length) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: scripts.map((script) => {
|
|
15
|
+
if (script.script_type === "external") {
|
|
16
|
+
const attrs = {
|
|
17
|
+
key: script.id,
|
|
18
|
+
src: script.src,
|
|
19
|
+
async: true,
|
|
20
|
+
...script.defer && { defer: true },
|
|
21
|
+
...script.attributes
|
|
22
|
+
};
|
|
23
|
+
return /* @__PURE__ */ jsxRuntime.jsx("script", { ...attrs });
|
|
24
|
+
}
|
|
25
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26
|
+
"script",
|
|
27
|
+
{
|
|
28
|
+
async: true,
|
|
29
|
+
dangerouslySetInnerHTML: { __html: script.content || "" },
|
|
30
|
+
...script.attributes
|
|
31
|
+
},
|
|
32
|
+
script.id
|
|
33
|
+
);
|
|
34
|
+
}) });
|
|
35
|
+
}
|
|
36
|
+
async function ManagedNoScripts({
|
|
37
|
+
path
|
|
38
|
+
}) {
|
|
39
|
+
const scripts = await chunkDW5UJKHH_js.getManagedScripts("body-start", path);
|
|
40
|
+
const noscriptContent = scripts.filter((s) => s.attributes?.noscript).map((s) => s.attributes?.noscript).join("");
|
|
41
|
+
if (!noscriptContent) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return /* @__PURE__ */ jsxRuntime.jsx("noscript", { dangerouslySetInnerHTML: { __html: noscriptContent } });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
exports.ManagedNoScripts = ManagedNoScripts;
|
|
48
|
+
exports.ManagedScripts = ManagedScripts;
|
|
49
|
+
//# sourceMappingURL=chunk-EEZCR6E6.js.map
|
|
50
|
+
//# sourceMappingURL=chunk-EEZCR6E6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/seo/ManagedScripts.tsx"],"names":["getManagedScripts","jsx","Fragment"],"mappings":";;;;;AAuCA,eAAsB,cAAA,CAAe;AAAA,EACnC,QAAA;AAAA,EACA;AACF,CAAA,EAA4D;AAC1D,EAAA,MAAM,OAAA,GAAU,MAAMA,kCAAA,CAAkB,QAAA,EAAU,IAAI,CAAA;AAEtD,EAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACnB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEC,cAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAA0B;AACtC,IAAA,IAAI,MAAA,CAAO,gBAAgB,UAAA,EAAY;AAGrC,MAAA,MAAM,KAAA,GAAiC;AAAA,QACrC,KAAK,MAAA,CAAO,EAAA;AAAA,QACZ,KAAK,MAAA,CAAO,GAAA;AAAA,QACZ,KAAA,EAAO,IAAA;AAAA,QACP,GAAI,MAAA,CAAO,KAAA,IAAS,EAAE,OAAO,IAAA,EAAK;AAAA,QAClC,GAAG,MAAA,CAAO;AAAA,OACZ;AAEA,MAAA,uBAAOD,cAAA,CAAC,QAAA,EAAA,EAAQ,GAAG,KAAA,EAAO,CAAA;AAAA,IAC5B;AAGA,IAAA,uBACEA,cAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QAEC,KAAA,EAAK,IAAA;AAAA,QACL,uBAAA,EAAyB,EAAE,MAAA,EAAQ,MAAA,CAAO,WAAW,EAAA,EAAG;AAAA,QACvD,GAAG,MAAA,CAAO;AAAA,OAAA;AAAA,MAHN,MAAA,CAAO;AAAA,KAId;AAAA,EAEJ,CAAC,CAAA,EACH,CAAA;AAEJ;AAOA,eAAsB,gBAAA,CAAiB;AAAA,EACrC;AACF,CAAA,EAGuC;AACrC,EAAA,MAAM,OAAA,GAAU,MAAMD,kCAAA,CAAkB,YAAA,EAAc,IAAI,CAAA;AAG1D,EAAA,MAAM,kBAAkB,OAAA,CACrB,MAAA,CAAO,CAAC,CAAA,KAAqB,EAAE,UAAA,EAAY,QAAQ,CAAA,CACnD,GAAA,CAAI,CAAC,CAAA,KAAqB,CAAA,CAAE,YAAY,QAAQ,CAAA,CAChD,KAAK,EAAE,CAAA;AAEV,EAAA,IAAI,CAAC,eAAA,EAAiB;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,sCACG,UAAA,EAAA,EAAS,uBAAA,EAAyB,EAAE,MAAA,EAAQ,iBAAgB,EAAG,CAAA;AAEpE","file":"chunk-EEZCR6E6.js","sourcesContent":["import * as React from 'react'\nimport { getManagedScripts } from './server-api'\nimport type { ManagedScriptsProps, ManagedScript } from './types'\n\n/**\n * ManagedScripts - Server Component for injecting tracking/analytics scripts\n * \n * Fetches scripts from Portal and renders them in the appropriate position\n * \n * @example\n * ```tsx\n * // app/layout.tsx\n * import { ManagedScripts } from '@sonordev/seo'\n * \n * export default function RootLayout({ children }) {\n * return (\n * <html>\n * <head>\n * <ManagedScripts \n * projectId={process.env.UPTRADE_PROJECT_ID!}\n * position=\"head\"\n * />\n * </head>\n * <body>\n * <ManagedScripts \n * projectId={process.env.UPTRADE_PROJECT_ID!}\n * position=\"body-start\"\n * />\n * {children}\n * <ManagedScripts \n * projectId={process.env.UPTRADE_PROJECT_ID!}\n * position=\"body-end\"\n * />\n * </body>\n * </html>\n * )\n * }\n * ```\n */\nexport async function ManagedScripts({\n position,\n path,\n}: ManagedScriptsProps): Promise<React.ReactElement | null> {\n const scripts = await getManagedScripts(position, path)\n\n if (!scripts.length) {\n return null\n }\n\n return (\n <>\n {scripts.map((script: ManagedScript) => {\n if (script.script_type === 'external') {\n // External script with src. Always include async so React 19 allows\n // rendering outside the main document (body-start/body-end).\n const attrs: Record<string, unknown> = {\n key: script.id,\n src: script.src,\n async: true,\n ...(script.defer && { defer: true }),\n ...script.attributes,\n }\n\n return <script {...attrs} />\n }\n\n // Inline script — add async so React 19 doesn't treat it as sync outside document\n return (\n <script\n key={script.id}\n async\n dangerouslySetInnerHTML={{ __html: script.content || '' }}\n {...script.attributes}\n />\n )\n })}\n </>\n )\n}\n\n/**\n * NoScript fallback component\n * \n * Use for adding noscript content (like Google Tag Manager noscript)\n */\nexport async function ManagedNoScripts({\n path,\n}: {\n projectId?: string\n path?: string\n}): Promise<React.ReactElement | null> {\n const scripts = await getManagedScripts('body-start', path)\n\n // Filter scripts that have noscript content\n const noscriptContent = scripts\n .filter((s: ManagedScript) => s.attributes?.noscript)\n .map((s: ManagedScript) => s.attributes?.noscript)\n .join('')\n\n if (!noscriptContent) {\n return null\n }\n\n return (\n <noscript dangerouslySetInnerHTML={{ __html: noscriptContent }} />\n )\n}\n\nexport default ManagedScripts\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// src/site-config/index.ts
|
|
2
|
+
var DEFAULT_API_URL = "https://api.uptrademedia.com";
|
|
3
|
+
var CACHE_TTL_MS = 10 * 60 * 1e3;
|
|
4
|
+
var cache = /* @__PURE__ */ new Map();
|
|
5
|
+
function getApiKey(options) {
|
|
6
|
+
if (options?.apiKey) return options.apiKey;
|
|
7
|
+
if (typeof process !== "undefined" && process.env) {
|
|
8
|
+
return process.env.NEXT_PUBLIC_UPTRADE_API_KEY || process.env.UPTRADE_API_KEY;
|
|
9
|
+
}
|
|
10
|
+
return void 0;
|
|
11
|
+
}
|
|
12
|
+
function getApiUrl(options) {
|
|
13
|
+
if (options?.apiUrl) return options.apiUrl.replace(/\/$/, "");
|
|
14
|
+
if (typeof process !== "undefined" && process.env) {
|
|
15
|
+
const u = process.env.NEXT_PUBLIC_UPTRADE_API_URL || process.env.UPTRADE_API_URL;
|
|
16
|
+
if (u) return u.replace(/\/$/, "");
|
|
17
|
+
}
|
|
18
|
+
return DEFAULT_API_URL;
|
|
19
|
+
}
|
|
20
|
+
async function getSiteConfig(options) {
|
|
21
|
+
const apiKey = getApiKey(options);
|
|
22
|
+
if (!apiKey) return null;
|
|
23
|
+
const now = Date.now();
|
|
24
|
+
const cached = cache.get(apiKey);
|
|
25
|
+
if (cached && now < cached.expiry) {
|
|
26
|
+
return { site_url: cached.site_url, domain: cached.domain };
|
|
27
|
+
}
|
|
28
|
+
const apiUrl = getApiUrl(options);
|
|
29
|
+
const url = `${apiUrl}/api/public/seo/project-info`;
|
|
30
|
+
try {
|
|
31
|
+
const res = await fetch(url, {
|
|
32
|
+
headers: {
|
|
33
|
+
"Content-Type": "application/json",
|
|
34
|
+
"x-api-key": apiKey
|
|
35
|
+
},
|
|
36
|
+
next: { revalidate: 600 }
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) return null;
|
|
39
|
+
const data = await res.json();
|
|
40
|
+
const site_url = data.site_url ?? (data.project_domain ? `https://${String(data.project_domain).replace(/^(https?:\/\/)?(www\.)?/, "").replace(/\/$/, "")}` : null);
|
|
41
|
+
const domain = data.domain ?? (data.project_domain ? String(data.project_domain).replace(/^(https?:\/\/)?(www\.)?/, "").replace(/\/$/, "") : null);
|
|
42
|
+
if (!site_url || !domain || typeof site_url !== "string" || typeof domain !== "string") return null;
|
|
43
|
+
cache.set(apiKey, {
|
|
44
|
+
site_url,
|
|
45
|
+
domain,
|
|
46
|
+
expiry: now + CACHE_TTL_MS
|
|
47
|
+
});
|
|
48
|
+
return { site_url, domain };
|
|
49
|
+
} catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function clearSiteConfigCache() {
|
|
54
|
+
cache.clear();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { clearSiteConfigCache, getSiteConfig };
|
|
58
|
+
//# sourceMappingURL=chunk-GCJXQ4AG.mjs.map
|
|
59
|
+
//# sourceMappingURL=chunk-GCJXQ4AG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/site-config/index.ts"],"names":[],"mappings":"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","file":"chunk-GCJXQ4AG.mjs","sourcesContent":["/**\n * Site config from Portal (project-info) by API key.\n * Resolves site_url and domain so consumers only need NEXT_PUBLIC_UPTRADE_API_KEY.\n */\n\nexport interface SiteConfig {\n site_url: string\n domain: string\n}\n\nexport interface GetSiteConfigOptions {\n apiKey?: string\n apiUrl?: string\n}\n\nconst DEFAULT_API_URL = 'https://api.uptrademedia.com'\nconst CACHE_TTL_MS = 10 * 60 * 1000 // 10 minutes\n\ninterface CacheEntry {\n site_url: string\n domain: string\n expiry: number\n}\nconst cache = new Map<string, CacheEntry>()\n\nfunction getApiKey(options?: GetSiteConfigOptions): string | undefined {\n if (options?.apiKey) return options.apiKey\n if (typeof process !== 'undefined' && process.env) {\n return process.env.NEXT_PUBLIC_UPTRADE_API_KEY || process.env.UPTRADE_API_KEY\n }\n return undefined\n}\n\nfunction getApiUrl(options?: GetSiteConfigOptions): string {\n if (options?.apiUrl) return options.apiUrl.replace(/\\/$/, '')\n if (typeof process !== 'undefined' && process.env) {\n const u = process.env.NEXT_PUBLIC_UPTRADE_API_URL || process.env.UPTRADE_API_URL\n if (u) return u.replace(/\\/$/, '')\n }\n return DEFAULT_API_URL\n}\n\n/**\n * Fetch site_url and domain from Portal project-info for the given API key.\n * Uses in-memory cache (TTL 10 min) keyed by apiKey.\n * Safe for Edge (middleware) and Node (route handlers).\n */\nexport async function getSiteConfig(\n options?: GetSiteConfigOptions\n): Promise<SiteConfig | null> {\n const apiKey = getApiKey(options)\n if (!apiKey) return null\n\n const now = Date.now()\n const cached = cache.get(apiKey)\n if (cached && now < cached.expiry) {\n return { site_url: cached.site_url, domain: cached.domain }\n }\n\n const apiUrl = getApiUrl(options)\n const url = `${apiUrl}/api/public/seo/project-info`\n\n try {\n const res = await fetch(url, {\n headers: {\n 'Content-Type': 'application/json',\n 'x-api-key': apiKey,\n },\n next: { revalidate: 600 },\n })\n\n if (!res.ok) return null\n\n const data = await res.json()\n const site_url = data.site_url ?? (data.project_domain ? `https://${String(data.project_domain).replace(/^(https?:\\/\\/)?(www\\.)?/, '').replace(/\\/$/, '')}` : null)\n const domain = data.domain ?? (data.project_domain ? String(data.project_domain).replace(/^(https?:\\/\\/)?(www\\.)?/, '').replace(/\\/$/, '') : null)\n\n if (!site_url || !domain || typeof site_url !== 'string' || typeof domain !== 'string') return null\n\n cache.set(apiKey, {\n site_url,\n domain,\n expiry: now + CACHE_TTL_MS,\n })\n\n return { site_url, domain }\n } catch {\n return null\n }\n}\n\n/**\n * Clear in-memory site config cache (e.g. for tests).\n */\nexport function clearSiteConfigCache(): void {\n cache.clear()\n}\n"]}
|