@makeswift/runtime 0.28.7-canary.4 → 0.28.7-canary.6

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 (162) hide show
  1. package/dist/cjs/api/api-resources-client.js.map +1 -1
  2. package/dist/cjs/api/graphql/documents/queries.js +6 -6
  3. package/dist/cjs/api/graphql/documents/queries.js.map +1 -1
  4. package/dist/cjs/api/graphql/generated/types.js.map +1 -1
  5. package/dist/cjs/api/graphql-api-client.js +23 -1
  6. package/dist/cjs/api/graphql-api-client.js.map +1 -1
  7. package/dist/cjs/api/{client.js → host-api-resources-client.js} +7 -7
  8. package/dist/cjs/api/host-api-resources-client.js.map +1 -0
  9. package/dist/cjs/api/rest-api-client.js +186 -0
  10. package/dist/cjs/api/rest-api-client.js.map +1 -0
  11. package/dist/cjs/api/schema/index.js +23 -0
  12. package/dist/cjs/api/schema/index.js.map +1 -0
  13. package/dist/cjs/api/schema/page-pathname-slice.js +38 -0
  14. package/dist/cjs/api/schema/page-pathname-slice.js.map +1 -0
  15. package/dist/cjs/api/types.js.map +1 -1
  16. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  17. package/dist/cjs/client/component-snapshot.js +63 -0
  18. package/dist/cjs/client/component-snapshot.js.map +1 -0
  19. package/dist/cjs/client/index.js +103 -360
  20. package/dist/cjs/client/index.js.map +1 -1
  21. package/dist/cjs/client/page-snapshot.js +33 -0
  22. package/dist/cjs/client/page-snapshot.js.map +1 -0
  23. package/dist/cjs/client/schema/component-document.js +45 -0
  24. package/dist/cjs/client/schema/component-document.js.map +1 -0
  25. package/dist/cjs/client/schema/fonts.js +38 -0
  26. package/dist/cjs/client/schema/fonts.js.map +1 -0
  27. package/dist/cjs/client/schema/get-page.js +39 -0
  28. package/dist/cjs/client/schema/get-page.js.map +1 -0
  29. package/dist/cjs/client/schema/get-pages.js +68 -0
  30. package/dist/cjs/client/schema/get-pages.js.map +1 -0
  31. package/dist/cjs/client/schema/index.js +31 -0
  32. package/dist/cjs/client/schema/index.js.map +1 -0
  33. package/dist/cjs/client/schema/preview-token-payload.js +34 -0
  34. package/dist/cjs/client/schema/preview-token-payload.js.map +1 -0
  35. package/dist/cjs/next/client.js +0 -8
  36. package/dist/cjs/next/client.js.map +1 -1
  37. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  38. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  39. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  40. package/dist/cjs/next/fetch.js.map +1 -1
  41. package/dist/cjs/next/testing/element-data.js +3 -3
  42. package/dist/cjs/next/testing/element-data.js.map +1 -1
  43. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  44. package/dist/cjs/runtimes/react/runtime-core.js +2 -2
  45. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  46. package/dist/cjs/runtimes/react/testing/react-runtime.js +7 -1
  47. package/dist/cjs/runtimes/react/testing/react-runtime.js.map +1 -1
  48. package/dist/cjs/state/api-client/fetch-api-resource.js +8 -8
  49. package/dist/cjs/state/api-client/fetch-api-resource.js.map +1 -1
  50. package/dist/esm/api/api-resources-client.js.map +1 -1
  51. package/dist/esm/api/graphql/documents/queries.js +4 -4
  52. package/dist/esm/api/graphql/documents/queries.js.map +1 -1
  53. package/dist/esm/api/graphql/generated/types.js.map +1 -1
  54. package/dist/esm/api/graphql-api-client.js +29 -2
  55. package/dist/esm/api/graphql-api-client.js.map +1 -1
  56. package/dist/esm/api/{client.js → host-api-resources-client.js} +3 -3
  57. package/dist/esm/api/host-api-resources-client.js.map +1 -0
  58. package/dist/esm/api/rest-api-client.js +151 -0
  59. package/dist/esm/api/rest-api-client.js.map +1 -0
  60. package/dist/esm/api/schema/index.js +2 -0
  61. package/dist/esm/api/schema/index.js.map +1 -0
  62. package/dist/esm/api/schema/page-pathname-slice.js +14 -0
  63. package/dist/esm/api/schema/page-pathname-slice.js.map +1 -0
  64. package/dist/esm/api/types.js.map +1 -1
  65. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  66. package/dist/esm/client/component-snapshot.js +39 -0
  67. package/dist/esm/client/component-snapshot.js.map +1 -0
  68. package/dist/esm/client/index.js +68 -329
  69. package/dist/esm/client/index.js.map +1 -1
  70. package/dist/esm/client/page-snapshot.js +9 -0
  71. package/dist/esm/client/page-snapshot.js.map +1 -0
  72. package/dist/esm/client/schema/component-document.js +20 -0
  73. package/dist/esm/client/schema/component-document.js.map +1 -0
  74. package/dist/esm/client/schema/fonts.js +14 -0
  75. package/dist/esm/client/schema/fonts.js.map +1 -0
  76. package/dist/esm/client/schema/get-page.js +15 -0
  77. package/dist/esm/client/schema/get-page.js.map +1 -0
  78. package/dist/esm/client/schema/get-pages.js +42 -0
  79. package/dist/esm/client/schema/get-pages.js.map +1 -0
  80. package/dist/esm/client/schema/index.js +6 -0
  81. package/dist/esm/client/schema/index.js.map +1 -0
  82. package/dist/esm/client/schema/preview-token-payload.js +10 -0
  83. package/dist/esm/client/schema/preview-token-payload.js.map +1 -0
  84. package/dist/esm/next/client.js +0 -8
  85. package/dist/esm/next/client.js.map +1 -1
  86. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  87. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  88. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  89. package/dist/esm/next/fetch.js.map +1 -1
  90. package/dist/esm/next/testing/element-data.js +1 -1
  91. package/dist/esm/next/testing/element-data.js.map +1 -1
  92. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  93. package/dist/esm/runtimes/react/runtime-core.js +2 -2
  94. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  95. package/dist/esm/runtimes/react/testing/react-runtime.js +7 -1
  96. package/dist/esm/runtimes/react/testing/react-runtime.js.map +1 -1
  97. package/dist/esm/state/api-client/fetch-api-resource.js +1 -1
  98. package/dist/esm/state/api-client/fetch-api-resource.js.map +1 -1
  99. package/dist/types/api/__tests__/rest-api-client.error-handling.test.d.ts +2 -0
  100. package/dist/types/api/__tests__/rest-api-client.error-handling.test.d.ts.map +1 -0
  101. package/dist/types/api/__tests__/rest-api-client.get-resources.test.d.ts +2 -0
  102. package/dist/types/api/__tests__/rest-api-client.get-resources.test.d.ts.map +1 -0
  103. package/dist/types/api/api-resources-client.d.ts.map +1 -1
  104. package/dist/types/api/graphql/documents/queries.d.ts +1 -1
  105. package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
  106. package/dist/types/api/graphql/generated/types.d.ts +2 -2
  107. package/dist/types/api/graphql/generated/types.d.ts.map +1 -1
  108. package/dist/types/api/graphql-api-client.d.ts +5 -0
  109. package/dist/types/api/graphql-api-client.d.ts.map +1 -1
  110. package/dist/types/api/{client.d.ts → host-api-resources-client.d.ts} +3 -4
  111. package/dist/types/api/host-api-resources-client.d.ts.map +1 -0
  112. package/dist/types/api/rest-api-client.d.ts +25 -0
  113. package/dist/types/api/rest-api-client.d.ts.map +1 -0
  114. package/dist/types/api/schema/index.d.ts +2 -0
  115. package/dist/types/api/schema/index.d.ts.map +1 -0
  116. package/dist/types/api/schema/page-pathname-slice.d.ts +21 -0
  117. package/dist/types/api/schema/page-pathname-slice.d.ts.map +1 -0
  118. package/dist/types/api/types.d.ts +1 -0
  119. package/dist/types/api/types.d.ts.map +1 -1
  120. package/dist/types/client/component-snapshot.d.ts +25 -0
  121. package/dist/types/client/component-snapshot.d.ts.map +1 -0
  122. package/dist/types/client/index.d.ts +19 -640
  123. package/dist/types/client/index.d.ts.map +1 -1
  124. package/dist/types/client/page-snapshot.d.ts +62 -0
  125. package/dist/types/client/page-snapshot.d.ts.map +1 -0
  126. package/dist/types/client/schema/component-document.d.ts +285 -0
  127. package/dist/types/client/schema/component-document.d.ts.map +1 -0
  128. package/dist/types/client/schema/fonts.d.ts +27 -0
  129. package/dist/types/client/schema/fonts.d.ts.map +1 -0
  130. package/dist/types/client/schema/get-page.d.ts +30 -0
  131. package/dist/types/client/schema/get-page.d.ts.map +1 -0
  132. package/dist/types/client/schema/get-pages.d.ts +202 -0
  133. package/dist/types/client/schema/get-pages.d.ts.map +1 -0
  134. package/dist/types/client/schema/index.d.ts +6 -0
  135. package/dist/types/client/schema/index.d.ts.map +1 -0
  136. package/dist/types/client/schema/preview-token-payload.d.ts +19 -0
  137. package/dist/types/client/schema/preview-token-payload.d.ts.map +1 -0
  138. package/dist/types/next/client.d.ts +0 -1
  139. package/dist/types/next/client.d.ts.map +1 -1
  140. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  141. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  142. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +1 -1
  143. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  144. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  145. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  146. package/dist/types/next/fetch.d.ts +1 -1
  147. package/dist/types/next/fetch.d.ts.map +1 -1
  148. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  149. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  150. package/dist/types/runtimes/react/runtime-core.d.ts +1 -1
  151. package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
  152. package/dist/types/runtimes/react/testing/react-runtime.d.ts.map +1 -1
  153. package/dist/types/state/api-client/fetch-api-resource.d.ts +1 -2
  154. package/dist/types/state/api-client/fetch-api-resource.d.ts.map +1 -1
  155. package/package.json +1 -1
  156. package/dist/cjs/api/client.js.map +0 -1
  157. package/dist/esm/api/client.js.map +0 -1
  158. package/dist/types/api/client.d.ts.map +0 -1
  159. package/dist/types/client/tests/client.error-handling.test.d.ts +0 -2
  160. package/dist/types/client/tests/client.error-handling.test.d.ts.map +0 -1
  161. package/dist/types/client/tests/client.get-resources.test.d.ts +0 -2
  162. package/dist/types/client/tests/client.get-resources.test.d.ts.map +0 -1
