@obelism/content 0.8.0 → 0.10.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 +26 -2
- package/dist/bin/content.js +2 -1
- package/dist/index.d.mts +25 -6
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +25 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -0
- package/dist/index.mjs +57 -1
- package/dist/{types-2evub96q.d.ts → types-gc2dwaqa.d.ts} +5 -1
- package/dist/types-gc2dwaqa.d.ts.map +1 -0
- package/dist/webhooks.d.mts +13 -2
- package/dist/webhooks.d.mts.map +1 -1
- package/dist/webhooks.d.ts +13 -2
- package/dist/webhooks.d.ts.map +1 -1
- package/package.json +4 -3
- package/dist/types-2evub96q.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -214,7 +214,11 @@ const event = await verifyWebhook(request, process.env.CONTENT_WEBHOOK_SECRET!)
|
|
|
214
214
|
`entry.deleted` and `entry.moved` (`data.entry`: `{ id, contentType, name,
|
|
215
215
|
path, paths }`, plus `previousPath` and `previousPaths` when moved), `asset.updated` (`data.asset`,
|
|
216
216
|
`data.entries`), `model.changed` (`data.contentTypes`: `{ apiId, action }`),
|
|
217
|
-
`locales.changed` (`data.defaultLocale`, `data.locales`)
|
|
217
|
+
`locales.changed` (`data.defaultLocale`, `data.locales`),
|
|
218
|
+
`entry.review_requested` (`data.entry`, `data.revision`, `data.note`) and
|
|
219
|
+
`entry.review_closed` (`data.outcome`: `approved` or `sent_back` with
|
|
220
|
+
`data.reason`) for environments whose publishing is reviewed, and
|
|
221
|
+
`webhook.test`.
|
|
218
222
|
|
|
219
223
|
## Click rates
|
|
220
224
|
|
|
@@ -241,7 +245,27 @@ bridge.on('change', ({ stats, statsVisible }) => …) // stats[uid].rate, 0–1
|
|
|
241
245
|
## Helpers
|
|
242
246
|
|
|
243
247
|
- `richTextToHtml(doc, { renderEntry?, renderAsset? })`, `richTextToPlainText(doc)`
|
|
244
|
-
- `imageUrl(asset, { w, h, fit, format, q })`, `imageSrcSet(asset, [480, 960])
|
|
248
|
+
- `imageUrl(asset, { w, h, fit, format, q, focus })`, `imageSrcSet(asset, [480, 960])`:
|
|
249
|
+
with `fit: 'cover'` or `'crop'` the crop keeps the asset's `focalPoint` (set
|
|
250
|
+
in the CMS under Media) in view, or the `focus` you pass (`{ x, y }` or
|
|
251
|
+
`'auto'`)
|
|
252
|
+
- `alternateLinks(entry, { url, defaultLocale })`: every locale's URL of a page
|
|
253
|
+
(`entry.paths`), plus `x-default`, for `<link rel="alternate" hreflang>`
|
|
254
|
+
- `sitemapXml(entries, { url, defaultLocale, exclude? })`: a sitemap with one
|
|
255
|
+
`<url>` per page and locale and its alternates; pages with "Hide from search
|
|
256
|
+
engines" (`fields.noIndex`) are left out. `url(path, locale)` decides where
|
|
257
|
+
a locale's path lives on your site:
|
|
258
|
+
|
|
259
|
+
```ts
|
|
260
|
+
const pages = []
|
|
261
|
+
for await (const page of content.getAllEntries({ contentType: 'page' })) {
|
|
262
|
+
pages.push(page)
|
|
263
|
+
}
|
|
264
|
+
const xml = sitemapXml(pages, {
|
|
265
|
+
url: (path, locale) => `https://example.com/${locale}/${path}`,
|
|
266
|
+
defaultLocale: 'en',
|
|
267
|
+
})
|
|
268
|
+
```
|
|
245
269
|
|
|
246
270
|
## A/B tests and feature flags
|
|
247
271
|
|
package/dist/bin/content.js
CHANGED
|
@@ -25,7 +25,8 @@ const exampleAsset = (mimeTypes)=>{
|
|
|
25
25
|
width: image ? 1600 : null,
|
|
26
26
|
height: image ? 900 : null,
|
|
27
27
|
title: null,
|
|
28
|
-
alt: image ? 'An example image' : null
|
|
28
|
+
alt: image ? 'An example image' : null,
|
|
29
|
+
focalPoint: null
|
|
29
30
|
};
|
|
30
31
|
};
|
|
31
32
|
const exampleRichText = (name)=>({
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RichTextFormat, E as Entry, a as RedirectList, b as Redirect, c as EntryList, M as ModelFile, A as Asset, B as Block, I as ImproveBlock, d as EntryStub, e as RichTextNode } from './types-
|
|
2
|
-
export { C as ContentTypeDefinition, f as ContentTypeKind, g as Environment, F as FieldDefinition, h as FieldType, i as RichTextDocument, j as RichTextMark } from './types-
|
|
1
|
+
import { R as RichTextFormat, E as Entry, a as RedirectList, b as Redirect, c as EntryList, M as ModelFile, A as Asset, B as Block, I as ImproveBlock, d as EntryStub, e as RichTextNode } from './types-gc2dwaqa.js';
|
|
2
|
+
export { C as ContentTypeDefinition, f as ContentTypeKind, g as Environment, F as FieldDefinition, h as FieldType, i as RichTextDocument, j as RichTextMark } from './types-gc2dwaqa.js';
|
|
3
3
|
|
|
4
4
|
type ContentClientOptions = {
|
|
5
5
|
token: string;
|
|
@@ -84,9 +84,13 @@ type ImageTransform = {
|
|
|
84
84
|
fit?: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad' | undefined;
|
|
85
85
|
format?: 'auto' | 'avif' | 'webp' | 'jpeg' | 'png' | undefined;
|
|
86
86
|
q?: number | undefined;
|
|
87
|
+
focus?: {
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
} | 'auto' | undefined;
|
|
87
91
|
};
|
|
88
|
-
declare const imageUrl: (asset: Pick<Asset, "url"> | string, transform?: ImageTransform) => string;
|
|
89
|
-
declare const imageSrcSet: (asset: Pick<Asset, "url"> | string, widths: number[], transform?: Omit<ImageTransform, "w">) => string;
|
|
92
|
+
declare const imageUrl: (asset: (Pick<Asset, "url"> & Partial<Pick<Asset, "focalPoint">>) | string, transform?: ImageTransform) => string;
|
|
93
|
+
declare const imageSrcSet: (asset: (Pick<Asset, "url"> & Partial<Pick<Asset, "focalPoint">>) | string, widths: number[], transform?: Omit<ImageTransform, "w">) => string;
|
|
90
94
|
|
|
91
95
|
declare const IMPROVE_BLOCK = "_improve";
|
|
92
96
|
declare const isImproveBlock: (block: Block) => block is ImproveBlock;
|
|
@@ -116,6 +120,21 @@ declare const richTextToHtml: (doc: RichTextNode | null | undefined, { renderEnt
|
|
|
116
120
|
declare const headingLevel: (node: RichTextNode) => 1 | 2 | 3 | 4 | 5 | 6;
|
|
117
121
|
declare const richTextToPlainText: (doc: RichTextNode | null | undefined) => string;
|
|
118
122
|
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
type LocalizedUrlOptions = {
|
|
124
|
+
url: (path: string, locale: string) => string;
|
|
125
|
+
defaultLocale?: string | undefined;
|
|
126
|
+
};
|
|
127
|
+
type AlternateLink = {
|
|
128
|
+
hreflang: string;
|
|
129
|
+
href: string;
|
|
130
|
+
};
|
|
131
|
+
type Page = Pick<Entry, 'paths'> & Partial<Pick<Entry, 'updatedAt' | 'fields'>>;
|
|
132
|
+
declare const alternateLinks: (entry: Pick<Entry, "paths">, { url, defaultLocale }: LocalizedUrlOptions) => AlternateLink[];
|
|
133
|
+
type SitemapOptions = LocalizedUrlOptions & {
|
|
134
|
+
exclude?: ((entry: Page) => boolean) | undefined;
|
|
135
|
+
};
|
|
136
|
+
declare const sitemapXml: (entries: Iterable<Page>, { exclude, ...options }: SitemapOptions) => string;
|
|
137
|
+
|
|
138
|
+
export { Asset, Block, ContentApiError, ContentClient, DEFAULT_URL, ENTRY_ATTRIBUTE, Entry, EntryList, EntryStub, IMPROVE_BLOCK, ImproveBlock, ModelFile, PREVIEW_PARAMS, Redirect, RedirectList, RichTextFormat, RichTextNode, SAFE_HREF, UID_ATTRIBUTE, alternateLinks, editable, escapeHtml, headingLevel, imageSrcSet, imageUrl, isImproveBlock, pickImproveVariant, readPreviewParams, richTextToHtml, richTextToPlainText, sitemapXml };
|
|
139
|
+
export type { AlternateLink, ContentClientOptions, EntriesQuery, ImageTransform, LocalizedUrlOptions, PageLookup, PreviewParams, RedirectsQuery, RequestOptions, RichTextHtmlOptions, SitemapOptions };
|
|
121
140
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sources":["../src/client.ts","../src/config.ts","../src/editable.ts","../src/errors.ts","../src/images.ts","../src/improve.ts","../src/preview.ts","../src/richText.ts"],"mappings":";;;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,WAAW,WAAW;AACtB,mBAAmB,KAAK;AACxB;AACA,KAAK,cAAc;AACnB;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,WAAW;AACtB;AACA,KAAK,gBAAgB;AACrB,KAAK,YAAY,GAAG,cAAc;AAClC;AACA;AACA,aAAa,MAAM,SAAS,gBAAgB,YAAY,gBAAgB;AACxE;AACA;AACA;AACA;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA,KAAK,UAAU,gBAAgB,KAAK,GAAG,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA,2FAA2F,oBAAoB;AAC/G,6BAA6B,KAAK,GAAG,KAAK,0BAA0B,cAAc,KAAK,OAAO;AAC9F,8BAA8B,KAAK,GAAG,KAAK,0BAA0B,cAAc,KAAK,OAAO,CAAC,UAAU;AAC1G,oDAAoD,cAAc,KAAK,OAAO,CAAC,YAAY;AAC3F,4BAA4B,IAAI,CAAC,cAAc,YAAY,cAAc,CAAC,QAAQ;AAClF,8BAA8B,KAAK,GAAG,KAAK,wBAAwB,cAAc,KAAK,OAAO;AAC7F,gCAAgC,KAAK,GAAG,KAAK,wEAAwE,YAAY,KAAK,OAAO,CAAC,SAAS;AACvJ,mCAAmC,KAAK,GAAG,KAAK,UAAU,IAAI,CAAC,YAAY,wBAAwB,OAAO;AAC1G,iCAAiC,KAAK,GAAG,KAAK,UAAU,IAAI,CAAC,YAAY,YAAY,cAAc;AACnG,gCAAgC,IAAI,CAAC,cAAc,cAAc,OAAO,CAAC,SAAS;AAClF;;ACtDA,cAAc,WAAW;;ACAzB,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,KAAK,QAAQ;AACb;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;;ACXjC,cAAc,eAAe,SAAS,KAAK;AAC3C;AACA;AACA;AACA;AACA;;ACJA,KAAK,cAAc;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.mts","sources":["../src/client.ts","../src/config.ts","../src/editable.ts","../src/errors.ts","../src/images.ts","../src/improve.ts","../src/preview.ts","../src/richText.ts","../src/sitemap.ts"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RichTextFormat, E as Entry, a as RedirectList, b as Redirect, c as EntryList, M as ModelFile, A as Asset, B as Block, I as ImproveBlock, d as EntryStub, e as RichTextNode } from './types-
|
|
2
|
-
export { C as ContentTypeDefinition, f as ContentTypeKind, g as Environment, F as FieldDefinition, h as FieldType, i as RichTextDocument, j as RichTextMark } from './types-
|
|
1
|
+
import { R as RichTextFormat, E as Entry, a as RedirectList, b as Redirect, c as EntryList, M as ModelFile, A as Asset, B as Block, I as ImproveBlock, d as EntryStub, e as RichTextNode } from './types-gc2dwaqa.js';
|
|
2
|
+
export { C as ContentTypeDefinition, f as ContentTypeKind, g as Environment, F as FieldDefinition, h as FieldType, i as RichTextDocument, j as RichTextMark } from './types-gc2dwaqa.js';
|
|
3
3
|
|
|
4
4
|
type ContentClientOptions = {
|
|
5
5
|
token: string;
|
|
@@ -84,9 +84,13 @@ type ImageTransform = {
|
|
|
84
84
|
fit?: 'scale-down' | 'contain' | 'cover' | 'crop' | 'pad' | undefined;
|
|
85
85
|
format?: 'auto' | 'avif' | 'webp' | 'jpeg' | 'png' | undefined;
|
|
86
86
|
q?: number | undefined;
|
|
87
|
+
focus?: {
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
} | 'auto' | undefined;
|
|
87
91
|
};
|
|
88
|
-
declare const imageUrl: (asset: Pick<Asset, "url"> | string, transform?: ImageTransform) => string;
|
|
89
|
-
declare const imageSrcSet: (asset: Pick<Asset, "url"> | string, widths: number[], transform?: Omit<ImageTransform, "w">) => string;
|
|
92
|
+
declare const imageUrl: (asset: (Pick<Asset, "url"> & Partial<Pick<Asset, "focalPoint">>) | string, transform?: ImageTransform) => string;
|
|
93
|
+
declare const imageSrcSet: (asset: (Pick<Asset, "url"> & Partial<Pick<Asset, "focalPoint">>) | string, widths: number[], transform?: Omit<ImageTransform, "w">) => string;
|
|
90
94
|
|
|
91
95
|
declare const IMPROVE_BLOCK = "_improve";
|
|
92
96
|
declare const isImproveBlock: (block: Block) => block is ImproveBlock;
|
|
@@ -116,6 +120,21 @@ declare const richTextToHtml: (doc: RichTextNode | null | undefined, { renderEnt
|
|
|
116
120
|
declare const headingLevel: (node: RichTextNode) => 1 | 2 | 3 | 4 | 5 | 6;
|
|
117
121
|
declare const richTextToPlainText: (doc: RichTextNode | null | undefined) => string;
|
|
118
122
|
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
type LocalizedUrlOptions = {
|
|
124
|
+
url: (path: string, locale: string) => string;
|
|
125
|
+
defaultLocale?: string | undefined;
|
|
126
|
+
};
|
|
127
|
+
type AlternateLink = {
|
|
128
|
+
hreflang: string;
|
|
129
|
+
href: string;
|
|
130
|
+
};
|
|
131
|
+
type Page = Pick<Entry, 'paths'> & Partial<Pick<Entry, 'updatedAt' | 'fields'>>;
|
|
132
|
+
declare const alternateLinks: (entry: Pick<Entry, "paths">, { url, defaultLocale }: LocalizedUrlOptions) => AlternateLink[];
|
|
133
|
+
type SitemapOptions = LocalizedUrlOptions & {
|
|
134
|
+
exclude?: ((entry: Page) => boolean) | undefined;
|
|
135
|
+
};
|
|
136
|
+
declare const sitemapXml: (entries: Iterable<Page>, { exclude, ...options }: SitemapOptions) => string;
|
|
137
|
+
|
|
138
|
+
export { Asset, Block, ContentApiError, ContentClient, DEFAULT_URL, ENTRY_ATTRIBUTE, Entry, EntryList, EntryStub, IMPROVE_BLOCK, ImproveBlock, ModelFile, PREVIEW_PARAMS, Redirect, RedirectList, RichTextFormat, RichTextNode, SAFE_HREF, UID_ATTRIBUTE, alternateLinks, editable, escapeHtml, headingLevel, imageSrcSet, imageUrl, isImproveBlock, pickImproveVariant, readPreviewParams, richTextToHtml, richTextToPlainText, sitemapXml };
|
|
139
|
+
export type { AlternateLink, ContentClientOptions, EntriesQuery, ImageTransform, LocalizedUrlOptions, PageLookup, PreviewParams, RedirectsQuery, RequestOptions, RichTextHtmlOptions, SitemapOptions };
|
|
121
140
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../src/client.ts","../src/config.ts","../src/editable.ts","../src/errors.ts","../src/images.ts","../src/improve.ts","../src/preview.ts","../src/richText.ts"],"mappings":";;;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,WAAW,WAAW;AACtB,mBAAmB,KAAK;AACxB;AACA,KAAK,cAAc;AACnB;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,WAAW;AACtB;AACA,KAAK,gBAAgB;AACrB,KAAK,YAAY,GAAG,cAAc;AAClC;AACA;AACA,aAAa,MAAM,SAAS,gBAAgB,YAAY,gBAAgB;AACxE;AACA;AACA;AACA;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA,KAAK,UAAU,gBAAgB,KAAK,GAAG,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA,2FAA2F,oBAAoB;AAC/G,6BAA6B,KAAK,GAAG,KAAK,0BAA0B,cAAc,KAAK,OAAO;AAC9F,8BAA8B,KAAK,GAAG,KAAK,0BAA0B,cAAc,KAAK,OAAO,CAAC,UAAU;AAC1G,oDAAoD,cAAc,KAAK,OAAO,CAAC,YAAY;AAC3F,4BAA4B,IAAI,CAAC,cAAc,YAAY,cAAc,CAAC,QAAQ;AAClF,8BAA8B,KAAK,GAAG,KAAK,wBAAwB,cAAc,KAAK,OAAO;AAC7F,gCAAgC,KAAK,GAAG,KAAK,wEAAwE,YAAY,KAAK,OAAO,CAAC,SAAS;AACvJ,mCAAmC,KAAK,GAAG,KAAK,UAAU,IAAI,CAAC,YAAY,wBAAwB,OAAO;AAC1G,iCAAiC,KAAK,GAAG,KAAK,UAAU,IAAI,CAAC,YAAY,YAAY,cAAc;AACnG,gCAAgC,IAAI,CAAC,cAAc,cAAc,OAAO,CAAC,SAAS;AAClF;;ACtDA,cAAc,WAAW;;ACAzB,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,KAAK,QAAQ;AACb;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;;ACXjC,cAAc,eAAe,SAAS,KAAK;AAC3C;AACA;AACA;AACA;AACA;;ACJA,KAAK,cAAc;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../src/client.ts","../src/config.ts","../src/editable.ts","../src/errors.ts","../src/images.ts","../src/improve.ts","../src/preview.ts","../src/richText.ts","../src/sitemap.ts"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -218,16 +218,25 @@ const KEYS = [
|
|
|
218
218
|
'format',
|
|
219
219
|
'q'
|
|
220
220
|
];
|
|
221
|
+
const CROPS = new Set([
|
|
222
|
+
'cover',
|
|
223
|
+
'crop'
|
|
224
|
+
]);
|
|
221
225
|
// An asset's URL with a resize / re-encode query. PNG, JPEG, GIF, WebP and
|
|
222
226
|
// AVIF are transformed; other files ignore the query.
|
|
223
227
|
//
|
|
224
228
|
// imageUrl(asset, { w: 800 })
|
|
229
|
+
// imageUrl(asset, { w: 800, h: 800, fit: 'cover' }) // around its focal point
|
|
225
230
|
const imageUrl = (asset, transform = {})=>{
|
|
226
231
|
const url = new URL(typeof asset === 'string' ? asset : asset.url);
|
|
227
232
|
for (const key of KEYS){
|
|
228
233
|
const value = transform[key];
|
|
229
234
|
if (value !== undefined) url.searchParams.set(key, String(value));
|
|
230
235
|
}
|
|
236
|
+
const focus = transform.focus ?? (typeof asset === 'string' ? undefined : asset.focalPoint ?? undefined);
|
|
237
|
+
if (focus && CROPS.has(transform.fit ?? '')) {
|
|
238
|
+
url.searchParams.set('focus', focus === 'auto' ? 'auto' : `${focus.x},${focus.y}`);
|
|
239
|
+
}
|
|
231
240
|
return url.toString();
|
|
232
241
|
};
|
|
233
242
|
// A `srcset` with one candidate per width.
|
|
@@ -366,6 +375,53 @@ const richTextToPlainText = (doc)=>{
|
|
|
366
375
|
return parts.join('').replace(/\n+/g, '\n').trim();
|
|
367
376
|
};
|
|
368
377
|
|
|
378
|
+
// Every locale's URL of a page, for `<link rel="alternate" hreflang>` tags
|
|
379
|
+
// and language switchers. Empty for data entries.
|
|
380
|
+
const alternateLinks = (entry, { url, defaultLocale })=>{
|
|
381
|
+
const links = Object.entries(entry.paths).map(([locale, path])=>({
|
|
382
|
+
hreflang: locale,
|
|
383
|
+
href: url(path, locale)
|
|
384
|
+
}));
|
|
385
|
+
const fallback = defaultLocale ? entry.paths[defaultLocale] : undefined;
|
|
386
|
+
if (defaultLocale && fallback !== undefined) {
|
|
387
|
+
links.push({
|
|
388
|
+
hreflang: 'x-default',
|
|
389
|
+
href: url(fallback, defaultLocale)
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
return links;
|
|
393
|
+
};
|
|
394
|
+
const escapeXml = (text)=>text.replace(/[<>&'"]/g, (char)=>({
|
|
395
|
+
'<': '<',
|
|
396
|
+
'>': '>',
|
|
397
|
+
'&': '&',
|
|
398
|
+
"'": ''',
|
|
399
|
+
'"': '"'
|
|
400
|
+
})[char]);
|
|
401
|
+
const hidden = (entry)=>entry.fields?.noIndex === true;
|
|
402
|
+
// A sitemap.xml with one `<url>` per page and locale, each listing the page
|
|
403
|
+
// in every locale (`xhtml:link`), and `lastmod` from `updatedAt`. Pages
|
|
404
|
+
// without paths (data entries) are skipped. Fetch the entries with a
|
|
405
|
+
// delivery token: drafts don't belong in a sitemap.
|
|
406
|
+
const sitemapXml = (entries, { exclude = hidden, ...options })=>{
|
|
407
|
+
const urls = [];
|
|
408
|
+
for (const entry of entries){
|
|
409
|
+
if (exclude(entry)) continue;
|
|
410
|
+
const links = alternateLinks(entry, options);
|
|
411
|
+
const alternates = links.map(({ hreflang, href })=>`<xhtml:link rel="alternate" hreflang="${escapeXml(hreflang)}" href="${escapeXml(href)}"/>`).join('');
|
|
412
|
+
for (const { hreflang, href } of links){
|
|
413
|
+
if (hreflang === 'x-default') continue;
|
|
414
|
+
urls.push(`<url><loc>${escapeXml(href)}</loc>${entry.updatedAt ? `<lastmod>${escapeXml(entry.updatedAt)}</lastmod>` : ''}${links.length > 1 ? alternates : ''}</url>`);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return [
|
|
418
|
+
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
419
|
+
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">',
|
|
420
|
+
...urls,
|
|
421
|
+
'</urlset>'
|
|
422
|
+
].join('\n');
|
|
423
|
+
};
|
|
424
|
+
|
|
369
425
|
exports.DEFAULT_URL = config.DEFAULT_URL;
|
|
370
426
|
exports.ENTRY_ATTRIBUTE = preview.ENTRY_ATTRIBUTE;
|
|
371
427
|
exports.PREVIEW_PARAMS = preview.PREVIEW_PARAMS;
|
|
@@ -376,6 +432,7 @@ exports.ContentApiError = ContentApiError;
|
|
|
376
432
|
exports.ContentClient = ContentClient;
|
|
377
433
|
exports.IMPROVE_BLOCK = IMPROVE_BLOCK;
|
|
378
434
|
exports.SAFE_HREF = SAFE_HREF;
|
|
435
|
+
exports.alternateLinks = alternateLinks;
|
|
379
436
|
exports.escapeHtml = escapeHtml;
|
|
380
437
|
exports.headingLevel = headingLevel;
|
|
381
438
|
exports.imageSrcSet = imageSrcSet;
|
|
@@ -384,3 +441,4 @@ exports.isImproveBlock = isImproveBlock;
|
|
|
384
441
|
exports.pickImproveVariant = pickImproveVariant;
|
|
385
442
|
exports.richTextToHtml = richTextToHtml;
|
|
386
443
|
exports.richTextToPlainText = richTextToPlainText;
|
|
444
|
+
exports.sitemapXml = sitemapXml;
|
package/dist/index.mjs
CHANGED
|
@@ -216,16 +216,25 @@ const KEYS = [
|
|
|
216
216
|
'format',
|
|
217
217
|
'q'
|
|
218
218
|
];
|
|
219
|
+
const CROPS = new Set([
|
|
220
|
+
'cover',
|
|
221
|
+
'crop'
|
|
222
|
+
]);
|
|
219
223
|
// An asset's URL with a resize / re-encode query. PNG, JPEG, GIF, WebP and
|
|
220
224
|
// AVIF are transformed; other files ignore the query.
|
|
221
225
|
//
|
|
222
226
|
// imageUrl(asset, { w: 800 })
|
|
227
|
+
// imageUrl(asset, { w: 800, h: 800, fit: 'cover' }) // around its focal point
|
|
223
228
|
const imageUrl = (asset, transform = {})=>{
|
|
224
229
|
const url = new URL(typeof asset === 'string' ? asset : asset.url);
|
|
225
230
|
for (const key of KEYS){
|
|
226
231
|
const value = transform[key];
|
|
227
232
|
if (value !== undefined) url.searchParams.set(key, String(value));
|
|
228
233
|
}
|
|
234
|
+
const focus = transform.focus ?? (typeof asset === 'string' ? undefined : asset.focalPoint ?? undefined);
|
|
235
|
+
if (focus && CROPS.has(transform.fit ?? '')) {
|
|
236
|
+
url.searchParams.set('focus', focus === 'auto' ? 'auto' : `${focus.x},${focus.y}`);
|
|
237
|
+
}
|
|
229
238
|
return url.toString();
|
|
230
239
|
};
|
|
231
240
|
// A `srcset` with one candidate per width.
|
|
@@ -364,4 +373,51 @@ const richTextToPlainText = (doc)=>{
|
|
|
364
373
|
return parts.join('').replace(/\n+/g, '\n').trim();
|
|
365
374
|
};
|
|
366
375
|
|
|
367
|
-
|
|
376
|
+
// Every locale's URL of a page, for `<link rel="alternate" hreflang>` tags
|
|
377
|
+
// and language switchers. Empty for data entries.
|
|
378
|
+
const alternateLinks = (entry, { url, defaultLocale })=>{
|
|
379
|
+
const links = Object.entries(entry.paths).map(([locale, path])=>({
|
|
380
|
+
hreflang: locale,
|
|
381
|
+
href: url(path, locale)
|
|
382
|
+
}));
|
|
383
|
+
const fallback = defaultLocale ? entry.paths[defaultLocale] : undefined;
|
|
384
|
+
if (defaultLocale && fallback !== undefined) {
|
|
385
|
+
links.push({
|
|
386
|
+
hreflang: 'x-default',
|
|
387
|
+
href: url(fallback, defaultLocale)
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
return links;
|
|
391
|
+
};
|
|
392
|
+
const escapeXml = (text)=>text.replace(/[<>&'"]/g, (char)=>({
|
|
393
|
+
'<': '<',
|
|
394
|
+
'>': '>',
|
|
395
|
+
'&': '&',
|
|
396
|
+
"'": ''',
|
|
397
|
+
'"': '"'
|
|
398
|
+
})[char]);
|
|
399
|
+
const hidden = (entry)=>entry.fields?.noIndex === true;
|
|
400
|
+
// A sitemap.xml with one `<url>` per page and locale, each listing the page
|
|
401
|
+
// in every locale (`xhtml:link`), and `lastmod` from `updatedAt`. Pages
|
|
402
|
+
// without paths (data entries) are skipped. Fetch the entries with a
|
|
403
|
+
// delivery token: drafts don't belong in a sitemap.
|
|
404
|
+
const sitemapXml = (entries, { exclude = hidden, ...options })=>{
|
|
405
|
+
const urls = [];
|
|
406
|
+
for (const entry of entries){
|
|
407
|
+
if (exclude(entry)) continue;
|
|
408
|
+
const links = alternateLinks(entry, options);
|
|
409
|
+
const alternates = links.map(({ hreflang, href })=>`<xhtml:link rel="alternate" hreflang="${escapeXml(hreflang)}" href="${escapeXml(href)}"/>`).join('');
|
|
410
|
+
for (const { hreflang, href } of links){
|
|
411
|
+
if (hreflang === 'x-default') continue;
|
|
412
|
+
urls.push(`<url><loc>${escapeXml(href)}</loc>${entry.updatedAt ? `<lastmod>${escapeXml(entry.updatedAt)}</lastmod>` : ''}${links.length > 1 ? alternates : ''}</url>`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return [
|
|
416
|
+
'<?xml version="1.0" encoding="UTF-8"?>',
|
|
417
|
+
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">',
|
|
418
|
+
...urls,
|
|
419
|
+
'</urlset>'
|
|
420
|
+
].join('\n');
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
export { ContentApiError, ContentClient, DEFAULT_URL, IMPROVE_BLOCK, SAFE_HREF, alternateLinks, escapeHtml, headingLevel, imageSrcSet, imageUrl, isImproveBlock, pickImproveVariant, richTextToHtml, richTextToPlainText, sitemapXml };
|
|
@@ -10,6 +10,10 @@ type Asset = {
|
|
|
10
10
|
height: number | null;
|
|
11
11
|
title: string | Record<string, string> | null;
|
|
12
12
|
alt: string | Record<string, string> | null;
|
|
13
|
+
focalPoint: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
} | null;
|
|
13
17
|
};
|
|
14
18
|
type Entry<TFields extends Record<string, unknown> = Record<string, unknown>, TContentType extends string = string> = {
|
|
15
19
|
id: string;
|
|
@@ -134,4 +138,4 @@ type ModelFile = {
|
|
|
134
138
|
};
|
|
135
139
|
|
|
136
140
|
export type { Asset as A, Block as B, ContentTypeDefinition as C, Entry as E, FieldDefinition as F, ImproveBlock as I, ModelFile as M, RichTextFormat as R, RedirectList as a, Redirect as b, EntryList as c, EntryStub as d, RichTextNode as e, ContentTypeKind as f, Environment as g, FieldType as h, RichTextDocument as i, RichTextMark as j };
|
|
137
|
-
//# sourceMappingURL=types-
|
|
141
|
+
//# sourceMappingURL=types-gc2dwaqa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-gc2dwaqa.d.ts","sources":["../src/types.ts"],"mappings":"AAAA,KAAK,WAAW;AAChB,KAAK,cAAc;AACnB,KAAK,KAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK,KAAK,iBAAiB,MAAM,oBAAoB,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS;AACd;AACA;AACA;AACA,KAAK,KAAK,iBAAiB,MAAM,oBAAoB,MAAM;AAC3D;AACA;AACA;AACA,KAAK,YAAY,gBAAgB,KAAK,GAAG,KAAK,IAAI,KAAK;AACvD;AACA;AACA,cAAc,MAAM;AACpB;AACA,KAAK,YAAY;AACjB;AACA,YAAY,MAAM;AAClB;AACA,KAAK,YAAY;AACjB;AACA,YAAY,MAAM;AAClB,cAAc,YAAY;AAC1B;AACA,YAAY,YAAY;AACxB;AACA,KAAK,gBAAgB,GAAG,YAAY;AACpC;AACA;AACA,KAAK,SAAS,gBAAgB,KAAK,GAAG,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK,QAAQ;AACb;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB,KAAK,SAAS;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,GAAG,eAAe;AAChC,KAAK,qBAAqB;AAC1B;AACA;AACA,UAAU,eAAe;AACzB;AACA,YAAY,eAAe;AAC3B;AACA,KAAK,SAAS;AACd;AACA;AACA,kBAAkB,qBAAqB;AACvC;;","names":[]}
|
package/dist/webhooks.d.mts
CHANGED
|
@@ -45,8 +45,19 @@ type LocalesChangedEvent = WebhookEventOf<'locales.changed', {
|
|
|
45
45
|
defaultLocale: string;
|
|
46
46
|
locales: string[];
|
|
47
47
|
}>;
|
|
48
|
+
type EntryReviewRequestedEvent = WebhookEventOf<'entry.review_requested', {
|
|
49
|
+
entry: WebhookEntry;
|
|
50
|
+
revision: number;
|
|
51
|
+
note: string | null;
|
|
52
|
+
}>;
|
|
53
|
+
type EntryReviewClosedEvent = WebhookEventOf<'entry.review_closed', {
|
|
54
|
+
entry: WebhookEntry;
|
|
55
|
+
outcome: 'approved' | 'sent_back';
|
|
56
|
+
revision: number;
|
|
57
|
+
reason?: string;
|
|
58
|
+
}>;
|
|
48
59
|
type WebhookTestEvent = WebhookEventOf<'webhook.test', Record<string, never>>;
|
|
49
|
-
type WebhookEvent = EntryPublishedEvent | EntryUnpublishedEvent | EntryDeletedEvent | EntryMovedEvent | AssetUpdatedEvent | ModelChangedEvent | LocalesChangedEvent | WebhookTestEvent;
|
|
60
|
+
type WebhookEvent = EntryPublishedEvent | EntryUnpublishedEvent | EntryDeletedEvent | EntryMovedEvent | AssetUpdatedEvent | ModelChangedEvent | LocalesChangedEvent | EntryReviewRequestedEvent | EntryReviewClosedEvent | WebhookTestEvent;
|
|
50
61
|
type WebhookEventType = WebhookEvent['type'];
|
|
51
62
|
declare class WebhookVerificationError extends Error {
|
|
52
63
|
constructor(message: string);
|
|
@@ -70,5 +81,5 @@ type WebhookHandlerOptions = {
|
|
|
70
81
|
declare const createWebhookHandler: ({ secret, onEvent, tolerance }: WebhookHandlerOptions) => (request: Request) => Promise<Response>;
|
|
71
82
|
|
|
72
83
|
export { WebhookVerificationError, createWebhookHandler, verifyWebhook };
|
|
73
|
-
export type { AssetUpdatedEvent, EntryDeletedEvent, EntryMovedEvent, EntryPublishedEvent, EntryUnpublishedEvent, LocalesChangedEvent, ModelChangedEvent, VerifyWebhookOptions, WebhookEntry, WebhookEvent, WebhookEventType, WebhookHandlerOptions, WebhookMessage, WebhookTestEvent };
|
|
84
|
+
export type { AssetUpdatedEvent, EntryDeletedEvent, EntryMovedEvent, EntryPublishedEvent, EntryReviewClosedEvent, EntryReviewRequestedEvent, EntryUnpublishedEvent, LocalesChangedEvent, ModelChangedEvent, VerifyWebhookOptions, WebhookEntry, WebhookEvent, WebhookEventType, WebhookHandlerOptions, WebhookMessage, WebhookTestEvent };
|
|
74
85
|
//# sourceMappingURL=webhooks.d.mts.map
|
package/dist/webhooks.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.d.mts","sources":["../src/webhooks.ts"],"mappings":";;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC,WAAW,YAAY;AACvB;AACA,KAAK,qBAAqB,GAAG,cAAc;AAC3C,WAAW,YAAY;AACvB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC,WAAW,YAAY;AACvB;AACA,KAAK,eAAe,GAAG,cAAc;AACrC,WAAW,YAAY;AACvB;AACA,mBAAmB,MAAM;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC;AACA;AACA;AACA,KAAK,gBAAgB,GAAG,cAAc,iBAAiB,MAAM;AAC7D,KAAK,YAAY,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"webhooks.d.mts","sources":["../src/webhooks.ts"],"mappings":";;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC,WAAW,YAAY;AACvB;AACA,KAAK,qBAAqB,GAAG,cAAc;AAC3C,WAAW,YAAY;AACvB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC,WAAW,YAAY;AACvB;AACA,KAAK,eAAe,GAAG,cAAc;AACrC,WAAW,YAAY;AACvB;AACA,mBAAmB,MAAM;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC;AACA;AACA;AACA,KAAK,yBAAyB,GAAG,cAAc;AAC/C,WAAW,YAAY;AACvB;AACA;AACA;AACA,KAAK,sBAAsB,GAAG,cAAc;AAC5C,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,KAAK,gBAAgB,GAAG,cAAc,iBAAiB,MAAM;AAC7D,KAAK,YAAY,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,gBAAgB;AAC3O,KAAK,gBAAgB,GAAG,YAAY;AACpC,cAAc,wBAAwB,SAAS,KAAK;AACpD;AACA;AACA,KAAK,cAAc;AACnB;AACA,aAAa,OAAO,GAAG,MAAM,0CAA0C,QAAQ;AAC/E;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA,cAAc,aAAa,YAAY,OAAO,GAAG,cAAc,wCAAwC,oBAAoB,KAAK,OAAO,CAAC,YAAY;AACpJ,KAAK,qBAAqB;AAC1B;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA,cAAc,oBAAoB,mCAAmC,qBAAqB,eAAe,OAAO,KAAK,OAAO,CAAC,QAAQ","names":[]}
|
package/dist/webhooks.d.ts
CHANGED
|
@@ -45,8 +45,19 @@ type LocalesChangedEvent = WebhookEventOf<'locales.changed', {
|
|
|
45
45
|
defaultLocale: string;
|
|
46
46
|
locales: string[];
|
|
47
47
|
}>;
|
|
48
|
+
type EntryReviewRequestedEvent = WebhookEventOf<'entry.review_requested', {
|
|
49
|
+
entry: WebhookEntry;
|
|
50
|
+
revision: number;
|
|
51
|
+
note: string | null;
|
|
52
|
+
}>;
|
|
53
|
+
type EntryReviewClosedEvent = WebhookEventOf<'entry.review_closed', {
|
|
54
|
+
entry: WebhookEntry;
|
|
55
|
+
outcome: 'approved' | 'sent_back';
|
|
56
|
+
revision: number;
|
|
57
|
+
reason?: string;
|
|
58
|
+
}>;
|
|
48
59
|
type WebhookTestEvent = WebhookEventOf<'webhook.test', Record<string, never>>;
|
|
49
|
-
type WebhookEvent = EntryPublishedEvent | EntryUnpublishedEvent | EntryDeletedEvent | EntryMovedEvent | AssetUpdatedEvent | ModelChangedEvent | LocalesChangedEvent | WebhookTestEvent;
|
|
60
|
+
type WebhookEvent = EntryPublishedEvent | EntryUnpublishedEvent | EntryDeletedEvent | EntryMovedEvent | AssetUpdatedEvent | ModelChangedEvent | LocalesChangedEvent | EntryReviewRequestedEvent | EntryReviewClosedEvent | WebhookTestEvent;
|
|
50
61
|
type WebhookEventType = WebhookEvent['type'];
|
|
51
62
|
declare class WebhookVerificationError extends Error {
|
|
52
63
|
constructor(message: string);
|
|
@@ -70,5 +81,5 @@ type WebhookHandlerOptions = {
|
|
|
70
81
|
declare const createWebhookHandler: ({ secret, onEvent, tolerance }: WebhookHandlerOptions) => (request: Request) => Promise<Response>;
|
|
71
82
|
|
|
72
83
|
export { WebhookVerificationError, createWebhookHandler, verifyWebhook };
|
|
73
|
-
export type { AssetUpdatedEvent, EntryDeletedEvent, EntryMovedEvent, EntryPublishedEvent, EntryUnpublishedEvent, LocalesChangedEvent, ModelChangedEvent, VerifyWebhookOptions, WebhookEntry, WebhookEvent, WebhookEventType, WebhookHandlerOptions, WebhookMessage, WebhookTestEvent };
|
|
84
|
+
export type { AssetUpdatedEvent, EntryDeletedEvent, EntryMovedEvent, EntryPublishedEvent, EntryReviewClosedEvent, EntryReviewRequestedEvent, EntryUnpublishedEvent, LocalesChangedEvent, ModelChangedEvent, VerifyWebhookOptions, WebhookEntry, WebhookEvent, WebhookEventType, WebhookHandlerOptions, WebhookMessage, WebhookTestEvent };
|
|
74
85
|
//# sourceMappingURL=webhooks.d.ts.map
|
package/dist/webhooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.d.ts","sources":["../src/webhooks.ts"],"mappings":";;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC,WAAW,YAAY;AACvB;AACA,KAAK,qBAAqB,GAAG,cAAc;AAC3C,WAAW,YAAY;AACvB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC,WAAW,YAAY;AACvB;AACA,KAAK,eAAe,GAAG,cAAc;AACrC,WAAW,YAAY;AACvB;AACA,mBAAmB,MAAM;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC;AACA;AACA;AACA,KAAK,gBAAgB,GAAG,cAAc,iBAAiB,MAAM;AAC7D,KAAK,YAAY,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sources":["../src/webhooks.ts"],"mappings":";;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC,WAAW,YAAY;AACvB;AACA,KAAK,qBAAqB,GAAG,cAAc;AAC3C,WAAW,YAAY;AACvB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC,WAAW,YAAY;AACvB;AACA,KAAK,eAAe,GAAG,cAAc;AACrC,WAAW,YAAY;AACvB;AACA,mBAAmB,MAAM;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA,KAAK,iBAAiB,GAAG,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB,GAAG,cAAc;AACzC;AACA;AACA;AACA,KAAK,yBAAyB,GAAG,cAAc;AAC/C,WAAW,YAAY;AACvB;AACA;AACA;AACA,KAAK,sBAAsB,GAAG,cAAc;AAC5C,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,KAAK,gBAAgB,GAAG,cAAc,iBAAiB,MAAM;AAC7D,KAAK,YAAY,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,gBAAgB;AAC3O,KAAK,gBAAgB,GAAG,YAAY;AACpC,cAAc,wBAAwB,SAAS,KAAK;AACpD;AACA;AACA,KAAK,cAAc;AACnB;AACA,aAAa,OAAO,GAAG,MAAM,0CAA0C,QAAQ;AAC/E;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA,cAAc,aAAa,YAAY,OAAO,GAAG,cAAc,wCAAwC,oBAAoB,KAAK,OAAO,CAAC,YAAY;AACpJ,KAAK,qBAAqB;AAC1B;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA,cAAc,oBAAoB,mCAAmC,qBAAqB,eAAe,OAAO,KAAK,OAAO,CAAC,QAAQ","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@obelism/content",
|
|
3
3
|
"description": "Obelism Content SDK: the delivery API client, the visual editor bridge with prompt editing, editing on your own site, webhook verification, and the content model CLI",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.10.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms",
|
|
7
7
|
"headless-cms",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"author": "Obelism <hello@obelism.studio> (https://www.obelism.studio)",
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "https://github.com/Obelism/
|
|
16
|
+
"url": "https://github.com/Obelism/sdk",
|
|
17
|
+
"directory": "packages/content"
|
|
17
18
|
},
|
|
18
19
|
"sideEffects": false,
|
|
19
20
|
"files": [
|
|
@@ -86,7 +87,7 @@
|
|
|
86
87
|
"clean": "rm -rf ./node_modules && rm -rf ./dist && rm -rf ./.turbo"
|
|
87
88
|
},
|
|
88
89
|
"devDependencies": {
|
|
89
|
-
"@obelism/
|
|
90
|
+
"@obelism/sdk-typescript-config": "^0.0.0",
|
|
90
91
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
91
92
|
"@types/node": "^24.0.0",
|
|
92
93
|
"@typescript/typescript6": "^6.0.2",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-2evub96q.d.ts","sources":["../src/types.ts"],"mappings":"AAAA,KAAK,WAAW;AAChB,KAAK,cAAc;AACnB,KAAK,KAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B,kBAAkB,MAAM;AACxB;AACA,KAAK,KAAK,iBAAiB,MAAM,oBAAoB,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS;AACd;AACA;AACA;AACA,KAAK,KAAK,iBAAiB,MAAM,oBAAoB,MAAM;AAC3D;AACA;AACA;AACA,KAAK,YAAY,gBAAgB,KAAK,GAAG,KAAK,IAAI,KAAK;AACvD;AACA;AACA,cAAc,MAAM;AACpB;AACA,KAAK,YAAY;AACjB;AACA,YAAY,MAAM;AAClB;AACA,KAAK,YAAY;AACjB;AACA,YAAY,MAAM;AAClB,cAAc,YAAY;AAC1B;AACA,YAAY,YAAY;AACxB;AACA,KAAK,gBAAgB,GAAG,YAAY;AACpC;AACA;AACA,KAAK,SAAS,gBAAgB,KAAK,GAAG,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK,QAAQ;AACb;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB,KAAK,SAAS;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,GAAG,eAAe;AAChC,KAAK,qBAAqB;AAC1B;AACA;AACA,UAAU,eAAe;AACzB;AACA,YAAY,eAAe;AAC3B;AACA,KAAK,SAAS;AACd;AACA;AACA,kBAAkB,qBAAqB;AACvC;;","names":[]}
|