@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/robots/index.ts"],"names":[],"mappings":";;;;AAmCA,SAAS,mBAAA,CAAoB,SAAiB,MAAA,EAAgC;AAC5E,EAAA,MAAM,QAAkB,EAAC;AAEzB,EAAA,IAAI,MAAA,CAAO,aAAA,EAAe,IAAA,EAAK,EAAG;AAChC,IAAA,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,aAAA,CAAc,IAAA,EAAM,CAAA;AAAA,EACxC,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,KAAK,eAAe,CAAA;AAC1B,IAAA,KAAA,CAAM,KAAK,UAAU,CAAA;AACrB,IAAA,KAAA,MAAW,CAAA,IAAK,MAAA,CAAO,QAAA,IAAY,EAAC,EAAG;AACrC,MAAA,KAAA,CAAM,IAAA,CAAK,CAAA,UAAA,EAAa,CAAC,CAAA,CAAE,CAAA;AAAA,IAC7B;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA;AACtC,EAAA,MAAM,WAAA,GAAc,OAAO,WAAA,IAAe,cAAA;AAC1C,EAAA,MAAM,UAAA,GAAa,CAAA,EAAG,IAAI,CAAA,EAAG,WAAA,CAAY,UAAA,CAAW,GAAG,CAAA,GAAI,EAAA,GAAK,GAAG,CAAA,EAAG,WAAW,CAAA,CAAA;AACjF,EAAA,KAAA,CAAM,IAAA,CAAK,CAAA,SAAA,EAAY,UAAU,CAAA,CAAE,CAAA;AAEnC,EAAA,OAAO,IAAI,QAAA,CAAS,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA,EAAG;AAAA,IACpC,MAAA,EAAQ,GAAA;AAAA,IACR,OAAA,EAAS;AAAA,MACP,cAAA,EAAgB,2BAAA;AAAA,MAChB,eAAA,EAAiB;AAAA;AACnB,GACD,CAAA;AACH;AAMO,SAAS,aAAa,MAAA,EAA0D;AACrF,EAAA,OAAO,SAAS,MAAA,GAAuC;AACrD,IAAA,MAAM,UAAU,MAAA,CAAO,OAAA;AACvB,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,OAAO,mBAAA,CAAoB,SAAS,MAAM,CAAA;AAAA,IAC5C;AACA,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,KAAW,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,CAAQ,GAAA,KAAQ,OAAA,CAAQ,GAAA,CAAI,2BAAA,IAA+B,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAA,CAAA;AAC1I,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAO,IAAI,SAAS,4BAAA,EAA8B;AAAA,QAChD,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS,EAAE,cAAA,EAAgB,2BAAA;AAA4B,OACxD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,aAAA,CAAc,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA,CAAO,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,KAAS;AACrE,MAAA,MAAM,GAAA,GAAM,MAAM,QAAA,IAAY,qBAAA;AAC9B,MAAA,OAAO,mBAAA,CAAoB,KAAK,MAAM,CAAA;AAAA,IACxC,CAAC,CAAA;AAAA,EACH,CAAA;AACF","file":"index.mjs","sourcesContent":["/**\n * @sonordev/site-kit/robots - robots.txt Generator\n *\n * Generates robots.txt with Sitemap directive.\n * baseUrl can be omitted when apiKey is set (resolved from Portal project-info).\n *\n * @example\n * // app/robots.txt/route.ts (API key only)\n * import { createRobots } from '@sonordev/site-kit/robots'\n * export const GET = createRobots({ apiKey: process.env.NEXT_PUBLIC_UPTRADE_API_KEY })\n *\n * @example\n * // With explicit baseUrl\n * export const GET = createRobots({\n * baseUrl: process.env.NEXT_PUBLIC_SITE_URL || 'https://example.com',\n * disallow: ['/admin'],\n * })\n */\n\nimport { getSiteConfig } from '../site-config'\n\nexport interface RobotsConfig {\n /** Base URL of the site (optional when apiKey is set; then resolved from Portal) */\n baseUrl?: string\n /** Project API key; when set and baseUrl is not, baseUrl is resolved from Portal */\n apiKey?: string\n apiUrl?: string\n /** Path to sitemap (default: /sitemap.xml) */\n sitemapPath?: string\n /** Pre-built robots content from Portal (overrides default when provided) */\n managedRobots?: string | null\n /** Paths to disallow (e.g. ['/admin', '/api']) */\n disallow?: string[]\n}\n\nfunction buildRobotsResponse(baseUrl: string, config: RobotsConfig): Response {\n const lines: string[] = []\n\n if (config.managedRobots?.trim()) {\n lines.push(config.managedRobots.trim())\n } else {\n lines.push('User-agent: *')\n lines.push('Allow: /')\n for (const p of config.disallow ?? []) {\n lines.push(`Disallow: ${p}`)\n }\n }\n\n const base = baseUrl.replace(/\\/$/, '')\n const sitemapPath = config.sitemapPath ?? '/sitemap.xml'\n const sitemapUrl = `${base}${sitemapPath.startsWith('/') ? '' : '/'}${sitemapPath}`\n lines.push(`Sitemap: ${sitemapUrl}`)\n\n return new Response(lines.join('\\n'), {\n status: 200,\n headers: {\n 'Content-Type': 'text/plain; charset=utf-8',\n 'Cache-Control': 'public, max-age=86400, s-maxage=86400',\n },\n })\n}\n\n/**\n * Create a robots.txt handler that returns a Response or Promise<Response>.\n * Use as GET handler for app/robots.txt/route.ts. When baseUrl is omitted, pass apiKey to resolve from Portal.\n */\nexport function createRobots(config: RobotsConfig): () => Response | Promise<Response> {\n return function robots(): Response | Promise<Response> {\n const baseUrl = config.baseUrl\n if (baseUrl) {\n return buildRobotsResponse(baseUrl, config)\n }\n const apiKey = config.apiKey ?? (typeof process !== 'undefined' && process.env && (process.env.NEXT_PUBLIC_UPTRADE_API_KEY || process.env.UPTRADE_API_KEY))\n if (!apiKey) {\n return new Response('User-agent: *\\nDisallow: /', {\n status: 200,\n headers: { 'Content-Type': 'text/plain; charset=utf-8' },\n })\n }\n return getSiteConfig({ apiKey, apiUrl: config.apiUrl }).then((site) => {\n const url = site?.site_url ?? 'https://example.com'\n return buildRobotsResponse(url, config)\n })\n }\n}\n"]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { m as GetRedirectOptions, R as RedirectResult, q as GetRobotsOptions, p as RobotsDirective, s as GetSitemapEntriesOptions, r as SitemapEntry } from './types-KZP_VWZp.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get redirect for a path if one exists
|
|
5
|
+
*
|
|
6
|
+
* Use in Next.js middleware to handle managed redirects
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* // middleware.ts
|
|
11
|
+
* import { getRedirect } from '@sonordev/seo'
|
|
12
|
+
*
|
|
13
|
+
* export async function middleware(request) {
|
|
14
|
+
* const redirect = await getRedirect({
|
|
15
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
16
|
+
* path: request.nextUrl.pathname
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* if (redirect) {
|
|
20
|
+
* return NextResponse.redirect(redirect.destination, redirect.statusCode)
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function getRedirect(options: GetRedirectOptions): Promise<RedirectResult | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Get robots directive for a page
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const robots = await getRobotsDirective({
|
|
32
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
33
|
+
* path: '/private-page'
|
|
34
|
+
* })
|
|
35
|
+
*
|
|
36
|
+
* if (!robots.index) {
|
|
37
|
+
* // Page should not be indexed
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare function getRobotsDirective(options: GetRobotsOptions): Promise<RobotsDirective>;
|
|
42
|
+
/**
|
|
43
|
+
* Get sitemap entries for a project
|
|
44
|
+
*
|
|
45
|
+
* Use in sitemap.ts to generate dynamic sitemap
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* // app/sitemap.ts
|
|
50
|
+
* import { generateSitemap } from '@sonordev/seo'
|
|
51
|
+
*
|
|
52
|
+
* export default async function sitemap() {
|
|
53
|
+
* return generateSitemap({
|
|
54
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
55
|
+
* baseUrl: 'https://example.com',
|
|
56
|
+
* publishedOnly: true
|
|
57
|
+
* })
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
declare function generateSitemap(options: GetSitemapEntriesOptions): Promise<SitemapEntry[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Register local sitemap entries with Sonor
|
|
64
|
+
*
|
|
65
|
+
* Call this at build time to sync your local routes to seo_pages.
|
|
66
|
+
* This ensures analytics only tracks real pages.
|
|
67
|
+
*
|
|
68
|
+
* After registration, Signal AI will generate optimized meta titles
|
|
69
|
+
* and descriptions for pages that don't have managed meta yet.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* // scripts/register-sitemap.ts
|
|
74
|
+
* import { registerLocalSitemap } from '@sonordev/seo'
|
|
75
|
+
*
|
|
76
|
+
* // Option 1: Provide entries directly
|
|
77
|
+
* await registerLocalSitemap({
|
|
78
|
+
* entries: [
|
|
79
|
+
* { path: '/', title: 'Home', priority: 1.0 },
|
|
80
|
+
* { path: '/about', title: 'About Us', priority: 0.8 },
|
|
81
|
+
* ]
|
|
82
|
+
* })
|
|
83
|
+
*
|
|
84
|
+
* // Option 2: Auto-discover from Next.js app directory
|
|
85
|
+
* await registerLocalSitemap({ autoDiscover: true })
|
|
86
|
+
*
|
|
87
|
+
* // Option 3: Skip Signal AI meta optimization
|
|
88
|
+
* await registerLocalSitemap({ autoDiscover: true, optimize_meta: false })
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function registerLocalSitemap(options: {
|
|
92
|
+
entries?: Array<{
|
|
93
|
+
path: string;
|
|
94
|
+
title?: string;
|
|
95
|
+
priority?: number;
|
|
96
|
+
changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
|
|
97
|
+
}>;
|
|
98
|
+
autoDiscover?: boolean;
|
|
99
|
+
/** Trigger Signal AI to generate optimized meta titles/descriptions (default: true) */
|
|
100
|
+
optimize_meta?: boolean;
|
|
101
|
+
}): Promise<{
|
|
102
|
+
success: boolean;
|
|
103
|
+
created: number;
|
|
104
|
+
updated: number;
|
|
105
|
+
removed?: number;
|
|
106
|
+
meta_optimization?: {
|
|
107
|
+
triggered: boolean;
|
|
108
|
+
pages_queued: number;
|
|
109
|
+
} | null;
|
|
110
|
+
}>;
|
|
111
|
+
/**
|
|
112
|
+
* Check if a path should be indexed
|
|
113
|
+
*
|
|
114
|
+
* Quick helper to check indexability without full directive parsing
|
|
115
|
+
*/
|
|
116
|
+
declare function isIndexable(projectId: string, path: string): Promise<boolean>;
|
|
117
|
+
|
|
118
|
+
export { getRedirect as a, getRobotsDirective as b, generateSitemap as g, isIndexable as i, registerLocalSitemap as r };
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { m as GetRedirectOptions, R as RedirectResult, q as GetRobotsOptions, p as RobotsDirective, s as GetSitemapEntriesOptions, r as SitemapEntry } from './types-KZP_VWZp.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Get redirect for a path if one exists
|
|
5
|
+
*
|
|
6
|
+
* Use in Next.js middleware to handle managed redirects
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* // middleware.ts
|
|
11
|
+
* import { getRedirect } from '@sonordev/seo'
|
|
12
|
+
*
|
|
13
|
+
* export async function middleware(request) {
|
|
14
|
+
* const redirect = await getRedirect({
|
|
15
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
16
|
+
* path: request.nextUrl.pathname
|
|
17
|
+
* })
|
|
18
|
+
*
|
|
19
|
+
* if (redirect) {
|
|
20
|
+
* return NextResponse.redirect(redirect.destination, redirect.statusCode)
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function getRedirect(options: GetRedirectOptions): Promise<RedirectResult | null>;
|
|
26
|
+
/**
|
|
27
|
+
* Get robots directive for a page
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const robots = await getRobotsDirective({
|
|
32
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
33
|
+
* path: '/private-page'
|
|
34
|
+
* })
|
|
35
|
+
*
|
|
36
|
+
* if (!robots.index) {
|
|
37
|
+
* // Page should not be indexed
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
declare function getRobotsDirective(options: GetRobotsOptions): Promise<RobotsDirective>;
|
|
42
|
+
/**
|
|
43
|
+
* Get sitemap entries for a project
|
|
44
|
+
*
|
|
45
|
+
* Use in sitemap.ts to generate dynamic sitemap
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* // app/sitemap.ts
|
|
50
|
+
* import { generateSitemap } from '@sonordev/seo'
|
|
51
|
+
*
|
|
52
|
+
* export default async function sitemap() {
|
|
53
|
+
* return generateSitemap({
|
|
54
|
+
* projectId: process.env.UPTRADE_PROJECT_ID!,
|
|
55
|
+
* baseUrl: 'https://example.com',
|
|
56
|
+
* publishedOnly: true
|
|
57
|
+
* })
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
declare function generateSitemap(options: GetSitemapEntriesOptions): Promise<SitemapEntry[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Register local sitemap entries with Sonor
|
|
64
|
+
*
|
|
65
|
+
* Call this at build time to sync your local routes to seo_pages.
|
|
66
|
+
* This ensures analytics only tracks real pages.
|
|
67
|
+
*
|
|
68
|
+
* After registration, Signal AI will generate optimized meta titles
|
|
69
|
+
* and descriptions for pages that don't have managed meta yet.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* // scripts/register-sitemap.ts
|
|
74
|
+
* import { registerLocalSitemap } from '@sonordev/seo'
|
|
75
|
+
*
|
|
76
|
+
* // Option 1: Provide entries directly
|
|
77
|
+
* await registerLocalSitemap({
|
|
78
|
+
* entries: [
|
|
79
|
+
* { path: '/', title: 'Home', priority: 1.0 },
|
|
80
|
+
* { path: '/about', title: 'About Us', priority: 0.8 },
|
|
81
|
+
* ]
|
|
82
|
+
* })
|
|
83
|
+
*
|
|
84
|
+
* // Option 2: Auto-discover from Next.js app directory
|
|
85
|
+
* await registerLocalSitemap({ autoDiscover: true })
|
|
86
|
+
*
|
|
87
|
+
* // Option 3: Skip Signal AI meta optimization
|
|
88
|
+
* await registerLocalSitemap({ autoDiscover: true, optimize_meta: false })
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare function registerLocalSitemap(options: {
|
|
92
|
+
entries?: Array<{
|
|
93
|
+
path: string;
|
|
94
|
+
title?: string;
|
|
95
|
+
priority?: number;
|
|
96
|
+
changefreq?: 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
|
|
97
|
+
}>;
|
|
98
|
+
autoDiscover?: boolean;
|
|
99
|
+
/** Trigger Signal AI to generate optimized meta titles/descriptions (default: true) */
|
|
100
|
+
optimize_meta?: boolean;
|
|
101
|
+
}): Promise<{
|
|
102
|
+
success: boolean;
|
|
103
|
+
created: number;
|
|
104
|
+
updated: number;
|
|
105
|
+
removed?: number;
|
|
106
|
+
meta_optimization?: {
|
|
107
|
+
triggered: boolean;
|
|
108
|
+
pages_queued: number;
|
|
109
|
+
} | null;
|
|
110
|
+
}>;
|
|
111
|
+
/**
|
|
112
|
+
* Check if a path should be indexed
|
|
113
|
+
*
|
|
114
|
+
* Quick helper to check indexability without full directive parsing
|
|
115
|
+
*/
|
|
116
|
+
declare function isIndexable(projectId: string, path: string): Promise<boolean>;
|
|
117
|
+
|
|
118
|
+
export { getRedirect as a, getRobotsDirective as b, generateSitemap as g, isIndexable as i, registerLocalSitemap as r };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7URAOG2M_js = require('./chunk-7URAOG2M.js');
|
|
4
|
+
require('./chunk-ZSMWDLMK.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "scanCodebase", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunk7URAOG2M_js.scanCodebase; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "scanForAnalytics", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunk7URAOG2M_js.scanForAnalytics; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "scanForFAQs", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunk7URAOG2M_js.scanForFAQs; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "scanForForms", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunk7URAOG2M_js.scanForForms; }
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "scanForImages", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return chunk7URAOG2M_js.scanForImages; }
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "scanForManagedFAQPaths", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return chunk7URAOG2M_js.scanForManagedFAQPaths; }
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "scanForMetadata", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () { return chunk7URAOG2M_js.scanForMetadata; }
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "scanForSchemas", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () { return chunk7URAOG2M_js.scanForSchemas; }
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(exports, "scanForSitemapFiles", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
get: function () { return chunk7URAOG2M_js.scanForSitemapFiles; }
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "scanForSitemaps", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () { return chunk7URAOG2M_js.scanForSitemaps; }
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "scanForWidgets", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () { return chunk7URAOG2M_js.scanForWidgets; }
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=scanner-GAF5PO5F.js.map
|
|
53
|
+
//# sourceMappingURL=scanner-GAF5PO5F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"scanner-GAF5PO5F.js"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { scanCodebase, scanForAnalytics, scanForFAQs, scanForForms, scanForImages, scanForManagedFAQPaths, scanForMetadata, scanForSchemas, scanForSitemapFiles, scanForSitemaps, scanForWidgets } from './chunk-JGNQK2G6.mjs';
|
|
2
|
+
import './chunk-4XPGGLVP.mjs';
|
|
3
|
+
//# sourceMappingURL=scanner-LKJKW7IT.mjs.map
|
|
4
|
+
//# sourceMappingURL=scanner-LKJKW7IT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"scanner-LKJKW7IT.mjs"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default security headers applied by site-kit middleware.
|
|
3
|
+
*
|
|
4
|
+
* These match industry best practices and are the same headers
|
|
5
|
+
* recommended by Next.js documentation. All are opt-out.
|
|
6
|
+
*/
|
|
7
|
+
interface SecurityHeadersConfig {
|
|
8
|
+
/** X-Frame-Options value. false to disable. Default: 'DENY' */
|
|
9
|
+
frameOptions?: 'DENY' | 'SAMEORIGIN' | false;
|
|
10
|
+
/** X-Content-Type-Options: nosniff. Default: true */
|
|
11
|
+
contentTypeOptions?: boolean;
|
|
12
|
+
/** X-XSS-Protection header. Default: true */
|
|
13
|
+
xssProtection?: boolean;
|
|
14
|
+
/** Referrer-Policy value. Default: 'strict-origin-when-cross-origin' */
|
|
15
|
+
referrerPolicy?: string;
|
|
16
|
+
/** Permissions-Policy value. Default restricts camera, microphone, geolocation */
|
|
17
|
+
permissionsPolicy?: string;
|
|
18
|
+
/** X-DNS-Prefetch-Control. Default: true (on) */
|
|
19
|
+
dnsPrefetchControl?: boolean;
|
|
20
|
+
/** Additional custom headers */
|
|
21
|
+
customHeaders?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type { SecurityHeadersConfig as S };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default security headers applied by site-kit middleware.
|
|
3
|
+
*
|
|
4
|
+
* These match industry best practices and are the same headers
|
|
5
|
+
* recommended by Next.js documentation. All are opt-out.
|
|
6
|
+
*/
|
|
7
|
+
interface SecurityHeadersConfig {
|
|
8
|
+
/** X-Frame-Options value. false to disable. Default: 'DENY' */
|
|
9
|
+
frameOptions?: 'DENY' | 'SAMEORIGIN' | false;
|
|
10
|
+
/** X-Content-Type-Options: nosniff. Default: true */
|
|
11
|
+
contentTypeOptions?: boolean;
|
|
12
|
+
/** X-XSS-Protection header. Default: true */
|
|
13
|
+
xssProtection?: boolean;
|
|
14
|
+
/** Referrer-Policy value. Default: 'strict-origin-when-cross-origin' */
|
|
15
|
+
referrerPolicy?: string;
|
|
16
|
+
/** Permissions-Policy value. Default restricts camera, microphone, geolocation */
|
|
17
|
+
permissionsPolicy?: string;
|
|
18
|
+
/** X-DNS-Prefetch-Control. Default: true (on) */
|
|
19
|
+
dnsPrefetchControl?: boolean;
|
|
20
|
+
/** Additional custom headers */
|
|
21
|
+
customHeaders?: Record<string, string>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type { SecurityHeadersConfig as S };
|