@craftware/crafty-sdk 0.5.2 → 0.8.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.
Files changed (43) hide show
  1. package/README.md +70 -3
  2. package/dist/client.d.ts +7 -0
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +7 -0
  5. package/dist/client.js.map +1 -1
  6. package/dist/crafty-visual-editing.global.js +1 -1
  7. package/dist/crafty-visual-editing.global.js.map +1 -1
  8. package/dist/http.d.ts +8 -1
  9. package/dist/http.d.ts.map +1 -1
  10. package/dist/http.js +50 -11
  11. package/dist/http.js.map +1 -1
  12. package/dist/image.d.ts +27 -0
  13. package/dist/image.d.ts.map +1 -0
  14. package/dist/image.js +110 -0
  15. package/dist/image.js.map +1 -0
  16. package/dist/index.d.ts +5 -0
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/resources/analytics.d.ts +30 -0
  21. package/dist/resources/analytics.d.ts.map +1 -0
  22. package/dist/resources/analytics.js +76 -0
  23. package/dist/resources/analytics.js.map +1 -0
  24. package/dist/resources/assistant.d.ts +30 -0
  25. package/dist/resources/assistant.d.ts.map +1 -0
  26. package/dist/resources/assistant.js +51 -0
  27. package/dist/resources/assistant.js.map +1 -0
  28. package/dist/resources/entries.js +2 -2
  29. package/dist/resources/entries.js.map +1 -1
  30. package/dist/resources/forms.d.ts.map +1 -1
  31. package/dist/resources/forms.js +4 -4
  32. package/dist/resources/forms.js.map +1 -1
  33. package/dist/resources/pages.js +2 -2
  34. package/dist/resources/pages.js.map +1 -1
  35. package/dist/types/public.d.ts +146 -2
  36. package/dist/types/public.d.ts.map +1 -1
  37. package/dist/version.d.ts +1 -1
  38. package/dist/version.js +1 -1
  39. package/package.json +2 -2
  40. package/skills/crafty-cms/SKILL.md +66 -11
  41. package/skills/crafty-cms/references/mcp-configuration.md +33 -14
  42. package/skills/crafty-cms/references/migrate-to-crafty.md +85 -0
  43. package/skills/crafty-cms/references/sdk-development.md +80 -6
