@dani-builder/strapi-client 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/content-types/site-settings.d.ts +1 -0
- package/dist/types/content-types/site-settings.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/robots-txt.d.ts +9 -0
- package/dist/utils/robots-txt.d.ts.map +1 -0
- package/dist/utils/robots-txt.js +17 -0
- package/dist/utils/robots-txt.js.map +1 -0
- package/docs/content-types.md +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -156,3 +156,46 @@ nodes, and returns an empty string for absent/non-array input. The outer result
|
|
|
156
156
|
is trimmed. `faqPageJsonLd` accepts a readonly array of question/answer records,
|
|
157
157
|
uses that extraction for answers, trims questions and omits blank pairs. The result
|
|
158
158
|
uses `Question` and `Answer` entities; return `null` means no FAQ script is needed.
|
|
159
|
+
|
|
160
|
+
## robots.txt
|
|
161
|
+
|
|
162
|
+
Site Settings has optional `robotsTxt` text. Saves accept `User-agent`, `Allow`,
|
|
163
|
+
`Disallow`, `Sitemap`, and `Crawl-delay` directive names (case insensitive), followed
|
|
164
|
+
by a colon, plus comments and blank lines. Invalid lines return a validation error
|
|
165
|
+
with the field name and original one-based line number. This is basic directive
|
|
166
|
+
syntax validation; directive values and crawler behavior remain author-owned.
|
|
167
|
+
|
|
168
|
+
`resolveRobotsTxt(siteSetting, { indexingAllowed, siteUrl, defaultRules })` is
|
|
169
|
+
exported from the root and `/utils`. Null, absent, empty, or whitespace-only CMS
|
|
170
|
+
text uses the consumer's `defaultRules`. With indexing enabled, it preserves those
|
|
171
|
+
rules and appends `Sitemap: <siteUrl>/sitemap.xml` unless an active, case-insensitive
|
|
172
|
+
`Sitemap` directive already exists. Trailing slashes are removed from `siteUrl`;
|
|
173
|
+
commented sitemap directives do not count. With `indexingAllowed: false`, it always
|
|
174
|
+
returns exactly `User-agent: *\nDisallow: /`, without a sitemap.
|
|
175
|
+
|
|
176
|
+
Serve the returned string from a plain-text route, for example in Next.js at
|
|
177
|
+
`app/robots.txt/route.ts`:
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
import {
|
|
181
|
+
getSiteSettings,
|
|
182
|
+
resolveRobotsTxt,
|
|
183
|
+
} from "@dani-builder/strapi-client";
|
|
184
|
+
import { client } from "@/lib/strapi";
|
|
185
|
+
import { indexingAllowed, siteUrl } from "@/lib/site-config";
|
|
186
|
+
|
|
187
|
+
export async function GET() {
|
|
188
|
+
const siteSetting = await getSiteSettings(client);
|
|
189
|
+
const body = resolveRobotsTxt(siteSetting, {
|
|
190
|
+
indexingAllowed,
|
|
191
|
+
siteUrl,
|
|
192
|
+
defaultRules: "User-agent: *\nAllow: /",
|
|
193
|
+
});
|
|
194
|
+
return new Response(body, {
|
|
195
|
+
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
The consumer controls indexing policy and must supply its own client and site
|
|
201
|
+
configuration. Avoid also defining a framework `robots.ts` route at the same URL.
|
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export type { StrapiClientConfig } from "./client/index.js";
|
|
|
4
4
|
export { coreBlockPopulates, seoPopulate, footerPopulate, getPagePopulate, getPageListPopulate, getGlobalPopulate, getArticlePopulate, getArticleListPopulate, getNavigationPopulate, getSiteSettingsPopulate, getFaqPopulate, getCategoryPopulate, } from "./populate/index.js";
|
|
5
5
|
export { getPage, getPageBySlug, listPages, listPagesRest, getArticle, getArticleBySlug, listArticles, getGlobal, getGlobalRest, getNavigation, getSiteSettings, listFaqs, listCategories, listTags, listAuthors, getAuthorBySlug, listSeries, getSeriesBySlug, postInquiry, } from "./api/index.js";
|
|
6
6
|
export type { PageQueryOptions, PageListOptions, ArticleQueryOptions, ArticleListOptions, GlobalQueryOptions, NavigationQueryOptions, FaqListOptions, CategoryListOptions, TagListOptions, AuthorListOptions, SeriesListOptions, } from "./api/index.js";
|
|
7
|
-
export { getMediaUrl, getAssetUrl, resolveSeo, siteVerificationMeta, serializeJsonLd, mergeStructuredData, blocksToPlainText, faqPageJsonLd, } from "./utils/index.js";
|
|
8
|
-
export type { SeoDefaults, SeoInput, ResolvedSeo, ResolvedSocialMetadata, VerificationMeta, SiteVerificationSettings, StructuredDataObject, StructuredDataExclusion, StructuredDataMergeResult, FaqJsonLdInput, FaqPageJsonLd, } from "./utils/index.js";
|
|
7
|
+
export { getMediaUrl, getAssetUrl, resolveSeo, siteVerificationMeta, serializeJsonLd, mergeStructuredData, blocksToPlainText, faqPageJsonLd, resolveRobotsTxt, } from "./utils/index.js";
|
|
8
|
+
export type { SeoDefaults, SeoInput, ResolvedSeo, ResolvedSocialMetadata, VerificationMeta, SiteVerificationSettings, StructuredDataObject, StructuredDataExclusion, StructuredDataMergeResult, FaqJsonLdInput, FaqPageJsonLd, ResolveRobotsTxtOptions, } from "./utils/index.js";
|
|
9
9
|
export { createAgentClient, AgentClientError, } from "./agent/create-agent-client.js";
|
|
10
10
|
export type { AgentClientConfig, AgentSessionCredentials, AgentRestoreOptions, AgentChatOptions, AgentTurn, } from "./agent/create-agent-client.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,IAAI,EACJ,eAAe,EACf,GAAG,EACH,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,SAAS,EACT,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,MAAM,EACN,SAAS,EACT,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,eAAe,EACf,GAAG,EACH,WAAW,EACX,OAAO,EACP,eAAe,EACf,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,GAAG,EACH,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,EACN,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,6 @@ export { coreBlockPopulates, seoPopulate, footerPopulate, getPagePopulate, getPa
|
|
|
6
6
|
// API
|
|
7
7
|
export { getPage, getPageBySlug, listPages, listPagesRest, getArticle, getArticleBySlug, listArticles, getGlobal, getGlobalRest, getNavigation, getSiteSettings, listFaqs, listCategories, listTags, listAuthors, getAuthorBySlug, listSeries, getSeriesBySlug, postInquiry, } from "./api/index.js";
|
|
8
8
|
// Utils
|
|
9
|
-
export { getMediaUrl, getAssetUrl, resolveSeo, siteVerificationMeta, serializeJsonLd, mergeStructuredData, blocksToPlainText, faqPageJsonLd, } from "./utils/index.js";
|
|
9
|
+
export { getMediaUrl, getAssetUrl, resolveSeo, siteVerificationMeta, serializeJsonLd, mergeStructuredData, blocksToPlainText, faqPageJsonLd, resolveRobotsTxt, } from "./utils/index.js";
|
|
10
10
|
export { createAgentClient, AgentClientError, } from "./agent/create-agent-client.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAsF1D,SAAS;AACT,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM;AACN,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAexB,QAAQ;AACR,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAsF1D,SAAS;AACT,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,WAAW;AACX,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM;AACN,OAAO,EACL,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,WAAW,EACX,eAAe,EACf,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAexB,QAAQ;AACR,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAgB1B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,gCAAgC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { StrapiDocument } from '../strapi.js';
|
|
2
2
|
import type { AnalyticsSetting, BrandColors, ChatbotSetting, SiteVerification } from '../components/shared.js';
|
|
3
3
|
export interface SiteSettings {
|
|
4
|
+
robotsTxt?: string | null;
|
|
4
5
|
analyticsSettings: AnalyticsSetting[];
|
|
5
6
|
chatbot: ChatbotSetting | null;
|
|
6
7
|
siteVerifications: SiteVerification[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-settings.d.ts","sourceRoot":"","sources":["../../../src/types/content-types/site-settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE/G,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"site-settings.d.ts","sourceRoot":"","sources":["../../../src/types/content-types/site-settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE/G,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,YAAY,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { serializeJsonLd, mergeStructuredData } from "./structured-data.js";
|
|
|
5
5
|
export type { StructuredDataObject, StructuredDataExclusion, StructuredDataMergeResult, } from "./structured-data.js";
|
|
6
6
|
export { blocksToPlainText, faqPageJsonLd } from "./faq.js";
|
|
7
7
|
export type { FaqJsonLdInput, FaqPageJsonLd } from "./faq.js";
|
|
8
|
+
export { resolveRobotsTxt } from "./robots-txt.js";
|
|
9
|
+
export type { ResolveRobotsTxtOptions } from "./robots-txt.js";
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EACV,WAAW,EACX,QAAQ,EACR,WAAW,EACX,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EACV,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { getMediaUrl, getAssetUrl } from "./media.js";
|
|
|
2
2
|
export { resolveSeo, siteVerificationMeta } from "./seo.js";
|
|
3
3
|
export { serializeJsonLd, mergeStructuredData } from "./structured-data.js";
|
|
4
4
|
export { blocksToPlainText, faqPageJsonLd } from "./faq.js";
|
|
5
|
+
export { resolveRobotsTxt } from "./robots-txt.js";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAS5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM5E,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAS5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAM5E,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SiteSettings } from "../types/content-types/site-settings.js";
|
|
2
|
+
export interface ResolveRobotsTxtOptions {
|
|
3
|
+
indexingAllowed: boolean;
|
|
4
|
+
siteUrl: string;
|
|
5
|
+
defaultRules: string;
|
|
6
|
+
}
|
|
7
|
+
/** Resolve CMS rules with the consumer's indexing policy and sitemap URL. */
|
|
8
|
+
export declare function resolveRobotsTxt(siteSetting: Pick<SiteSettings, "robotsTxt"> | null | undefined, { indexingAllowed, siteUrl, defaultRules }: ResolveRobotsTxtOptions): string;
|
|
9
|
+
//# sourceMappingURL=robots-txt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robots-txt.d.ts","sourceRoot":"","sources":["../../src/utils/robots-txt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AAE5E,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/D,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,uBAAuB,GAClE,MAAM,CAcR"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Resolve CMS rules with the consumer's indexing policy and sitemap URL. */
|
|
2
|
+
export function resolveRobotsTxt(siteSetting, { indexingAllowed, siteUrl, defaultRules }) {
|
|
3
|
+
if (!indexingAllowed)
|
|
4
|
+
return "User-agent: *\nDisallow: /";
|
|
5
|
+
const customRules = siteSetting?.robotsTxt;
|
|
6
|
+
const rules = customRules?.trim() ? customRules : defaultRules;
|
|
7
|
+
const hasSitemap = rules
|
|
8
|
+
.split(/\r\n|\n|\r/)
|
|
9
|
+
.some((line) => /^\s*sitemap\s*:/i.test(line));
|
|
10
|
+
if (hasSitemap)
|
|
11
|
+
return rules;
|
|
12
|
+
const sitemap = `Sitemap: ${siteUrl.replace(/\/+$/, "")}/sitemap.xml`;
|
|
13
|
+
return rules
|
|
14
|
+
? `${rules}${/[\r\n]$/.test(rules) ? "" : "\n"}${sitemap}`
|
|
15
|
+
: sitemap;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=robots-txt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"robots-txt.js","sourceRoot":"","sources":["../../src/utils/robots-txt.ts"],"names":[],"mappings":"AAQA,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,WAA+D,EAC/D,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAA2B;IAEnE,IAAI,CAAC,eAAe;QAAE,OAAO,4BAA4B,CAAC;IAE1D,MAAM,WAAW,GAAG,WAAW,EAAE,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAC/D,MAAM,UAAU,GAAG,KAAK;SACrB,KAAK,CAAC,YAAY,CAAC;SACnB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,OAAO,GAAG,YAAY,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC;IACtE,OAAO,KAAK;QACV,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE;QAC1D,CAAC,CAAC,OAAO,CAAC;AACd,CAAC"}
|
package/docs/content-types.md
CHANGED
|
@@ -186,6 +186,7 @@ Operational settings for analytics, chatbot, and site verification
|
|
|
186
186
|
|
|
187
187
|
| Attribute | Type | Required | Default | Notes |
|
|
188
188
|
|---|---|---|---|---|
|
|
189
|
+
| `robotsTxt` | text | — | — | — |
|
|
189
190
|
| `analyticsSettings` | component `shared.analytics-setting` (repeatable) | — | — | — |
|
|
190
191
|
| `chatbot` | component `shared.chatbot-setting` | — | — | — |
|
|
191
192
|
| `siteVerifications` | component `shared.site-verification` (repeatable) | — | — | — |
|