@@ -1,10 +1,9 @@
1
- import { z } from "zod";
2
1
  import {
3
2
  APIResourceType
4
- } from "../api";
5
- import { GraphQLClient } from "../api/graphql/client";
6
- import { FileQuery, IntrospectedResourcesQuery, TableQuery } from "../api/graphql/documents";
7
- import { CacheData } from "../api/client";
3
+ } from "../api/types";
4
+ import { CacheData } from "../api/api-resources-client";
5
+ import { MakeswiftGraphQLApiClient } from "../api/graphql-api-client";
6
+ import { MakeswiftRestAPIClient, failedResponseBody } from "../api/rest-api-client";
8
7
  import {
9
8
  getElementChildren,
10
9
  getSwatchIds,
@@ -17,223 +16,40 @@ import {
17
16
  getPropControllerDescriptors,
18
17
  isElementReference
19
18
  } from "../state/read-only-state";
20
- import { toIterablePaginationResult } from "../utils/pagination";
21
- import { deterministicUUID } from "../utils/deterministic-uuid";
22
- import { Schema } from "@makeswift/controls";
23
- import { EMBEDDED_DOCUMENT_TYPE } from "../state/modules/read-only-documents";
24
19
  import { mergeTranslatedContent } from "../state/translations/merge";
25
20
  import { getTranslatableContent } from "../state/translations/get";
21
+ import { deterministicUUID } from "../utils/deterministic-uuid";
22
+ import { toIterablePaginationResult } from "../utils/pagination";
26
23
  import { isNonNullable } from "../utils/isNonNullable";
27
- import { SnippetLocation as SnippetLocation2 } from "../api/graphql/generated/types";
28
- const makeswiftPageResultSchema = z.object({
29
- id: z.string(),
30
- path: z.string(),
31
- title: z.string().nullable(),
32
- description: z.string().nullable(),
33
- canonicalUrl: z.string().nullable(),
34
- socialImageUrl: z.string().nullable(),
35
- sitemapPriority: z.number().nullable(),
36
- sitemapFrequency: z.enum(["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]).nullable(),
37
- createdAt: z.string(),
38
- updatedAt: z.string(),
39
- publishedAt: z.string().nullable(),
40
- isOnline: z.boolean().nullable(),
41
- excludedFromSearch: z.boolean().nullable(),
42
- locale: z.string(),
43
- localizedVariants: z.array(
44
- z.object({
45
- locale: z.string(),
46
- path: z.string()
47
- })
48
- )
49
- });
50
- const makeswiftGetPagesResultAPISchema = z.object({
51
- data: z.array(makeswiftPageResultSchema),
52
- hasMore: z.boolean()
53
- });
54
- const makeswiftGetPagesParamsSchema = z.object({
55
- limit: z.number().optional(),
56
- after: z.string().optional(),
57
- sortBy: z.enum(["title", "path", "description", "createdAt", "updatedAt"]).optional(),
58
- sortDirection: z.enum(["asc", "desc"]).optional(),
59
- includeOffline: z.boolean().optional(),
60
- pathPrefix: z.string().optional(),
61
- locale: z.string().optional()
62
- });
63
- function getPagesQueryParams({
64
- limit = 100,
65
- after,
66
- sortBy,
67
- sortDirection,
68
- includeOffline,
69
- pathPrefix,
70
- locale
71
- }) {
72
- const params = new URLSearchParams();
73
- if (limit != null)
74
- params.set("limit", limit.toString());
75
- if (after != null)
76
- params.set("after", after);
77
- if (sortBy != null)
78
- params.set("sortBy", sortBy);
79
- if (sortDirection != null)
80
- params.set("sortDirection", sortDirection);
81
- if (includeOffline != null)
82
- params.set("includeOffline", includeOffline.toString());
83
- if (pathPrefix != null)
84
- params.set("pathPrefix", pathPrefix);
85
- if (locale != null)
86
- params.set("locale", locale);
87
- return params;
88
- }
89
- function pageToRootDocument(pageDocument) {
90
- const { locale, localizedPages, id, data } = pageDocument;
91
- const localizedPage = localizedPages.find(({ parentId }) => parentId == null);
92
- return localizedPage ? { key: localizedPage.elementTreeId, rootElement: localizedPage.data, locale } : { key: id, rootElement: data, locale };
93
- }
94
- const makeswiftComponentDocumentSchema = z.object({
95
- id: z.string(),
96
- name: z.string().nullable(),
97
- locale: z.string().nullable(),
98
- data: Schema.element,
99
- siteId: z.string(),
100
- inheritsFromParent: z.boolean()
101
- });
102
- const makeswiftComponentDocumentFallbackSchema = z.object({
103
- id: z.string(),
104
- locale: z.string().nullable(),
105
- data: z.null()
106
- });
107
- const previewTokenPayloadSchema = z.object({
108
- payload: z.object({
109
- version: z.string()
110
- })
111
- });
112
- function componentDocumentToRootEmbeddedDocument({
113
- document,
114
- documentKey,
115
- name,
116
- type,
117
- description,
118
- meta
119
- }) {
120
- const { data: rootElement, locale, id } = document;
121
- if (rootElement != null && rootElement.type !== type) {
122
- throw new Error(
123
- `Type "${rootElement.type}" does not match the expected type "${type}" from the snapshot`
124
- );
125
- }
126
- const rootDocument = {
127
- key: documentKey,
128
- rootElement: rootElement ?? {
129
- // Fallback rootElement
130
- // Create a stable uuid so two different clients will have the same empty element data.
131
- // This is needed to make presence feature work for an element that is not yet created.
132
- key: deterministicUUID({ id, locale, seed: documentKey }),
133
- type,
134
- props: {}
135
- },
136
- locale,
137
- id,
138
- type,
139
- name,
140
- meta: { ...meta, description },
141
- __type: EMBEDDED_DOCUMENT_TYPE
142
- };
143
- return rootDocument;
144
- }
145
- async function failedResponseBody(response) {
146
- try {
147
- const text = await response.text();
148
- try {
149
- return JSON.parse(text);
150
- } catch {
151
- return text;
152
- }
153
- } catch (e) {
154
- return `Failed to extract response body: ${e}`;
155
- }
156
- }
157
- function responseError(response) {
158
- return `${response.status} ${response.statusText}`;
159
- }
160
- const pagePathnameSlicesAPISchema = z.array(
161
- z.object({
162
- id: z.string(),
163
- basePageId: z.string(),
164
- pathname: z.string(),
165
- localizedPathname: z.string().optional(),
166
- __typename: z.literal("PagePathnameSlice")
167
- }).nullable()
168
- );
169
- const getPageAPISchema = z.object({
170
- pathname: z.string(),
171
- locale: z.string(),
172
- alternate: z.array(
173
- z.object({
174
- pathname: z.string(),
175
- locale: z.string()
176
- })
177
- )
178
- });
179
- const getFontsAPISchema = z.object({
180
- googleFonts: z.array(
181
- z.object({
182
- family: z.string(),
183
- variants: z.array(z.string())
184
- })
185
- ),
186
- siteId: z.string()
187
- });
188
- class MakeswiftClient {
24
+ import * as Schema from "./schema";
25
+ import { SnippetLocation } from "../api/graphql/generated/types";
26
+ import {
27
+ componentDocumentToRootEmbeddedDocument
28
+ } from "./component-snapshot";
29
+ import {
30
+ pageToRootDocument
31
+ } from "./page-snapshot";
32
+ class MakeswiftClient extends MakeswiftRestAPIClient {
189
33
  graphqlClient;
190
34
  runtime;
191
- apiKey;
192
- constructor(apiKey, { runtime }) {
35
+ constructor(apiKey, {
36
+ runtime
37
+ }) {
193
38
  if (typeof apiKey !== "string") {
194
39
  throw new Error(
195
40
  `The Makeswift client must be passed a valid Makeswift site API key: \`new Makeswift('<makeswift_site_api_key>')\`
196
41
  Received "${apiKey}" instead.`
197
42
  );
198
43
  }
199
- this.apiKey = apiKey;
200
- this.graphqlClient = new GraphQLClient(new URL("graphql", runtime.apiOrigin).href, {
201
- "makeswift-runtime-version": "0.28.7-canary.4"
202
- });
203
- this.runtime = runtime;
204
- }
205
- get apiOrigin() {
206
- return this.runtime.apiOrigin;
207
- }
208
- async fetch(path, siteVersion, init) {
209
- const requestUrl = new URL(path, this.apiOrigin);
210
- const requestHeaders = new Headers({
211
- "x-api-key": this.apiKey,
212
- "makeswift-site-api-key": this.apiKey,
213
- "makeswift-runtime-version": "0.28.7-canary.4"
44
+ super({
45
+ fetch: runtime.fetch,
46
+ apiKey,
47
+ apiOrigin: runtime.apiOrigin
214
48
  });
215
- if (siteVersion?.token) {
216
- requestUrl.searchParams.set("version", siteVersion.version);
217
- requestHeaders.set("makeswift-preview-token", siteVersion.token);
218
- }
219
- if (init?.headers) {
220
- new Headers(init.headers).forEach((value, key) => {
221
- requestHeaders.set(key, value);
222
- });
223
- }
224
- const response = await fetch(requestUrl.toString(), {
225
- ...init,
226
- headers: requestHeaders,
227
- ...siteVersion != null ? { cache: "no-store" } : {},
228
- ...this.fetchOptions(siteVersion)
49
+ this.graphqlClient = new MakeswiftGraphQLApiClient({
50
+ endpoint: runtime.graphqlApiEndpoint
229
51
  });
230
- return response;
231
- }
232
- /**
233
- * Override this method to provide additional fetch options, e.g. revalidation, cache tags, etc.
234
- */
235
- fetchOptions(_siteVersion) {
236
- return {};
52
+ this.runtime = runtime;
237
53
  }
238
54
  getPagesInternal = async ({
239
55
  siteVersion = null,
@@ -250,7 +66,7 @@ Received "${apiKey}" instead.`
250
66
  throw new Error(`Failed to get pages: ${responseError(response)}`);
251
67
  }
252
68
  const result = await response.json();
253
- const parsedResponse = makeswiftGetPagesResultAPISchema.safeParse(result);
69
+ const parsedResponse = Schema.getPagesResult.safeParse(result);
254
70
  if (!parsedResponse.success) {
255
71
  throw new Error(
256
72
  `Failed to parse 'getPages' response: ${parsedResponse.error.errors.map((e) => e.message).join("; ")}`
@@ -276,7 +92,7 @@ Received "${apiKey}" instead.`
276
92
  throw new Error(`Failed to get page snapshot for '${pathname}': ${responseError(response)}`);
277
93
  }
278
94
  const json = await response.json();
279
- return getPageAPISchema.parse(json);
95
+ return Schema.getPageResult.parse(json);
280
96
  }
281
97
  async getTypographies(typographyIds, siteVersion) {
282
98
  if (typographyIds.length === 0)
@@ -337,16 +153,16 @@ Received "${apiKey}" instead.`
337
153
  }
338
154
  const responseBody = await response.json();
339
155
  return responseBody.map(
340
- (item) => item != null ? makeswiftComponentDocumentSchema.parse(item) : null
156
+ (item) => item != null ? Schema.componentDocument.parse(item) : null
341
157
  );
342
158
  }
343
159
  async getIntrospectedResources({
344
160
  swatchIds,
345
- ...introspectedResourceIds
161
+ ...unversionedResourceIds
346
162
  }, siteVersion) {
347
- const result = await this.graphqlClient.request(IntrospectedResourcesQuery, introspectedResourceIds);
163
+ const unversionedResources = await this.graphqlClient.getUnversionedResources(unversionedResourceIds);
348
164
  const swatches = await this.getSwatches(swatchIds, siteVersion);
349
- return { ...result, swatches };
165
+ return { ...unversionedResources, swatches };
350
166
  }
351
167
  // TODO: Consolidate this method with the introspectMany method once the
352
168
  // unstable_getComponentSnapshots method is stable and tested in production.
@@ -751,7 +567,7 @@ Received "${apiKey}" instead.`
751
567
  });
752
568
  throw new Error(`Failed to get component snapshot for '${id}': ${responseError(response)}`);
753
569
  }
754
- const document = makeswiftComponentDocumentSchema.parse(await response.json());
570
+ const document = Schema.componentDocument.parse(await response.json());
755
571
  const cacheData = await this.introspect(document.data, siteVersion, locale ?? null);
756
572
  return {
757
573
  document,
@@ -815,115 +631,11 @@ Received "${apiKey}" instead.`
815
631
  };
816
632
  });
817
633
  }
818
- async getSwatch(swatchId, siteVersion) {
819
- const response = await this.fetch(`v3/swatches/${swatchId}`, siteVersion);
820
- if (!response.ok) {
821
- const failedBody = await failedResponseBody(response);
822
- if (response.status !== 404) {
823
- console.error(`Failed to get swatch '${swatchId}'`, {
824
- response: failedBody,
825
- siteVersion
826
- });
827
- }
828
- return null;
829
- }
830
- const swatch = await response.json();
831
- return swatch;
832
- }
833
634
  async getFile(fileId) {
834
- const result = await this.graphqlClient.request(
835
- FileQuery,
836
- { fileId }
837
- );
838
- return result.file;
839
- }
840
- async getTypography(typographyId, siteVersion) {
841
- const response = await this.fetch(`v3/typographies/${typographyId}`, siteVersion);
842
- if (!response.ok) {
843
- const failedBody = await failedResponseBody(response);
844
- if (response.status !== 404) {
845
- console.error(`Failed to get typography '${typographyId}'`, {
846
- response: failedBody,
847
- siteVersion
848
- });
849
- }
850
- return null;
851
- }
852
- const typography = await response.json();
853
- return typography;
854
- }
855
- async getGlobalElement(globalElementId, siteVersion) {
856
- const response = await this.fetch(`v3/global-elements/${globalElementId}`, siteVersion);
857
- if (!response.ok) {
858
- const failedBody = await failedResponseBody(response);
859
- if (response.status !== 404) {
860
- console.error(`Failed to get global element '${globalElementId}'`, {
861
- response: failedBody,
862
- siteVersion
863
- });
864
- }
865
- return null;
866
- }
867
- const globalElement = await response.json();
868
- return globalElement;
869
- }
870
- async getLocalizedGlobalElement(globalElementId, locale, siteVersion) {
871
- const response = await this.fetch(
872
- `v3/localized-global-elements/${globalElementId}?locale=${locale}`,
873
- siteVersion
874
- );
875
- if (!response.ok) {
876
- const failedBody = await failedResponseBody(response);
877
- if (response.status !== 404) {
878
- console.error(`Failed to get localized global element '${globalElementId}'`, {
879
- response: failedBody,
880
- siteVersion,
881
- locale
882
- });
883
- }
884
- return null;
885
- }
886
- const localizedGlobalElement = await response.json();
887
- return localizedGlobalElement;
888
- }
889
- async getPagePathnameSlices(pageIds, siteVersion, { locale }) {
890
- if (pageIds.length === 0)
891
- return [];
892
- const url = new URL(`v3/page-pathname-slices/bulk`, this.apiOrigin);
893
- pageIds.forEach((id) => url.searchParams.append("ids", id));
894
- if (locale != null)
895
- url.searchParams.set("locale", locale);
896
- const response = await this.fetch(url.pathname + url.search, siteVersion);
897
- if (!response.ok) {
898
- console.error(`Failed to get page pathname slice(s) for ${pageIds.join(", ")}`, {
899
- response: await failedResponseBody(response),
900
- siteVersion,
901
- locale
902
- });
903
- return [];
904
- }
905
- const json = await response.json();
906
- const pagePathnameSlices = pagePathnameSlicesAPISchema.parse(json);
907
- return pagePathnameSlices.map((pagePathnameSlice) => {
908
- if (pagePathnameSlice == null)
909
- return null;
910
- return {
911
- ...pagePathnameSlice,
912
- id: pagePathnameSlice.basePageId,
913
- localizedPathname: pagePathnameSlice.localizedPathname ?? null
914
- };
915
- });
916
- }
917
- async getPagePathnameSlice(pageId, siteVersion, { locale } = {}) {
918
- const pagePathnameSlices = await this.getPagePathnameSlices([pageId], siteVersion, { locale });
919
- return pagePathnameSlices.at(0) ?? null;
635
+ return this.graphqlClient.getFile(fileId);
920
636
  }
921
637
  async getTable(tableId) {
922
- const result = await this.graphqlClient.request(
923
- TableQuery,
924
- { tableId }
925
- );
926
- return result.table;
638
+ return this.graphqlClient.getTable(tableId);
927
639
  }
928
640
  getTranslatableData(elementTree) {
929
641
  return getTranslatableContent(this.getElementDescriptors(), elementTree);
@@ -937,7 +649,7 @@ Received "${apiKey}" instead.`
937
649
  headers: {
938
650
  "x-api-key": this.apiKey,
939
651
  "makeswift-site-api-key": this.apiKey,
940
- "makeswift-runtime-version": "0.28.7-canary.4",
652
+ "makeswift-runtime-version": "0.28.7-canary.6",
941
653
  "content-type": "application/json"
942
654
  },
943
655
  body: JSON.stringify({ token }),
@@ -957,7 +669,7 @@ Received "${apiKey}" instead.`
957
669
  return null;
958
670
  }
959
671
  const json = await response.json();
960
- const parsed = previewTokenPayloadSchema.safeParse(json);
672
+ const parsed = Schema.previewTokenPayload.safeParse(json);
961
673
  if (!parsed.success) {
962
674
  throw new Error(
963
675
  `Failed to parse preview token payload: ${parsed.error.errors.map((e) => e.message).join("; ")}`
@@ -975,7 +687,7 @@ Received "${apiKey}" instead.`
975
687
  return null;
976
688
  }
977
689
  const json = await response.json();
978
- const parsed = getFontsAPISchema.safeParse(json);
690
+ const parsed = Schema.fonts.safeParse(json);
979
691
  if (!parsed.success) {
980
692
  console.error("Failed to parse fonts API response", {
981
693
  response: json,
@@ -989,12 +701,39 @@ Received "${apiKey}" instead.`
989
701
  return getPropControllerDescriptors(this.runtime.protoStore.getState());
990
702
  }
991
703
  }
704
+ function getPagesQueryParams({
705
+ limit = 100,
706
+ after,
707
+ sortBy,
708
+ sortDirection,
709
+ includeOffline,
710
+ pathPrefix,
711
+ locale
712
+ }) {
713
+ const params = new URLSearchParams();
714
+ if (limit != null)
715
+ params.set("limit", limit.toString());
716
+ if (after != null)
717
+ params.set("after", after);
718
+ if (sortBy != null)
719
+ params.set("sortBy", sortBy);
720
+ if (sortDirection != null)
721
+ params.set("sortDirection", sortDirection);
722
+ if (includeOffline != null)
723
+ params.set("includeOffline", includeOffline.toString());
724
+ if (pathPrefix != null)
725
+ params.set("pathPrefix", pathPrefix);
726
+ if (locale != null)
727
+ params.set("locale", locale);
728
+ return params;
729
+ }
730
+ function responseError(response) {
731
+ return `${response.status} ${response.statusText}`;
732
+ }
992
733
  export {
993
734
  MakeswiftClient,
994
- SnippetLocation2 as SnippetLocation,
735
+ SnippetLocation,
995
736
  componentDocumentToRootEmbeddedDocument,
996
- failedResponseBody,
997
- pageToRootDocument,
998
- previewTokenPayloadSchema
737
+ pageToRootDocument
999
738
  };
1000
739
  //# sourceMappingURL=index.js.map