@craftware/crafty-sdk 0.2.2 → 0.4.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 +75 -0
- package/dist/attrs.d.ts +42 -0
- package/dist/attrs.d.ts.map +1 -0
- package/dist/attrs.js +60 -0
- package/dist/attrs.js.map +1 -0
- package/dist/cdn.d.ts +5 -0
- package/dist/cdn.d.ts.map +1 -0
- package/dist/cdn.js +5 -0
- package/dist/cdn.js.map +1 -0
- package/dist/client.d.ts +12 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +13 -8
- package/dist/client.js.map +1 -1
- package/dist/crafty-visual-editing.global.js +4 -0
- package/dist/crafty-visual-editing.global.js.map +7 -0
- package/dist/http.d.ts +7 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +32 -2
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/preview.d.ts +56 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +174 -0
- package/dist/preview.js.map +1 -0
- package/dist/resources/collections.d.ts +2 -2
- package/dist/resources/collections.d.ts.map +1 -1
- package/dist/resources/entries.d.ts +3 -2
- package/dist/resources/entries.d.ts.map +1 -1
- package/dist/resources/entries.js +20 -4
- package/dist/resources/entries.js.map +1 -1
- package/dist/resources/forms.d.ts +2 -2
- package/dist/resources/forms.d.ts.map +1 -1
- package/dist/resources/forms.js +1 -1
- package/dist/resources/forms.js.map +1 -1
- package/dist/resources/mediaCollections.d.ts +2 -2
- package/dist/resources/mediaCollections.d.ts.map +1 -1
- package/dist/resources/mediaFiles.d.ts +2 -2
- package/dist/resources/mediaFiles.d.ts.map +1 -1
- package/dist/resources/pages.d.ts +2 -2
- package/dist/resources/pages.d.ts.map +1 -1
- package/dist/resources/pages.js +4 -0
- package/dist/resources/pages.js.map +1 -1
- package/dist/types/public.d.ts +11 -2
- package/dist/types/public.d.ts.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/dist/visual-editing/bridge.d.ts +35 -0
- package/dist/visual-editing/bridge.d.ts.map +1 -0
- package/dist/visual-editing/bridge.js +446 -0
- package/dist/visual-editing/bridge.js.map +1 -0
- package/dist/visual-editing/index.d.ts +10 -0
- package/dist/visual-editing/index.d.ts.map +1 -0
- package/dist/visual-editing/index.js +10 -0
- package/dist/visual-editing/index.js.map +1 -0
- package/dist/visual-editing/live-preview.d.ts +15 -0
- package/dist/visual-editing/live-preview.d.ts.map +1 -0
- package/dist/visual-editing/live-preview.js +63 -0
- package/dist/visual-editing/live-preview.js.map +1 -0
- package/dist/visual-editing/markers.d.ts +11 -0
- package/dist/visual-editing/markers.d.ts.map +1 -0
- package/dist/visual-editing/markers.js +44 -0
- package/dist/visual-editing/markers.js.map +1 -0
- package/dist/visual-editing/origin.d.ts +10 -0
- package/dist/visual-editing/origin.d.ts.map +1 -0
- package/dist/visual-editing/origin.js +37 -0
- package/dist/visual-editing/origin.js.map +1 -0
- package/dist/visual-editing/overlay.d.ts +13 -0
- package/dist/visual-editing/overlay.d.ts.map +1 -0
- package/dist/visual-editing/overlay.js +107 -0
- package/dist/visual-editing/overlay.js.map +1 -0
- package/dist/visual-editing/protocol.d.ts +83 -0
- package/dist/visual-editing/protocol.d.ts.map +1 -0
- package/dist/visual-editing/protocol.js +170 -0
- package/dist/visual-editing/protocol.js.map +1 -0
- package/package.json +13 -4
- package/skills/crafty-cms/SKILL.md +15 -1
- package/skills/crafty-cms/references/mcp-configuration.md +7 -0
- package/skills/crafty-cms/references/sdk-development.md +13 -1
- package/skills/crafty-cms/references/visual-editor.md +297 -0
package/dist/http.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { CraftyError, mapStatusToErrorCode } from "./errors";
|
|
1
|
+
import { CraftyError, mapStatusToErrorCode } from "./errors.js";
|
|
2
|
+
import { PREVIEW_HEADER, PREVIEW_STATUS_HEADER, discardPreviewToken, notifyPreviewActive, notifyPreviewInvalid, readPreviewToken } from "./preview.js";
|
|
2
3
|
export class HttpClient {
|
|
3
4
|
apiBaseUrl;
|
|
4
5
|
fetchImpl;
|
|
@@ -6,6 +7,8 @@ export class HttpClient {
|
|
|
6
7
|
apiKey;
|
|
7
8
|
siteSlug;
|
|
8
9
|
defaultTimeoutMs;
|
|
10
|
+
preview;
|
|
11
|
+
onPreviewInvalid;
|
|
9
12
|
constructor(config) {
|
|
10
13
|
this.apiBaseUrl = config.apiBaseUrl;
|
|
11
14
|
this.fetchImpl = config.fetchImpl;
|
|
@@ -13,6 +16,8 @@ export class HttpClient {
|
|
|
13
16
|
this.apiKey = config.apiKey;
|
|
14
17
|
this.siteSlug = config.siteSlug;
|
|
15
18
|
this.defaultTimeoutMs = config.timeoutMs;
|
|
19
|
+
this.preview = config.preview;
|
|
20
|
+
this.onPreviewInvalid = config.onPreviewInvalid;
|
|
16
21
|
}
|
|
17
22
|
static fromClientConfig(config) {
|
|
18
23
|
const fetchImpl = config.fetch ?? getBoundGlobalFetch();
|
|
@@ -32,12 +37,24 @@ export class HttpClient {
|
|
|
32
37
|
defaultHeaders: config.headers,
|
|
33
38
|
apiKey: config.apiKey,
|
|
34
39
|
siteSlug: config.siteSlug,
|
|
35
|
-
timeoutMs: config.timeoutMs
|
|
40
|
+
timeoutMs: config.timeoutMs,
|
|
41
|
+
preview: config.preview,
|
|
42
|
+
onPreviewInvalid: config.onPreviewInvalid
|
|
36
43
|
});
|
|
37
44
|
}
|
|
38
45
|
getSiteSlug() {
|
|
39
46
|
return this.siteSlug;
|
|
40
47
|
}
|
|
48
|
+
/** Token to send as `X-Crafty-Preview`, or null when not previewing. */
|
|
49
|
+
previewToken() {
|
|
50
|
+
if (this.preview === false) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
if (typeof this.preview === "string" && this.preview.trim() !== "") {
|
|
54
|
+
return this.preview.trim();
|
|
55
|
+
}
|
|
56
|
+
return readPreviewToken();
|
|
57
|
+
}
|
|
41
58
|
async get(path, options) {
|
|
42
59
|
return this.request(path, { ...options, method: "GET" });
|
|
43
60
|
}
|
|
@@ -68,6 +85,10 @@ export class HttpClient {
|
|
|
68
85
|
if (options.body !== undefined && !headers.has("Content-Type")) {
|
|
69
86
|
headers.set("Content-Type", "application/json");
|
|
70
87
|
}
|
|
88
|
+
const previewToken = this.previewToken();
|
|
89
|
+
if (previewToken !== null && !headers.has(PREVIEW_HEADER)) {
|
|
90
|
+
headers.set(PREVIEW_HEADER, previewToken);
|
|
91
|
+
}
|
|
71
92
|
const timeoutMs = options.timeoutMs ?? this.defaultTimeoutMs;
|
|
72
93
|
const timeoutController = typeof timeoutMs === "number" && timeoutMs > 0
|
|
73
94
|
? new AbortController()
|
|
@@ -87,6 +108,15 @@ export class HttpClient {
|
|
|
87
108
|
fetchInit.body = JSON.stringify(options.body);
|
|
88
109
|
}
|
|
89
110
|
const response = await this.fetchImpl(url, fetchInit);
|
|
111
|
+
const previewStatus = previewToken !== null ? response.headers.get(PREVIEW_STATUS_HEADER) : null;
|
|
112
|
+
if (previewStatus === "invalid" && previewToken !== null) {
|
|
113
|
+
discardPreviewToken(previewToken);
|
|
114
|
+
this.onPreviewInvalid?.();
|
|
115
|
+
notifyPreviewInvalid();
|
|
116
|
+
}
|
|
117
|
+
else if (previewStatus === "active") {
|
|
118
|
+
notifyPreviewActive();
|
|
119
|
+
}
|
|
90
120
|
const payload = await parseResponsePayload(response);
|
|
91
121
|
if (!response.ok) {
|
|
92
122
|
const requestId = response.headers.get("x-request-id") ?? undefined;
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
export { createCraftyClient } from "./client";
|
|
2
|
-
export type { CraftyClient } from "./client";
|
|
3
|
-
export { CraftyError } from "./errors";
|
|
4
|
-
export type { CraftyErrorCode } from "./errors";
|
|
5
|
-
export
|
|
6
|
-
export type
|
|
1
|
+
export { createCraftyClient } from "./client.js";
|
|
2
|
+
export type { CraftyClient } from "./client.js";
|
|
3
|
+
export { CraftyError } from "./errors.js";
|
|
4
|
+
export type { CraftyErrorCode } from "./errors.js";
|
|
5
|
+
export { attrs, attrsHtml } from "./attrs.js";
|
|
6
|
+
export type { CraftyAttrsOptions, CraftyEditAttributes, CraftyEditTarget, CraftyEditTargetType } from "./attrs.js";
|
|
7
|
+
export { PREVIEW_HEADER, PREVIEW_INVALID_EVENT, PREVIEW_QUERY_PARAM, PREVIEW_STATUS_HEADER, clearPreviewToken, previewFromRequest, readPreviewToken, storePreviewToken } from "./preview.js";
|
|
8
|
+
export type { PreviewContent, PreviewEntry, PreviewPage, PreviewRequestLike } from "./preview.js";
|
|
9
|
+
export type * from "./types/public.js";
|
|
10
|
+
export type * from "./types/blocks.js";
|
|
7
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":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEnH,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElG,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export { createCraftyClient } from "./client";
|
|
2
|
-
export { CraftyError } from "./errors";
|
|
1
|
+
export { createCraftyClient } from "./client.js";
|
|
2
|
+
export { CraftyError } from "./errors.js";
|
|
3
|
+
export { attrs, attrsHtml } from "./attrs.js";
|
|
4
|
+
export { PREVIEW_HEADER, PREVIEW_INVALID_EVENT, PREVIEW_QUERY_PARAM, PREVIEW_STATUS_HEADER, clearPreviewToken, previewFromRequest, readPreviewToken, storePreviewToken } from "./preview.js";
|
|
3
5
|
//# 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,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const PREVIEW_QUERY_PARAM = "crafty_preview";
|
|
2
|
+
export declare const PREVIEW_HEADER = "X-Crafty-Preview";
|
|
3
|
+
export declare const PREVIEW_STATUS_HEADER = "X-Crafty-Preview-Status";
|
|
4
|
+
export declare const PREVIEW_INVALID_EVENT = "crafty:preview-invalid";
|
|
5
|
+
export declare const PREVIEW_CONTENT_EVENT = "crafty:preview-content";
|
|
6
|
+
export declare const PREVIEW_ACTIVE_EVENT = "crafty:preview-active";
|
|
7
|
+
export type PreviewPage = {
|
|
8
|
+
id: number;
|
|
9
|
+
slug: string;
|
|
10
|
+
};
|
|
11
|
+
export type PreviewEntry = {
|
|
12
|
+
id: number;
|
|
13
|
+
collection: string;
|
|
14
|
+
};
|
|
15
|
+
export type PreviewContent = {
|
|
16
|
+
page: PreviewPage | null;
|
|
17
|
+
entries: PreviewEntry[];
|
|
18
|
+
};
|
|
19
|
+
/** Last `X-Crafty-Preview-Status` the API answered in this window, or null before any preview request. */
|
|
20
|
+
export type PreviewStatus = "active" | "invalid";
|
|
21
|
+
/** A URL, a Web `Request`, a Node `IncomingMessage` or an Express-style request. */
|
|
22
|
+
export type PreviewRequestLike = string | URL | {
|
|
23
|
+
url?: string | undefined;
|
|
24
|
+
query?: Record<string, unknown> | undefined;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Preview token for browser requests. A token the URL brings for the first time
|
|
28
|
+
* wins; afterwards the stored token wins, so a renewal received over
|
|
29
|
+
* `postMessage` is not overwritten by the stale token still in the URL.
|
|
30
|
+
*/
|
|
31
|
+
export declare function readPreviewToken(): string | null;
|
|
32
|
+
/**
|
|
33
|
+
* Forgets a browser token the API reported invalid, so later requests stop
|
|
34
|
+
* sending it (the stale copy in the URL included) until a new token arrives
|
|
35
|
+
* over `postMessage` or a new URL. Explicit server-side tokens are untouched.
|
|
36
|
+
*/
|
|
37
|
+
export declare function discardPreviewToken(token: string): void;
|
|
38
|
+
export declare function storePreviewToken(token: string): void;
|
|
39
|
+
export declare function clearPreviewToken(): void;
|
|
40
|
+
/** Server-side helper: the preview token of an incoming request, or null. */
|
|
41
|
+
export declare function previewFromRequest(request: PreviewRequestLike | null | undefined): string | null;
|
|
42
|
+
export declare function getPreviewContent(): PreviewContent;
|
|
43
|
+
export declare function recordPreviewContent(item: ({
|
|
44
|
+
type: "page";
|
|
45
|
+
} & PreviewPage) | ({
|
|
46
|
+
type: "entry";
|
|
47
|
+
} & PreviewEntry)): void;
|
|
48
|
+
export declare function resetPreviewContent(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Kept on `window` (like the shown content) so a separately bundled bridge, such
|
|
51
|
+
* as the `<script>` build, sees what the site's own SDK copy recorded.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getPreviewStatus(): PreviewStatus | null;
|
|
54
|
+
export declare function notifyPreviewActive(): void;
|
|
55
|
+
export declare function notifyPreviewInvalid(): void;
|
|
56
|
+
//# sourceMappingURL=preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,cAAc,qBAAqB,CAAC;AACjD,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAC9D,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAC9D,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAQ5D,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC;AACnF,0GAA0G;AAC1G,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,GAAG,GACH;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC;AA4C9E;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAmBhD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAmBvD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMrD;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAiBhG;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAKlD;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAAC,GAAG,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAAC,GAC1E,IAAI,CAiBN;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAKvD;AAUD,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}
|
package/dist/preview.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
export const PREVIEW_QUERY_PARAM = "crafty_preview";
|
|
2
|
+
export const PREVIEW_HEADER = "X-Crafty-Preview";
|
|
3
|
+
export const PREVIEW_STATUS_HEADER = "X-Crafty-Preview-Status";
|
|
4
|
+
export const PREVIEW_INVALID_EVENT = "crafty:preview-invalid";
|
|
5
|
+
export const PREVIEW_CONTENT_EVENT = "crafty:preview-content";
|
|
6
|
+
export const PREVIEW_ACTIVE_EVENT = "crafty:preview-active";
|
|
7
|
+
const TOKEN_STORAGE_KEY = "crafty:preview-token";
|
|
8
|
+
const URL_TOKEN_STORAGE_KEY = "crafty:preview-url-token";
|
|
9
|
+
const INVALID_TOKEN_STORAGE_KEY = "crafty:preview-invalid-token";
|
|
10
|
+
const CONTENT_GLOBAL_KEY = "__CRAFTY_PREVIEW_CONTENT__";
|
|
11
|
+
const STATUS_GLOBAL_KEY = "__CRAFTY_PREVIEW_STATUS__";
|
|
12
|
+
function browserWindow() {
|
|
13
|
+
return typeof window === "undefined" ? null : window;
|
|
14
|
+
}
|
|
15
|
+
function storageGet(key) {
|
|
16
|
+
try {
|
|
17
|
+
return browserWindow()?.sessionStorage.getItem(key) ?? null;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function storageSet(key, value) {
|
|
24
|
+
try {
|
|
25
|
+
browserWindow()?.sessionStorage.setItem(key, value);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Storage can be blocked (private mode, sandboxed frames); the URL token still works.
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function storageRemove(key) {
|
|
32
|
+
try {
|
|
33
|
+
browserWindow()?.sessionStorage.removeItem(key);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Ignore blocked storage.
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function normalizeToken(value) {
|
|
40
|
+
return typeof value === "string" && value.trim() !== "" ? value.trim() : null;
|
|
41
|
+
}
|
|
42
|
+
function tokenFromUrl(url) {
|
|
43
|
+
try {
|
|
44
|
+
return normalizeToken(new URL(url, "http://localhost").searchParams.get(PREVIEW_QUERY_PARAM));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Preview token for browser requests. A token the URL brings for the first time
|
|
52
|
+
* wins; afterwards the stored token wins, so a renewal received over
|
|
53
|
+
* `postMessage` is not overwritten by the stale token still in the URL.
|
|
54
|
+
*/
|
|
55
|
+
export function readPreviewToken() {
|
|
56
|
+
const win = browserWindow();
|
|
57
|
+
if (win === null) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const urlToken = tokenFromUrl(win.location.href);
|
|
61
|
+
let token;
|
|
62
|
+
if (urlToken !== null && urlToken !== storageGet(URL_TOKEN_STORAGE_KEY)) {
|
|
63
|
+
storageSet(URL_TOKEN_STORAGE_KEY, urlToken);
|
|
64
|
+
storageSet(TOKEN_STORAGE_KEY, urlToken);
|
|
65
|
+
token = urlToken;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
token = normalizeToken(storageGet(TOKEN_STORAGE_KEY)) ?? urlToken;
|
|
69
|
+
}
|
|
70
|
+
return token !== null && token === storageGet(INVALID_TOKEN_STORAGE_KEY) ? null : token;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Forgets a browser token the API reported invalid, so later requests stop
|
|
74
|
+
* sending it (the stale copy in the URL included) until a new token arrives
|
|
75
|
+
* over `postMessage` or a new URL. Explicit server-side tokens are untouched.
|
|
76
|
+
*/
|
|
77
|
+
export function discardPreviewToken(token) {
|
|
78
|
+
const win = browserWindow();
|
|
79
|
+
const normalized = normalizeToken(token);
|
|
80
|
+
if (win === null || normalized === null) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const isStored = normalizeToken(storageGet(TOKEN_STORAGE_KEY)) === normalized;
|
|
84
|
+
if (!isStored && tokenFromUrl(win.location.href) !== normalized) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (isStored) {
|
|
88
|
+
storageRemove(TOKEN_STORAGE_KEY);
|
|
89
|
+
}
|
|
90
|
+
storageSet(INVALID_TOKEN_STORAGE_KEY, normalized);
|
|
91
|
+
}
|
|
92
|
+
export function storePreviewToken(token) {
|
|
93
|
+
const normalized = normalizeToken(token);
|
|
94
|
+
if (normalized !== null) {
|
|
95
|
+
storageSet(TOKEN_STORAGE_KEY, normalized);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export function clearPreviewToken() {
|
|
99
|
+
storageRemove(TOKEN_STORAGE_KEY);
|
|
100
|
+
storageRemove(URL_TOKEN_STORAGE_KEY);
|
|
101
|
+
storageRemove(INVALID_TOKEN_STORAGE_KEY);
|
|
102
|
+
setPreviewStatus(null);
|
|
103
|
+
}
|
|
104
|
+
/** Server-side helper: the preview token of an incoming request, or null. */
|
|
105
|
+
export function previewFromRequest(request) {
|
|
106
|
+
if (request === null || request === undefined) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
if (typeof request === "string" || request instanceof URL) {
|
|
110
|
+
return tokenFromUrl(String(request));
|
|
111
|
+
}
|
|
112
|
+
const queryValue = request.query?.[PREVIEW_QUERY_PARAM];
|
|
113
|
+
const fromQuery = normalizeToken(Array.isArray(queryValue) ? queryValue[0] : queryValue);
|
|
114
|
+
if (fromQuery !== null) {
|
|
115
|
+
return fromQuery;
|
|
116
|
+
}
|
|
117
|
+
return typeof request.url === "string" ? tokenFromUrl(request.url) : null;
|
|
118
|
+
}
|
|
119
|
+
export function getPreviewContent() {
|
|
120
|
+
const win = browserWindow();
|
|
121
|
+
const content = win?.[CONTENT_GLOBAL_KEY];
|
|
122
|
+
return content ? { page: content.page, entries: [...content.entries] } : { page: null, entries: [] };
|
|
123
|
+
}
|
|
124
|
+
export function recordPreviewContent(item) {
|
|
125
|
+
const win = browserWindow();
|
|
126
|
+
if (win === null) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const content = win[CONTENT_GLOBAL_KEY] ?? { page: null, entries: [] };
|
|
130
|
+
win[CONTENT_GLOBAL_KEY] = content;
|
|
131
|
+
if (item.type === "page") {
|
|
132
|
+
content.page = { id: item.id, slug: item.slug };
|
|
133
|
+
}
|
|
134
|
+
else if (!content.entries.some((entry) => entry.id === item.id && entry.collection === item.collection)) {
|
|
135
|
+
content.entries.push({ id: item.id, collection: item.collection });
|
|
136
|
+
}
|
|
137
|
+
dispatch(PREVIEW_CONTENT_EVENT);
|
|
138
|
+
}
|
|
139
|
+
export function resetPreviewContent() {
|
|
140
|
+
const win = browserWindow();
|
|
141
|
+
if (win !== null) {
|
|
142
|
+
win[CONTENT_GLOBAL_KEY] = undefined;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Kept on `window` (like the shown content) so a separately bundled bridge, such
|
|
147
|
+
* as the `<script>` build, sees what the site's own SDK copy recorded.
|
|
148
|
+
*/
|
|
149
|
+
export function getPreviewStatus() {
|
|
150
|
+
const win = browserWindow();
|
|
151
|
+
const status = win?.[STATUS_GLOBAL_KEY];
|
|
152
|
+
return status === "active" || status === "invalid" ? status : null;
|
|
153
|
+
}
|
|
154
|
+
function setPreviewStatus(status) {
|
|
155
|
+
const win = browserWindow();
|
|
156
|
+
if (win !== null) {
|
|
157
|
+
win[STATUS_GLOBAL_KEY] = status ?? undefined;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
export function notifyPreviewActive() {
|
|
161
|
+
setPreviewStatus("active");
|
|
162
|
+
dispatch(PREVIEW_ACTIVE_EVENT);
|
|
163
|
+
}
|
|
164
|
+
export function notifyPreviewInvalid() {
|
|
165
|
+
setPreviewStatus("invalid");
|
|
166
|
+
dispatch(PREVIEW_INVALID_EVENT);
|
|
167
|
+
}
|
|
168
|
+
function dispatch(name) {
|
|
169
|
+
const win = browserWindow();
|
|
170
|
+
if (win !== null && typeof win.dispatchEvent === "function") {
|
|
171
|
+
win.dispatchEvent(new Event(name));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../src/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HttpClient } from "../http";
|
|
2
|
-
import type { CollectionListResponse, CollectionShowResponse, RequestOptions } from "../types/public";
|
|
1
|
+
import { HttpClient } from "../http.js";
|
|
2
|
+
import type { CollectionListResponse, CollectionShowResponse, RequestOptions } from "../types/public.js";
|
|
3
3
|
export declare class CollectionsResource {
|
|
4
4
|
private readonly http;
|
|
5
5
|
constructor(http: HttpClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/resources/collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../src/resources/collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzG,qBAAa,mBAAmB;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI/D,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAGpF"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { HttpClient } from "../http";
|
|
2
|
-
import type { EntriesListQuery, EntryListResponse, EntryShowResponse, RequestOptions } from "../types/public";
|
|
1
|
+
import { HttpClient } from "../http.js";
|
|
2
|
+
import type { EntriesListQuery, EntryListResponse, EntryShowResponse, RequestOptions } from "../types/public.js";
|
|
3
3
|
export declare class EntriesResource {
|
|
4
4
|
private readonly http;
|
|
5
5
|
constructor(http: HttpClient);
|
|
6
6
|
list(collectionSlug: string, query?: EntriesListQuery, options?: RequestOptions): Promise<EntryListResponse>;
|
|
7
7
|
get(collectionSlug: string, id: string | number, options?: RequestOptions): Promise<EntryShowResponse>;
|
|
8
|
+
private recordShown;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=entries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/resources/entries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/resources/entries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAEV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,eAAe;IACP,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEvC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAa5G,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWnH,OAAO,CAAC,WAAW;CAapB"}
|
|
@@ -1,14 +1,30 @@
|
|
|
1
|
+
import { recordPreviewContent } from "../preview.js";
|
|
1
2
|
export class EntriesResource {
|
|
2
3
|
http;
|
|
3
4
|
constructor(http) {
|
|
4
5
|
this.http = http;
|
|
5
6
|
}
|
|
6
|
-
list(collectionSlug, query, options) {
|
|
7
|
+
async list(collectionSlug, query, options) {
|
|
7
8
|
const requestOptions = query ? { ...options, query } : options;
|
|
8
|
-
|
|
9
|
+
const response = await this.http.get(`/collections/${encodeURIComponent(collectionSlug)}/entries`, requestOptions);
|
|
10
|
+
this.recordShown(collectionSlug, Array.isArray(response?.data) ? response.data : []);
|
|
11
|
+
return response;
|
|
9
12
|
}
|
|
10
|
-
get(collectionSlug, id, options) {
|
|
11
|
-
|
|
13
|
+
async get(collectionSlug, id, options) {
|
|
14
|
+
const response = await this.http.get(`/collections/${encodeURIComponent(collectionSlug)}/entries/${encodeURIComponent(String(id))}`, options);
|
|
15
|
+
this.recordShown(collectionSlug, response?.data ? [response.data] : []);
|
|
16
|
+
return response;
|
|
17
|
+
}
|
|
18
|
+
recordShown(collectionSlug, entries) {
|
|
19
|
+
if (this.http.previewToken() === null) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
for (const entry of entries) {
|
|
23
|
+
const id = Number(entry.id);
|
|
24
|
+
if (Number.isInteger(id) && id > 0) {
|
|
25
|
+
recordPreviewContent({ type: "entry", id, collection: collectionSlug });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
12
28
|
}
|
|
13
29
|
}
|
|
14
30
|
//# sourceMappingURL=entries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/resources/entries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/resources/entries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AASrD,MAAM,OAAO,eAAe;IACU;IAApC,YAAoC,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,KAAK,CAAC,IAAI,CAAC,cAAsB,EAAE,KAAwB,EAAE,OAAwB;QAC1F,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAE/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAClC,gBAAgB,kBAAkB,CAAC,cAAc,CAAC,UAAU,EAC5D,cAAc,CACf,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAErF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,cAAsB,EAAE,EAAmB,EAAE,OAAwB;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAClC,gBAAgB,kBAAkB,CAAC,cAAc,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAC9F,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAExE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,WAAW,CAAC,cAAsB,EAAE,OAAsB;QAChE,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAE5B,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnC,oBAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HttpClient } from "../http";
|
|
2
|
-
import type { FormListResponse, FormShowResponse, FormSubmitData, FormSubmitResponse, RequestOptions } from "../types/public";
|
|
1
|
+
import { HttpClient } from "../http.js";
|
|
2
|
+
import type { FormListResponse, FormShowResponse, FormSubmitData, FormSubmitResponse, RequestOptions } from "../types/public.js";
|
|
3
3
|
export declare class FormsResource {
|
|
4
4
|
private readonly http;
|
|
5
5
|
constructor(http: HttpClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/resources/forms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/resources/forms.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,aAAa;IACL,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzD,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAItE,MAAM,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,kBAAkB,CAAC;CAgB/B"}
|
package/dist/resources/forms.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/resources/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/resources/forms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAU3C,MAAM,OAAO,aAAa;IACY;IAApC,YAAoC,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI,CAAC,OAAwB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IAEM,MAAM,CACX,QAAgB,EAChB,IAAoB,EACpB,OAAwB;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,wDAAwD;aAClE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,UAAU,kBAAkB,CAAC,QAAQ,CAAC,UAAU,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EACrF,IAAI,EACJ,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CACjC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HttpClient } from "../http";
|
|
2
|
-
import type { MediaCollectionListResponse, MediaCollectionsListQuery, RequestOptions } from "../types/public";
|
|
1
|
+
import { HttpClient } from "../http.js";
|
|
2
|
+
import type { MediaCollectionListResponse, MediaCollectionsListQuery, RequestOptions } from "../types/public.js";
|
|
3
3
|
export declare class MediaCollectionsResource {
|
|
4
4
|
private readonly http;
|
|
5
5
|
constructor(http: HttpClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaCollections.d.ts","sourceRoot":"","sources":["../../src/resources/mediaCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mediaCollections.d.ts","sourceRoot":"","sources":["../../src/resources/mediaCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EACV,2BAA2B,EAE3B,yBAAyB,EACzB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,wBAAwB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,CAAC,KAAK,CAAC,EAAE,yBAAyB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,2BAA2B,CAAC;CAU/G"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HttpClient } from "../http";
|
|
2
|
-
import type { MediaFileListResponse, MediaFilesListQuery, RequestOptions } from "../types/public";
|
|
1
|
+
import { HttpClient } from "../http.js";
|
|
2
|
+
import type { MediaFileListResponse, MediaFilesListQuery, RequestOptions } from "../types/public.js";
|
|
3
3
|
export declare class MediaFilesResource {
|
|
4
4
|
private readonly http;
|
|
5
5
|
constructor(http: HttpClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaFiles.d.ts","sourceRoot":"","sources":["../../src/resources/mediaFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mediaFiles.d.ts","sourceRoot":"","sources":["../../src/resources/mediaFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAErG,qBAAa,kBAAkB;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAKnG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HttpClient } from "../http";
|
|
2
|
-
import type { PageListResponse, PageShowResponse, PagesListQuery, RequestOptions } from "../types/public";
|
|
1
|
+
import { HttpClient } from "../http.js";
|
|
2
|
+
import type { PageListResponse, PageShowResponse, PagesListQuery, RequestOptions } from "../types/public.js";
|
|
3
3
|
export declare class PagesResource {
|
|
4
4
|
private readonly http;
|
|
5
5
|
constructor(http: HttpClient);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/resources/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/resources/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EAGV,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EAEd,cAAc,EACf,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,aAAa;IACL,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM3E,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAUvF,OAAO,CAAC,kBAAkB;CAmC3B"}
|
package/dist/resources/pages.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { recordPreviewContent } from "../preview.js";
|
|
1
2
|
export class PagesResource {
|
|
2
3
|
http;
|
|
3
4
|
constructor(http) {
|
|
@@ -9,6 +10,9 @@ export class PagesResource {
|
|
|
9
10
|
}
|
|
10
11
|
async get(pageSlug, options) {
|
|
11
12
|
const response = await this.http.get(`/pages/${encodeURIComponent(pageSlug)}`, options);
|
|
13
|
+
if (this.http.previewToken() !== null && response?.data) {
|
|
14
|
+
recordPreviewContent({ type: "page", id: response.data.id, slug: response.data.slug });
|
|
15
|
+
}
|
|
12
16
|
return this.enrichPageResponse(response);
|
|
13
17
|
}
|
|
14
18
|
enrichPageResponse(response) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/resources/pages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/resources/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAWrD,MAAM,OAAO,aAAa;IACY;IAApC,YAAoC,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI,CAAC,KAAsB,EAAE,OAAwB;QAC1D,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAE/D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,OAAwB;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,UAAU,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEpH,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC;YACxD,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEO,kBAAkB,CAAC,QAAoC;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAkC,EAAE,CAAC;QACjD,MAAM,WAAW,GAAuC,EAAE,CAAC;QAE3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;QAC9B,CAAC;QAED,OAAO;YACL,GAAG,QAAQ;YACX,MAAM;YACN,MAAM;YACN,WAAW;YACX,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI;YAClD,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9C,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAC3D,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;gBAExC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/types/public.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CraftyBlock } from "./blocks";
|
|
2
|
-
export type { CraftyBlock, CraftyBlockTypeSummary, CraftyReferenceItem } from "./blocks";
|
|
1
|
+
import type { CraftyBlock } from "./blocks.js";
|
|
2
|
+
export type { CraftyBlock, CraftyBlockTypeSummary, CraftyReferenceItem } from "./blocks.js";
|
|
3
3
|
export type CraftyFieldDefinition = Record<string, unknown>;
|
|
4
4
|
export type CraftyCollection = {
|
|
5
5
|
id: number;
|
|
@@ -186,6 +186,15 @@ export type CraftyClientConfig = {
|
|
|
186
186
|
fetch?: typeof fetch;
|
|
187
187
|
headers?: HeadersInit;
|
|
188
188
|
timeoutMs?: number;
|
|
189
|
+
/**
|
|
190
|
+
* Visual editor preview token sent as `X-Crafty-Preview`.
|
|
191
|
+
* - string: explicit token (SSR, from `previewFromRequest(req)`);
|
|
192
|
+
* - false: never send one;
|
|
193
|
+
* - null/omitted: read it in the browser (`?crafty_preview=` then sessionStorage).
|
|
194
|
+
*/
|
|
195
|
+
preview?: string | false | null;
|
|
196
|
+
/** Called when the API answers `X-Crafty-Preview-Status: invalid` to a request that carried a token. */
|
|
197
|
+
onPreviewInvalid?: () => void;
|
|
189
198
|
};
|
|
190
199
|
export type RequestOptions = {
|
|
191
200
|
signal?: AbortSignal;
|