package/dist/http.js CHANGED
@@ -9,6 +9,7 @@ export class HttpClient {
9
9
  defaultTimeoutMs;
10
10
  preview;
11
11
  onPreviewInvalid;
12
+ locale;
12
13
  constructor(config) {
13
14
  this.apiBaseUrl = config.apiBaseUrl;
14
15
  this.fetchImpl = config.fetchImpl;
@@ -18,6 +19,7 @@ export class HttpClient {
18
19
  this.defaultTimeoutMs = config.timeoutMs;
19
20
  this.preview = config.preview;
20
21
  this.onPreviewInvalid = config.onPreviewInvalid;
22
+ this.locale = config.locale;
21
23
  }
22
24
  static fromClientConfig(config) {
23
25
  const fetchImpl = config.fetch ?? getBoundGlobalFetch();
@@ -39,9 +41,21 @@ export class HttpClient {
39
41
  siteSlug: config.siteSlug,
40
42
  timeoutMs: config.timeoutMs,
41
43
  preview: config.preview,
42
- onPreviewInvalid: config.onPreviewInvalid
44
+ onPreviewInvalid: config.onPreviewInvalid,
45
+ locale: config.locale
43
46
  });
44
47
  }
48
+ /**
49
+ * Adds the `locale` query parameter for localized content: the request's
50
+ * own locale, else the client default. Requests without one are unchanged.
51
+ */
52
+ withLocale(options) {
53
+ const locale = options?.locale ?? this.locale;
54
+ if (typeof locale !== "string" || locale.trim() === "") {
55
+ return options;
56
+ }
57
+ return { ...options, query: { ...options?.query, locale: locale.trim() } };
58
+ }
45
59
  getSiteSlug() {
46
60
  return this.siteSlug;
47
61
  }
@@ -117,7 +131,15 @@ export class HttpClient {
117
131
  else if (previewStatus === "active") {
118
132
  notifyPreviewActive();
119
133
  }
120
- const payload = await parseResponsePayload(response);
134
+ const parsed = await parseResponsePayload(response);
135
+ if (parsed === INVALID_JSON && response.ok) {
136
+ throw new CraftyError({
137
+ code: "UNKNOWN_ERROR",
138
+ message: "Response body was not valid JSON.",
139
+ status: response.status
140
+ });
141
+ }
142
+ const payload = parsed === INVALID_JSON ? null : parsed;
121
143
  if (!response.ok) {
122
144
  const requestId = response.headers.get("x-request-id") ?? undefined;
123
145
  const message = extractErrorMessage(payload) ?? (response.statusText || "Request failed");
@@ -137,12 +159,17 @@ export class HttpClient {
137
159
  if (error instanceof CraftyError) {
138
160
  throw error;
139
161
  }
140
- if (isAbortError(error)) {
141
- const code = timeoutController?.signal.aborted ? "TIMEOUT" : "NETWORK_ERROR";
142
- const message = code === "TIMEOUT" ? "Request timed out." : "Request was aborted.";
162
+ if (timeoutController?.signal.aborted) {
143
163
  throw new CraftyError({
144
- code,
145
- message,
164
+ code: "TIMEOUT",
165
+ message: "Request timed out.",
166
+ cause: error
167
+ });
168
+ }
169
+ if (options.signal?.aborted || isAbortError(error)) {
170
+ throw new CraftyError({
171
+ code: "NETWORK_ERROR",
172
+ message: "Request was aborted.",
146
173
  cause: error
147
174
  });
148
175
  }
@@ -203,15 +230,27 @@ function mergeSignals(a, b) {
203
230
  b.addEventListener("abort", () => abort(b), { once: true });
204
231
  return controller.signal;
205
232
  }
233
+ /** Marks a JSON response whose body could not be parsed. */
234
+ const INVALID_JSON = Symbol("invalid-json");
235
+ /**
236
+ * Reads the body as text and parses JSON when possible. An empty body yields
237
+ * null; a body labelled JSON that fails to parse yields INVALID_JSON so the
238
+ * caller can build an error carrying the HTTP status.
239
+ */
206
240
  async function parseResponsePayload(response) {
207
241
  const contentType = response.headers.get("content-type") ?? "";
208
- if (contentType.includes("application/json")) {
209
- return response.json();
210
- }
211
242
  const text = await response.text();
212
- if (text === "") {
243
+ if (text.trim() === "") {
213
244
  return null;
214
245
  }
246
+ if (contentType.includes("application/json")) {
247
+ try {
248
+ return JSON.parse(text);
249
+ }
250
+ catch {
251
+ return INVALID_JSON;
252
+ }
253
+ }
215
254
  try {
216
255
  return JSON.parse(text);
217
256
  }
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { CraftyImageOptions, CraftyImageSource } from "./types/public.js";
2
+ /**
3
+ * URL of a resized / re-encoded version of a Crafty image, served by
4
+ * Cloudflare Image Transformations (`<base>/cdn-cgi/image/<options>/<source>`).
5
+ *
6
+ * Falls back to the original `url` when the media has no
7
+ * `image_transform_base` (transformations disabled on the server, private
8
+ * media, SVGs or non-images), so it is always safe to use as `src`.
9
+ *
10
+ * @example
11
+ * <img src={crafty.image(block.data.image_media, { width: 800, format: "auto" })} />
12
+ */
13
+ export declare function imageUrl(media: CraftyImageSource, options?: CraftyImageOptions): string;
14
+ /**
15
+ * `srcset` value with one transformed URL per width (`<url> 400w, <url> 800w`).
16
+ * Widths are clamped to 1..4096, de-duplicated and sorted. Returns an empty
17
+ * string when the image cannot be transformed: browsers then use `src`.
18
+ *
19
+ * @example
20
+ * <img
21
+ * src={crafty.image(media, { width: 800, format: "auto" })}
22
+ * srcSet={crafty.srcset(media, [400, 800, 1200], { format: "auto" })}
23
+ * sizes="(min-width: 768px) 50vw, 100vw"
24
+ * />
25
+ */
26
+ export declare function imageSrcSet(media: CraftyImageSource, widths: readonly number[], options?: Omit<CraftyImageOptions, "width">): string;
27
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqC,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMlH;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAe3F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,GAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAM,GAC9C,MAAM,CAUR"}
package/dist/image.js ADDED
@@ -0,0 +1,110 @@
1
+ const MAX_DIMENSION = 4096;
2
+ const FITS = ["scale-down", "contain", "cover", "crop", "pad"];
3
+ const FORMATS = ["auto", "webp", "avif", "jpeg", "png"];
4
+ /**
5
+ * URL of a resized / re-encoded version of a Crafty image, served by
6
+ * Cloudflare Image Transformations (`<base>/cdn-cgi/image/<options>/<source>`).
7
+ *
8
+ * Falls back to the original `url` when the media has no
9
+ * `image_transform_base` (transformations disabled on the server, private
10
+ * media, SVGs or non-images), so it is always safe to use as `src`.
11
+ *
12
+ * @example
13
+ * <img src={crafty.image(block.data.image_media, { width: 800, format: "auto" })} />
14
+ */
15
+ export function imageUrl(media, options = {}) {
16
+ const url = sourceUrl(media);
17
+ if (url === "") {
18
+ return "";
19
+ }
20
+ const base = transformBase(media);
21
+ const params = transformParams(options);
22
+ if (base === null || params === "") {
23
+ return url;
24
+ }
25
+ return `${base}/cdn-cgi/image/${params}/${sourceForBase(url, base)}`;
26
+ }
27
+ /**
28
+ * `srcset` value with one transformed URL per width (`<url> 400w, <url> 800w`).
29
+ * Widths are clamped to 1..4096, de-duplicated and sorted. Returns an empty
30
+ * string when the image cannot be transformed: browsers then use `src`.
31
+ *
32
+ * @example
33
+ * <img
34
+ * src={crafty.image(media, { width: 800, format: "auto" })}
35
+ * srcSet={crafty.srcset(media, [400, 800, 1200], { format: "auto" })}
36
+ * sizes="(min-width: 768px) 50vw, 100vw"
37
+ * />
38
+ */
39
+ export function imageSrcSet(media, widths, options = {}) {
40
+ if (sourceUrl(media) === "" || transformBase(media) === null) {
41
+ return "";
42
+ }
43
+ const uniqueWidths = [
44
+ ...new Set(widths.map((width) => clampInteger(width, 1, MAX_DIMENSION)).filter((width) => width !== null))
45
+ ].sort((a, b) => a - b);
46
+ return uniqueWidths.map((width) => `${imageUrl(media, { ...options, width })} ${width}w`).join(", ");
47
+ }
48
+ function sourceUrl(media) {
49
+ if (typeof media === "string") {
50
+ return media;
51
+ }
52
+ return media !== null && typeof media === "object" && typeof media.url === "string" ? media.url : "";
53
+ }
54
+ function transformBase(media) {
55
+ if (media === null || typeof media !== "object") {
56
+ return null;
57
+ }
58
+ const base = media.image_transform_base;
59
+ if (typeof base !== "string" || !/^https?:\/\/[^/\s]+\/?$/i.test(base)) {
60
+ return null;
61
+ }
62
+ return base.replace(/\/$/, "");
63
+ }
64
+ /** Same origin as the zone: a root-relative path; otherwise the absolute URL. */
65
+ function sourceForBase(url, base) {
66
+ try {
67
+ const source = new URL(url);
68
+ if (source.origin === new URL(base).origin) {
69
+ return source.pathname.replace(/^\//, "") + source.search;
70
+ }
71
+ }
72
+ catch {
73
+ return url;
74
+ }
75
+ return url;
76
+ }
77
+ function transformParams(options) {
78
+ const params = [];
79
+ const width = clampInteger(options.width, 1, MAX_DIMENSION);
80
+ const height = clampInteger(options.height, 1, MAX_DIMENSION);
81
+ const quality = clampInteger(options.quality, 1, 100);
82
+ if (width !== null) {
83
+ params.push(`width=${width}`);
84
+ }
85
+ if (height !== null) {
86
+ params.push(`height=${height}`);
87
+ }
88
+ if (options.fit !== undefined && FITS.includes(options.fit)) {
89
+ params.push(`fit=${options.fit}`);
90
+ }
91
+ if (quality !== null) {
92
+ params.push(`quality=${quality}`);
93
+ }
94
+ if (options.format !== undefined && FORMATS.includes(options.format)) {
95
+ params.push(`format=${options.format}`);
96
+ }
97
+ if (params.length === 0) {
98
+ return "";
99
+ }
100
+ // Serve the original image instead of an error page if a transform fails.
101
+ params.push("onerror=redirect");
102
+ return params.join(",");
103
+ }
104
+ function clampInteger(value, min, max) {
105
+ if (typeof value !== "number" || !Number.isFinite(value)) {
106
+ return null;
107
+ }
108
+ return Math.min(max, Math.max(min, Math.round(value)));
109
+ }
110
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,8 +4,13 @@ export { CraftyError } from "./errors.js";
4
4
  export type { CraftyErrorCode } from "./errors.js";
5
5
  export { attrs, attrsHtml } from "./attrs.js";
6
6
  export type { CraftyAttrsOptions, CraftyEditAttributes, CraftyEditTarget, CraftyEditTargetType } from "./attrs.js";
7
+ export { imageSrcSet, imageUrl } from "./image.js";
7
8
  export { PREVIEW_HEADER, PREVIEW_INVALID_EVENT, PREVIEW_QUERY_PARAM, PREVIEW_STATUS_HEADER, clearPreviewToken, previewFromRequest, readPreviewToken, storePreviewToken } from "./preview.js";
8
9
  export type { PreviewContent, PreviewEntry, PreviewPage, PreviewRequestLike } from "./preview.js";
10
+ export { ANALYTICS_FLAG } from "./resources/analytics.js";
11
+ export type { AnalyticsLoadResult } from "./resources/analytics.js";
12
+ export { ASSISTANT_FLAG } from "./resources/assistant.js";
13
+ export type { AssistantLoadResult } from "./resources/assistant.js";
9
14
  export type { LlmsHandlerOptions, LlmsLinkTag } from "./resources/llms.js";
10
15
  export type * from "./types/public.js";
11
16
  export type * from "./types/blocks.js";
@@ -1 +1 @@
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,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE3E,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,mBAAmB,CAAC"}
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,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnD,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,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE3E,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
1
  export { createCraftyClient } from "./client.js";
2
2
  export { CraftyError } from "./errors.js";
3
3
  export { attrs, attrsHtml } from "./attrs.js";
4
+ export { imageSrcSet, imageUrl } from "./image.js";
4
5
  export { PREVIEW_HEADER, PREVIEW_INVALID_EVENT, PREVIEW_QUERY_PARAM, PREVIEW_STATUS_HEADER, clearPreviewToken, previewFromRequest, readPreviewToken, storePreviewToken } from "./preview.js";
6
+ export { ANALYTICS_FLAG } from "./resources/analytics.js";
7
+ export { ASSISTANT_FLAG } from "./resources/assistant.js";
5
8
  //# 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,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"}
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,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { CraftyAnalytics, RequestOptions } from "../types/public.js";
3
+ /** Global the Crafty snippets set to their source: "deploy" (Crafty Hosting) or "sdk". */
4
+ export declare const ANALYTICS_FLAG = "__CRAFTY_ANALYTICS__";
5
+ export type AnalyticsLoadResult =
6
+ /** The SDK fetched the settings and inserted the loaders. */
7
+ "loaded"
8
+ /** The page already carries the analytics (Crafty Hosting deploy, SSR, or an earlier load). */
9
+ | "already-loaded"
10
+ /** Nothing is configured for this environment. */
11
+ | "not-configured"
12
+ /** Not running in a browser. */
13
+ | "unavailable";
14
+ export declare class AnalyticsResource {
15
+ private readonly http;
16
+ constructor(http: HttpClient);
17
+ /**
18
+ * IDs plus ready-made `head` / `body` HTML. For SSR, render `head` before
19
+ * `</head>` and `body` right after `<body>`: crawlers then see the tags
20
+ * and the first page view is never lost.
21
+ */
22
+ get(options?: RequestOptions): Promise<CraftyAnalytics>;
23
+ /**
24
+ * Browser loader for sites that render on the client. Skips when the page
25
+ * already carries Crafty analytics, so on Crafty Hosting the snippets the
26
+ * deploy injected always win.
27
+ */
28
+ load(options?: RequestOptions): Promise<AnalyticsLoadResult>;
29
+ }
30
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/resources/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAA2B,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnG,0FAA0F;AAC1F,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD,MAAM,MAAM,mBAAmB;AAC7B,6DAA6D;AAC3D,QAAQ;AACV,+FAA+F;GAC7F,gBAAgB;AAClB,kDAAkD;GAChD,gBAAgB;AAClB,gCAAgC;GAC9B,aAAa,CAAC;AAIlB,qBAAa,iBAAiB;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpD;;;;OAIG;IACU,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAMpE;;;;OAIG;IACU,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA4B1E"}
@@ -0,0 +1,76 @@
1
+ /** Global the Crafty snippets set to their source: "deploy" (Crafty Hosting) or "sdk". */
2
+ export const ANALYTICS_FLAG = "__CRAFTY_ANALYTICS__";
3
+ export class AnalyticsResource {
4
+ http;
5
+ constructor(http) {
6
+ this.http = http;
7
+ }
8
+ /**
9
+ * IDs plus ready-made `head` / `body` HTML. For SSR, render `head` before
10
+ * `</head>` and `body` right after `<body>`: crawlers then see the tags
11
+ * and the first page view is never lost.
12
+ */
13
+ async get(options) {
14
+ const response = await this.http.get("/analytics", options);
15
+ return response.data;
16
+ }
17
+ /**
18
+ * Browser loader for sites that render on the client. Skips when the page
19
+ * already carries Crafty analytics, so on Crafty Hosting the snippets the
20
+ * deploy injected always win.
21
+ */
22
+ async load(options) {
23
+ if (typeof window === "undefined" || typeof document === "undefined") {
24
+ return "unavailable";
25
+ }
26
+ await domReady();
27
+ if (isLoaded()) {
28
+ return "already-loaded";
29
+ }
30
+ const analytics = await this.get(options);
31
+ // A second load() racing this one, or a deploy-injected block that
32
+ // finished parsing meanwhile, wins.
33
+ if (isLoaded()) {
34
+ return "already-loaded";
35
+ }
36
+ if (!analytics.configured || analytics.head === "") {
37
+ return "not-configured";
38
+ }
39
+ window[ANALYTICS_FLAG] = "sdk";
40
+ appendHtml(document.head, analytics.head);
41
+ return "loaded";
42
+ }
43
+ }
44
+ function isLoaded() {
45
+ return typeof window[ANALYTICS_FLAG] === "string";
46
+ }
47
+ function domReady() {
48
+ if (document.readyState !== "loading") {
49
+ return Promise.resolve();
50
+ }
51
+ return new Promise((resolve) => {
52
+ document.addEventListener("DOMContentLoaded", () => resolve(), { once: true });
53
+ });
54
+ }
55
+ /**
56
+ * Inserts server-built HTML so its scripts run: scripts parsed from a string
57
+ * are inert, so each one is recreated as a live element.
58
+ */
59
+ function appendHtml(target, html) {
60
+ const template = document.createElement("template");
61
+ template.innerHTML = html;
62
+ for (const node of Array.from(template.content.childNodes)) {
63
+ if (node instanceof HTMLScriptElement) {
64
+ const script = document.createElement("script");
65
+ for (const attribute of Array.from(node.attributes)) {
66
+ script.setAttribute(attribute.name, attribute.value);
67
+ }
68
+ script.text = node.text;
69
+ target.appendChild(script);
70
+ }
71
+ else {
72
+ target.appendChild(document.importNode(node, true));
73
+ }
74
+ }
75
+ }
76
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/resources/analytics.ts"],"names":[],"mappings":"AAGA,0FAA0F;AAC1F,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAcrD,MAAM,OAAO,iBAAiB;IACQ;IAApC,YAAoC,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExD;;;;OAIG;IACI,KAAK,CAAC,GAAG,CAAC,OAAwB;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,YAAY,EAAE,OAAO,CAAC,CAAC;QAErF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrE,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,QAAQ,EAAE,CAAC;QAEjB,IAAI,QAAQ,EAAE,EAAE,CAAC;YACf,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE1C,mEAAmE;QACnE,oCAAoC;QACpC,IAAI,QAAQ,EAAE,EAAE,CAAC;YACf,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACnD,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAEA,MAAwB,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,SAAS,QAAQ;IACf,OAAO,OAAQ,MAAwB,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC;AACvE,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAmB,EAAE,IAAY;IACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEhD,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { CraftyAssistant, RequestOptions } from "../types/public.js";
3
+ /** Global the site assistant widget sets once it starts, so a second loader does nothing. */
4
+ export declare const ASSISTANT_FLAG = "__CRAFTY_ASSISTANT__";
5
+ export type AssistantLoadResult =
6
+ /** The SDK inserted the widget loader. */
7
+ "loaded"
8
+ /** The page already carries the widget (Crafty Hosting deploy, SSR, or an earlier load). */
9
+ | "already-loaded"
10
+ /** The assistant is not set up for this environment. */
11
+ | "not-installed"
12
+ /** Not running in a browser. */
13
+ | "unavailable";
14
+ export declare class AssistantResource {
15
+ private readonly http;
16
+ constructor(http: HttpClient);
17
+ /**
18
+ * Whether the environment shows the assistant, plus the ready-made loader
19
+ * `html`. For SSR, render `html` right before `</body>`.
20
+ */
21
+ get(options?: RequestOptions): Promise<CraftyAssistant>;
22
+ /**
23
+ * Browser loader for sites that render on the client. Skips when the page
24
+ * already carries the widget, so on Crafty Hosting the loader the deploy
25
+ * injected always wins. The widget reads its settings live, so changes in
26
+ * the panel apply without reloading the SDK.
27
+ */
28
+ load(options?: RequestOptions): Promise<AssistantLoadResult>;
29
+ }
30
+ //# sourceMappingURL=assistant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.d.ts","sourceRoot":"","sources":["../../src/resources/assistant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAA2B,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnG,6FAA6F;AAC7F,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD,MAAM,MAAM,mBAAmB;AAC7B,0CAA0C;AACxC,QAAQ;AACV,4FAA4F;GAC1F,gBAAgB;AAClB,wDAAwD;GACtD,eAAe;AACjB,gCAAgC;GAC9B,aAAa,CAAC;AAMlB,qBAAa,iBAAiB;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpD;;;OAGG;IACU,GAAG,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAMpE;;;;;OAKG;IACU,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;CA8B1E"}
@@ -0,0 +1,51 @@
1
+ /** Global the site assistant widget sets once it starts, so a second loader does nothing. */
2
+ export const ASSISTANT_FLAG = "__CRAFTY_ASSISTANT__";
3
+ const LOADER_SELECTOR = "script[data-crafty-assistant]";
4
+ export class AssistantResource {
5
+ http;
6
+ constructor(http) {
7
+ this.http = http;
8
+ }
9
+ /**
10
+ * Whether the environment shows the assistant, plus the ready-made loader
11
+ * `html`. For SSR, render `html` right before `</body>`.
12
+ */
13
+ async get(options) {
14
+ const response = await this.http.get("/assistant", options);
15
+ return response.data;
16
+ }
17
+ /**
18
+ * Browser loader for sites that render on the client. Skips when the page
19
+ * already carries the widget, so on Crafty Hosting the loader the deploy
20
+ * injected always wins. The widget reads its settings live, so changes in
21
+ * the panel apply without reloading the SDK.
22
+ */
23
+ async load(options) {
24
+ if (typeof window === "undefined" || typeof document === "undefined") {
25
+ return "unavailable";
26
+ }
27
+ if (isLoaded()) {
28
+ return "already-loaded";
29
+ }
30
+ const assistant = await this.get(options);
31
+ if (isLoaded()) {
32
+ return "already-loaded";
33
+ }
34
+ if (!assistant.installed) {
35
+ return "not-installed";
36
+ }
37
+ const script = document.createElement("script");
38
+ script.src = assistant.script_url;
39
+ script.async = true;
40
+ script.setAttribute("data-crafty-assistant", "");
41
+ script.setAttribute("data-site", assistant.site);
42
+ script.setAttribute("data-environment", assistant.environment);
43
+ script.setAttribute("data-api", assistant.api_url);
44
+ document.body.appendChild(script);
45
+ return "loaded";
46
+ }
47
+ }
48
+ function isLoaded() {
49
+ return window[ASSISTANT_FLAG] !== undefined || document.querySelector(LOADER_SELECTOR) !== null;
50
+ }
51
+ //# sourceMappingURL=assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../src/resources/assistant.ts"],"names":[],"mappings":"AAGA,6FAA6F;AAC7F,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAcrD,MAAM,eAAe,GAAG,+BAA+B,CAAC;AAExD,MAAM,OAAO,iBAAiB;IACQ;IAApC,YAAoC,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExD;;;OAGG;IACI,KAAK,CAAC,GAAG,CAAC,OAAwB;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,YAAY,EAAE,OAAO,CAAC,CAAC;QAErF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrE,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,IAAI,QAAQ,EAAE,EAAE,CAAC;YACf,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE,EAAE,CAAC;YACf,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC;QAClC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACnD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,SAAS,QAAQ;IACf,OAAQ,MAAwB,CAAC,cAAc,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;AACrH,CAAC"}
@@ -6,12 +6,12 @@ export class EntriesResource {
6
6
  }
7
7
  async list(collectionSlug, query, options) {
8
8
  const requestOptions = query ? { ...options, query } : options;
9
- const response = await this.http.get(`/collections/${encodeURIComponent(collectionSlug)}/entries`, requestOptions);
9
+ const response = await this.http.get(`/collections/${encodeURIComponent(collectionSlug)}/entries`, this.http.withLocale(requestOptions));
10
10
  this.recordShown(collectionSlug, Array.isArray(response?.data) ? response.data : []);
11
11
  return response;
12
12
  }
13
13
  async get(collectionSlug, id, options) {
14
- const response = await this.http.get(`/collections/${encodeURIComponent(collectionSlug)}/entries/${encodeURIComponent(String(id))}`, options);
14
+ const response = await this.http.get(`/collections/${encodeURIComponent(collectionSlug)}/entries/${encodeURIComponent(String(id))}`, this.http.withLocale(options));
15
15
  this.recordShown(collectionSlug, response?.data ? [response.data] : []);
16
16
  return response;
17
17
  }
@@ -1 +1 @@
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
+ {"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,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CACrC,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,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAC9B,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 +1 @@
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"}
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;IAIhE,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,kBAAkB,CAAC;CAgB/B"}
@@ -5,12 +5,12 @@ export class FormsResource {
5
5
  this.http = http;
6
6
  }
7
7
  list(options) {
8
- return this.http.get("/forms", options);
8
+ return this.http.get("/forms", this.http.withLocale(options));
9
9
  }
10
10
  get(slug, options) {
11
- return this.http.get(`/forms/${encodeURIComponent(slug)}`, options);
11
+ return this.http.get(`/forms/${encodeURIComponent(slug)}`, this.http.withLocale(options));
12
12
  }
13
- submit(formSlug, data, options) {
13
+ async submit(formSlug, data, options) {
14
14
  const siteSlug = this.http.getSiteSlug();
15
15
  if (!siteSlug) {
16
16
  throw new CraftyError({
@@ -18,7 +18,7 @@ export class FormsResource {
18
18
  message: "siteSlug is required in client config to submit forms."
19
19
  });
20
20
  }
21
- return this.http.post(`/sites/${encodeURIComponent(siteSlug)}/forms/${encodeURIComponent(formSlug)}/submit`, data, { ...options, skipApiKey: true });
21
+ return this.http.post(`/sites/${encodeURIComponent(siteSlug)}/forms/${encodeURIComponent(formSlug)}/submit`, data, this.http.withLocale(options));
22
22
  }
23
23
  }
24
24
  //# sourceMappingURL=forms.js.map
@@ -1 +1 @@
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
+ {"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,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC;IAEM,GAAG,CAAC,IAAY,EAAE,OAAwB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9G,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,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,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAC9B,CAAC;IACJ,CAAC;CACF"}
@@ -6,10 +6,10 @@ export class PagesResource {
6
6
  }
7
7
  list(query, options) {
8
8
  const requestOptions = query ? { ...options, query } : options;
9
- return this.http.get("/pages", requestOptions);
9
+ return this.http.get("/pages", this.http.withLocale(requestOptions));
10
10
  }
11
11
  async get(pageSlug, options) {
12
- const response = await this.http.get(`/pages/${encodeURIComponent(pageSlug)}`, options);
12
+ const response = await this.http.get(`/pages/${encodeURIComponent(pageSlug)}`, this.http.withLocale(options));
13
13
  if (this.http.previewToken() !== null && response?.data) {
14
14
  recordPreviewContent({ type: "page", id: response.data.id, slug: response.data.slug });
15
15
  }