@dani-builder/strapi-client 0.13.0 → 0.15.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 +60 -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/components.md +1 -1
- package/docs/content-types.md +2 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -34,6 +34,23 @@ const global = await getGlobal(strapi);
|
|
|
34
34
|
const draft = await getPageBySlug(strapi, "about", { status: "draft" });
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
## Site settings and analytics
|
|
38
|
+
|
|
39
|
+
`getSiteSettings` populates analytics settings automatically. For a custom REST
|
|
40
|
+
request, include the shared populate builder:
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { getSiteSettingsPopulate } from "@dani-builder/strapi-client/populate";
|
|
44
|
+
import type { SiteSettingsDocument, StrapiResponse } from "@dani-builder/strapi-client/types";
|
|
45
|
+
|
|
46
|
+
const { data } = await strapi.get<StrapiResponse<SiteSettingsDocument>>(
|
|
47
|
+
"/api/builder/site-setting",
|
|
48
|
+
{ params: { populate: getSiteSettingsPopulate() } },
|
|
49
|
+
);
|
|
50
|
+
const configs = data.data.analyticsSettings;
|
|
51
|
+
// Pass configs to AnalyticsProvider from @dani-builder/blocks/analytics.
|
|
52
|
+
```
|
|
53
|
+
|
|
37
54
|
## Sub-exports
|
|
38
55
|
|
|
39
56
|
| Import | Contents |
|
|
@@ -156,3 +173,46 @@ nodes, and returns an empty string for absent/non-array input. The outer result
|
|
|
156
173
|
is trimmed. `faqPageJsonLd` accepts a readonly array of question/answer records,
|
|
157
174
|
uses that extraction for answers, trims questions and omits blank pairs. The result
|
|
158
175
|
uses `Question` and `Answer` entities; return `null` means no FAQ script is needed.
|
|
176
|
+
|
|
177
|
+
## robots.txt
|
|
178
|
+
|
|
179
|
+
Site Settings has optional `robotsTxt` text. Saves accept `User-agent`, `Allow`,
|
|
180
|
+
`Disallow`, `Sitemap`, and `Crawl-delay` directive names (case insensitive), followed
|
|
181
|
+
by a colon, plus comments and blank lines. Invalid lines return a validation error
|
|
182
|
+
with the field name and original one-based line number. This is basic directive
|
|
183
|
+
syntax validation; directive values and crawler behavior remain author-owned.
|
|
184
|
+
|
|
185
|
+
`resolveRobotsTxt(siteSetting, { indexingAllowed, siteUrl, defaultRules })` is
|
|
186
|
+
exported from the root and `/utils`. Null, absent, empty, or whitespace-only CMS
|
|
187
|
+
text uses the consumer's `defaultRules`. With indexing enabled, it preserves those
|
|
188
|
+
rules and appends `Sitemap: <siteUrl>/sitemap.xml` unless an active, case-insensitive
|
|
189
|
+
`Sitemap` directive already exists. Trailing slashes are removed from `siteUrl`;
|
|
190
|
+
commented sitemap directives do not count. With `indexingAllowed: false`, it always
|
|
191
|
+
returns exactly `User-agent: *\nDisallow: /`, without a sitemap.
|
|
192
|
+
|
|
193
|
+
Serve the returned string from a plain-text route, for example in Next.js at
|
|
194
|
+
`app/robots.txt/route.ts`:
|
|
195
|
+
|
|
196
|
+
```ts
|
|
197
|
+
import {
|
|
198
|
+
getSiteSettings,
|
|
199
|
+
resolveRobotsTxt,
|
|
200
|
+
} from "@dani-builder/strapi-client";
|
|
201
|
+
import { client } from "@/lib/strapi";
|
|
202
|
+
import { indexingAllowed, siteUrl } from "@/lib/site-config";
|
|
203
|
+
|
|
204
|
+
export async function GET() {
|
|
205
|
+
const siteSetting = await getSiteSettings(client);
|
|
206
|
+
const body = resolveRobotsTxt(siteSetting, {
|
|
207
|
+
indexingAllowed,
|
|
208
|
+
siteUrl,
|
|
209
|
+
defaultRules: "User-agent: *\nAllow: /",
|
|
210
|
+
});
|
|
211
|
+
return new Response(body, {
|
|
212
|
+
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
The consumer controls indexing policy and must supply its own client and site
|
|
218
|
+
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/components.md
CHANGED
|
@@ -45,7 +45,7 @@ Reusable sub-components referenced by blocks and content types.
|
|
|
45
45
|
|---|---|---|---|---|
|
|
46
46
|
| `provider` | enumeration | yes | — | `google-tag-manager`, `google-analytics`, `matomo` |
|
|
47
47
|
| `trackingId` | string | yes | — | — |
|
|
48
|
-
| `customDomain` | string | — | — |
|
|
48
|
+
| `customDomain` | string | — | — | regex `^(?![\s\S]*[\s<>"'\x60\\])https?://(?:\[[0-9A-Fa-f:]+\]\|[^/@:?#\[\]]+)(?::\d+)?(?:[/?#][\s\S]*)?$` |
|
|
49
49
|
| `enabled` | boolean | — | `true` | — |
|
|
50
50
|
|
|
51
51
|
## Bento Item
|
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) | — | — | — |
|
|
@@ -199,6 +200,6 @@ Article tag with optional color
|
|
|
199
200
|
|---|---|---|---|---|
|
|
200
201
|
| `name` | string | yes | — | — |
|
|
201
202
|
| `slug` | uid ← `name` | yes | — | — |
|
|
202
|
-
| `color` | customField | — | — | custom field `plugin::color-picker.color` |
|
|
203
|
+
| `color` | customField | — | — | custom field `plugin::color-picker.color` · regex `^#([A-Fa-f0-9]{6}\|[A-Fa-f0-9]{3})$` |
|
|
203
204
|
| `description` | text | — | — | — |
|
|
204
205
|
| `articles` | relation `manyToMany` → `plugin::builder.article` | — | — | — |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dani-builder/strapi-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "TypeScript client for Daniworks Builder CMS (Strapi v5)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"typescript": "^6.0.3",
|
|
69
69
|
"@types/node": "^26",
|
|
70
70
|
"@dani-builder/agent-contract-build": "npm:@dani-builder/agent-contract@0.6.0",
|
|
71
|
-
"@repo/
|
|
72
|
-
"@repo/
|
|
71
|
+
"@repo/typescript-config": "0.0.0",
|
|
72
|
+
"@repo/eslint-config": "0.0.0"
|
|
73
73
|
},
|
|
74
74
|
"keywords": [
|
|
75
75
|
"strapi",
|