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

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 (132) hide show
  1. package/dist/cjs/api/graphql/documents/queries.js +6 -6
  2. package/dist/cjs/api/graphql/documents/queries.js.map +1 -1
  3. package/dist/cjs/api/graphql/generated/types.js.map +1 -1
  4. package/dist/cjs/api/graphql-api-client.js +23 -1
  5. package/dist/cjs/api/graphql-api-client.js.map +1 -1
  6. package/dist/cjs/api/{client.js → host-api-resources-client.js} +7 -7
  7. package/dist/cjs/api/host-api-resources-client.js.map +1 -0
  8. package/dist/cjs/api/rest-api-client.js +187 -0
  9. package/dist/cjs/api/rest-api-client.js.map +1 -0
  10. package/dist/cjs/api/schema/index.js +23 -0
  11. package/dist/cjs/api/schema/index.js.map +1 -0
  12. package/dist/cjs/api/schema/page-pathname-slice.js +38 -0
  13. package/dist/cjs/api/schema/page-pathname-slice.js.map +1 -0
  14. package/dist/cjs/api-handler/handlers/manifest.js +1 -1
  15. package/dist/cjs/client/component-snapshot.js +63 -0
  16. package/dist/cjs/client/component-snapshot.js.map +1 -0
  17. package/dist/cjs/client/index.js +102 -360
  18. package/dist/cjs/client/index.js.map +1 -1
  19. package/dist/cjs/client/page-snapshot.js +33 -0
  20. package/dist/cjs/client/page-snapshot.js.map +1 -0
  21. package/dist/cjs/client/schema/component-document.js +45 -0
  22. package/dist/cjs/client/schema/component-document.js.map +1 -0
  23. package/dist/cjs/client/schema/fonts.js +38 -0
  24. package/dist/cjs/client/schema/fonts.js.map +1 -0
  25. package/dist/cjs/client/schema/get-page.js +39 -0
  26. package/dist/cjs/client/schema/get-page.js.map +1 -0
  27. package/dist/cjs/client/schema/get-pages.js +68 -0
  28. package/dist/cjs/client/schema/get-pages.js.map +1 -0
  29. package/dist/cjs/client/schema/index.js +31 -0
  30. package/dist/cjs/client/schema/index.js.map +1 -0
  31. package/dist/cjs/client/schema/preview-token-payload.js +34 -0
  32. package/dist/cjs/client/schema/preview-token-payload.js.map +1 -0
  33. package/dist/cjs/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  34. package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  35. package/dist/cjs/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  36. package/dist/cjs/next/testing/element-data.js +3 -3
  37. package/dist/cjs/next/testing/element-data.js.map +1 -1
  38. package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -1
  39. package/dist/cjs/runtimes/react/runtime-core.js +2 -2
  40. package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
  41. package/dist/esm/api/graphql/documents/queries.js +4 -4
  42. package/dist/esm/api/graphql/documents/queries.js.map +1 -1
  43. package/dist/esm/api/graphql/generated/types.js.map +1 -1
  44. package/dist/esm/api/graphql-api-client.js +29 -2
  45. package/dist/esm/api/graphql-api-client.js.map +1 -1
  46. package/dist/esm/api/{client.js → host-api-resources-client.js} +3 -3
  47. package/dist/esm/api/host-api-resources-client.js.map +1 -0
  48. package/dist/esm/api/rest-api-client.js +152 -0
  49. package/dist/esm/api/rest-api-client.js.map +1 -0
  50. package/dist/esm/api/schema/index.js +2 -0
  51. package/dist/esm/api/schema/index.js.map +1 -0
  52. package/dist/esm/api/schema/page-pathname-slice.js +14 -0
  53. package/dist/esm/api/schema/page-pathname-slice.js.map +1 -0
  54. package/dist/esm/api-handler/handlers/manifest.js +1 -1
  55. package/dist/esm/client/component-snapshot.js +39 -0
  56. package/dist/esm/client/component-snapshot.js.map +1 -0
  57. package/dist/esm/client/index.js +67 -329
  58. package/dist/esm/client/index.js.map +1 -1
  59. package/dist/esm/client/page-snapshot.js +9 -0
  60. package/dist/esm/client/page-snapshot.js.map +1 -0
  61. package/dist/esm/client/schema/component-document.js +20 -0
  62. package/dist/esm/client/schema/component-document.js.map +1 -0
  63. package/dist/esm/client/schema/fonts.js +14 -0
  64. package/dist/esm/client/schema/fonts.js.map +1 -0
  65. package/dist/esm/client/schema/get-page.js +15 -0
  66. package/dist/esm/client/schema/get-page.js.map +1 -0
  67. package/dist/esm/client/schema/get-pages.js +42 -0
  68. package/dist/esm/client/schema/get-pages.js.map +1 -0
  69. package/dist/esm/client/schema/index.js +6 -0
  70. package/dist/esm/client/schema/index.js.map +1 -0
  71. package/dist/esm/client/schema/preview-token-payload.js +10 -0
  72. package/dist/esm/client/schema/preview-token-payload.js.map +1 -0
  73. package/dist/esm/next/components/tests/controls/color-control/fixtures.js.map +1 -1
  74. package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
  75. package/dist/esm/next/components/tests/controls/rich-text-v2-control/fixtures.js.map +1 -1
  76. package/dist/esm/next/testing/element-data.js +1 -1
  77. package/dist/esm/next/testing/element-data.js.map +1 -1
  78. package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -1
  79. package/dist/esm/runtimes/react/runtime-core.js +2 -2
  80. package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
  81. package/dist/types/api/__tests__/rest-api-client.error-handling.test.d.ts +2 -0
  82. package/dist/types/api/__tests__/rest-api-client.error-handling.test.d.ts.map +1 -0
  83. package/dist/types/api/__tests__/rest-api-client.get-resources.test.d.ts +2 -0
  84. package/dist/types/api/__tests__/rest-api-client.get-resources.test.d.ts.map +1 -0
  85. package/dist/types/api/graphql/documents/queries.d.ts +1 -1
  86. package/dist/types/api/graphql/documents/queries.d.ts.map +1 -1
  87. package/dist/types/api/graphql/generated/types.d.ts +2 -2
  88. package/dist/types/api/graphql/generated/types.d.ts.map +1 -1
  89. package/dist/types/api/graphql-api-client.d.ts +5 -0
  90. package/dist/types/api/graphql-api-client.d.ts.map +1 -1
  91. package/dist/types/api/{client.d.ts → host-api-resources-client.d.ts} +2 -2
  92. package/dist/types/api/host-api-resources-client.d.ts.map +1 -0
  93. package/dist/types/api/rest-api-client.d.ts +27 -0
  94. package/dist/types/api/rest-api-client.d.ts.map +1 -0
  95. package/dist/types/api/schema/index.d.ts +2 -0
  96. package/dist/types/api/schema/index.d.ts.map +1 -0
  97. package/dist/types/api/schema/page-pathname-slice.d.ts +21 -0
  98. package/dist/types/api/schema/page-pathname-slice.d.ts.map +1 -0
  99. package/dist/types/client/component-snapshot.d.ts +25 -0
  100. package/dist/types/client/component-snapshot.d.ts.map +1 -0
  101. package/dist/types/client/index.d.ts +19 -640
  102. package/dist/types/client/index.d.ts.map +1 -1
  103. package/dist/types/client/page-snapshot.d.ts +62 -0
  104. package/dist/types/client/page-snapshot.d.ts.map +1 -0
  105. package/dist/types/client/schema/component-document.d.ts +285 -0
  106. package/dist/types/client/schema/component-document.d.ts.map +1 -0
  107. package/dist/types/client/schema/fonts.d.ts +27 -0
  108. package/dist/types/client/schema/fonts.d.ts.map +1 -0
  109. package/dist/types/client/schema/get-page.d.ts +30 -0
  110. package/dist/types/client/schema/get-page.d.ts.map +1 -0
  111. package/dist/types/client/schema/get-pages.d.ts +202 -0
  112. package/dist/types/client/schema/get-pages.d.ts.map +1 -0
  113. package/dist/types/client/schema/index.d.ts +6 -0
  114. package/dist/types/client/schema/index.d.ts.map +1 -0
  115. package/dist/types/client/schema/preview-token-payload.d.ts +19 -0
  116. package/dist/types/client/schema/preview-token-payload.d.ts.map +1 -0
  117. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts +1 -1
  118. package/dist/types/next/components/tests/controls/color-control/fixtures.d.ts.map +1 -1
  119. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +1 -1
  120. package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
  121. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts +1 -1
  122. package/dist/types/next/components/tests/controls/rich-text-v2-control/fixtures.d.ts.map +1 -1
  123. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +1 -1
  124. package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/dist/cjs/api/client.js.map +0 -1
  127. package/dist/esm/api/client.js.map +0 -1
  128. package/dist/types/api/client.d.ts.map +0 -1
  129. package/dist/types/client/tests/client.error-handling.test.d.ts +0 -2
  130. package/dist/types/client/tests/client.error-handling.test.d.ts.map +0 -1
  131. package/dist/types/client/tests/client.get-resources.test.d.ts +0 -2
  132. package/dist/types/client/tests/client.get-resources.test.d.ts.map +0 -1
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,241 +17,58 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var client_exports = {};
20
30
  __export(client_exports, {
21
31
  MakeswiftClient: () => MakeswiftClient,
22
- SnippetLocation: () => import_types2.SnippetLocation,
23
- componentDocumentToRootEmbeddedDocument: () => componentDocumentToRootEmbeddedDocument,
24
- failedResponseBody: () => failedResponseBody,
25
- pageToRootDocument: () => pageToRootDocument,
26
- previewTokenPayloadSchema: () => previewTokenPayloadSchema
32
+ SnippetLocation: () => import_types3.SnippetLocation,
33
+ componentDocumentToRootEmbeddedDocument: () => import_component_snapshot2.componentDocumentToRootEmbeddedDocument,
34
+ pageToRootDocument: () => import_page_snapshot2.pageToRootDocument
27
35
  });
28
36
  module.exports = __toCommonJS(client_exports);
29
- var import_zod = require("zod");
30
- var import_api = require("../api");
31
- var import_client = require("../api/graphql/client");
32
- var import_documents = require("../api/graphql/documents");
33
- var import_client2 = require("../api/client");
37
+ var import_types2 = require("../api/types");
38
+ var import_api_resources_client = require("../api/api-resources-client");
39
+ var import_graphql_api_client = require("../api/graphql-api-client");
40
+ var import_rest_api_client = require("../api/rest-api-client");
34
41
  var import_introspection = require("../prop-controllers/introspection");
35
42
  var import_read_only_state = require("../state/read-only-state");
36
- var import_pagination = require("../utils/pagination");
37
- var import_deterministic_uuid = require("../utils/deterministic-uuid");
38
- var import_controls = require("@makeswift/controls");
39
- var import_read_only_documents = require("../state/modules/read-only-documents");
40
43
  var import_merge = require("../state/translations/merge");
41
44
  var import_get = require("../state/translations/get");
45
+ var import_deterministic_uuid = require("../utils/deterministic-uuid");
46
+ var import_pagination = require("../utils/pagination");
42
47
  var import_isNonNullable = require("../utils/isNonNullable");
43
- var import_types2 = require("../api/graphql/generated/types");
44
- const makeswiftPageResultSchema = import_zod.z.object({
45
- id: import_zod.z.string(),
46
- path: import_zod.z.string(),
47
- title: import_zod.z.string().nullable(),
48
- description: import_zod.z.string().nullable(),
49
- canonicalUrl: import_zod.z.string().nullable(),
50
- socialImageUrl: import_zod.z.string().nullable(),
51
- sitemapPriority: import_zod.z.number().nullable(),
52
- sitemapFrequency: import_zod.z.enum(["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"]).nullable(),
53
- createdAt: import_zod.z.string(),
54
- updatedAt: import_zod.z.string(),
55
- publishedAt: import_zod.z.string().nullable(),
56
- isOnline: import_zod.z.boolean().nullable(),
57
- excludedFromSearch: import_zod.z.boolean().nullable(),
58
- locale: import_zod.z.string(),
59
- localizedVariants: import_zod.z.array(
60
- import_zod.z.object({
61
- locale: import_zod.z.string(),
62
- path: import_zod.z.string()
63
- })
64
- )
65
- });
66
- const makeswiftGetPagesResultAPISchema = import_zod.z.object({
67
- data: import_zod.z.array(makeswiftPageResultSchema),
68
- hasMore: import_zod.z.boolean()
69
- });
70
- const makeswiftGetPagesParamsSchema = import_zod.z.object({
71
- limit: import_zod.z.number().optional(),
72
- after: import_zod.z.string().optional(),
73
- sortBy: import_zod.z.enum(["title", "path", "description", "createdAt", "updatedAt"]).optional(),
74
- sortDirection: import_zod.z.enum(["asc", "desc"]).optional(),
75
- includeOffline: import_zod.z.boolean().optional(),
76
- pathPrefix: import_zod.z.string().optional(),
77
- locale: import_zod.z.string().optional()
78
- });
79
- function getPagesQueryParams({
80
- limit = 100,
81
- after,
82
- sortBy,
83
- sortDirection,
84
- includeOffline,
85
- pathPrefix,
86
- locale
87
- }) {
88
- const params = new URLSearchParams();
89
- if (limit != null)
90
- params.set("limit", limit.toString());
91
- if (after != null)
92
- params.set("after", after);
93
- if (sortBy != null)
94
- params.set("sortBy", sortBy);
95
- if (sortDirection != null)
96
- params.set("sortDirection", sortDirection);
97
- if (includeOffline != null)
98
- params.set("includeOffline", includeOffline.toString());
99
- if (pathPrefix != null)
100
- params.set("pathPrefix", pathPrefix);
101
- if (locale != null)
102
- params.set("locale", locale);
103
- return params;
104
- }
105
- function pageToRootDocument(pageDocument) {
106
- const { locale, localizedPages, id, data } = pageDocument;
107
- const localizedPage = localizedPages.find(({ parentId }) => parentId == null);
108
- return localizedPage ? { key: localizedPage.elementTreeId, rootElement: localizedPage.data, locale } : { key: id, rootElement: data, locale };
109
- }
110
- const makeswiftComponentDocumentSchema = import_zod.z.object({
111
- id: import_zod.z.string(),
112
- name: import_zod.z.string().nullable(),
113
- locale: import_zod.z.string().nullable(),
114
- data: import_controls.Schema.element,
115
- siteId: import_zod.z.string(),
116
- inheritsFromParent: import_zod.z.boolean()
117
- });
118
- const makeswiftComponentDocumentFallbackSchema = import_zod.z.object({
119
- id: import_zod.z.string(),
120
- locale: import_zod.z.string().nullable(),
121
- data: import_zod.z.null()
122
- });
123
- const previewTokenPayloadSchema = import_zod.z.object({
124
- payload: import_zod.z.object({
125
- version: import_zod.z.string()
126
- })
127
- });
128
- function componentDocumentToRootEmbeddedDocument({
129
- document,
130
- documentKey,
131
- name,
132
- type,
133
- description,
134
- meta
135
- }) {
136
- const { data: rootElement, locale, id } = document;
137
- if (rootElement != null && rootElement.type !== type) {
138
- throw new Error(
139
- `Type "${rootElement.type}" does not match the expected type "${type}" from the snapshot`
140
- );
141
- }
142
- const rootDocument = {
143
- key: documentKey,
144
- rootElement: rootElement ?? {
145
- // Fallback rootElement
146
- // Create a stable uuid so two different clients will have the same empty element data.
147
- // This is needed to make presence feature work for an element that is not yet created.
148
- key: (0, import_deterministic_uuid.deterministicUUID)({ id, locale, seed: documentKey }),
149
- type,
150
- props: {}
151
- },
152
- locale,
153
- id,
154
- type,
155
- name,
156
- meta: { ...meta, description },
157
- __type: import_read_only_documents.EMBEDDED_DOCUMENT_TYPE
158
- };
159
- return rootDocument;
160
- }
161
- async function failedResponseBody(response) {
162
- try {
163
- const text = await response.text();
164
- try {
165
- return JSON.parse(text);
166
- } catch {
167
- return text;
168
- }
169
- } catch (e) {
170
- return `Failed to extract response body: ${e}`;
171
- }
172
- }
173
- function responseError(response) {
174
- return `${response.status} ${response.statusText}`;
175
- }
176
- const pagePathnameSlicesAPISchema = import_zod.z.array(
177
- import_zod.z.object({
178
- id: import_zod.z.string(),
179
- basePageId: import_zod.z.string(),
180
- pathname: import_zod.z.string(),
181
- localizedPathname: import_zod.z.string().optional(),
182
- __typename: import_zod.z.literal("PagePathnameSlice")
183
- }).nullable()
184
- );
185
- const getPageAPISchema = import_zod.z.object({
186
- pathname: import_zod.z.string(),
187
- locale: import_zod.z.string(),
188
- alternate: import_zod.z.array(
189
- import_zod.z.object({
190
- pathname: import_zod.z.string(),
191
- locale: import_zod.z.string()
192
- })
193
- )
194
- });
195
- const getFontsAPISchema = import_zod.z.object({
196
- googleFonts: import_zod.z.array(
197
- import_zod.z.object({
198
- family: import_zod.z.string(),
199
- variants: import_zod.z.array(import_zod.z.string())
200
- })
201
- ),
202
- siteId: import_zod.z.string()
203
- });
204
- class MakeswiftClient {
48
+ var Schema = __toESM(require("./schema"));
49
+ var import_types3 = require("../api/graphql/generated/types");
50
+ var import_component_snapshot2 = require("./component-snapshot");
51
+ var import_page_snapshot2 = require("./page-snapshot");
52
+ class MakeswiftClient extends import_rest_api_client.MakeswiftRestAPIClient {
205
53
  graphqlClient;
206
54
  runtime;
207
- apiKey;
208
- constructor(apiKey, { runtime }) {
55
+ constructor(apiKey, {
56
+ runtime
57
+ }) {
209
58
  if (typeof apiKey !== "string") {
210
59
  throw new Error(
211
60
  `The Makeswift client must be passed a valid Makeswift site API key: \`new Makeswift('<makeswift_site_api_key>')\`
212
61
  Received "${apiKey}" instead.`
213
62
  );
214
63
  }
215
- this.apiKey = apiKey;
216
- this.graphqlClient = new import_client.GraphQLClient(new URL("graphql", runtime.apiOrigin).href, {
217
- "makeswift-runtime-version": "0.28.7-canary.4"
64
+ super({
65
+ apiKey,
66
+ apiOrigin: runtime.apiOrigin
218
67
  });
219
- this.runtime = runtime;
220
- }
221
- get apiOrigin() {
222
- return this.runtime.apiOrigin;
223
- }
224
- async fetch(path, siteVersion, init) {
225
- const requestUrl = new URL(path, this.apiOrigin);
226
- const requestHeaders = new Headers({
227
- "x-api-key": this.apiKey,
228
- "makeswift-site-api-key": this.apiKey,
229
- "makeswift-runtime-version": "0.28.7-canary.4"
68
+ this.graphqlClient = new import_graphql_api_client.MakeswiftGraphQLApiClient({
69
+ endpoint: runtime.graphqlApiEndpoint
230
70
  });
231
- if (siteVersion?.token) {
232
- requestUrl.searchParams.set("version", siteVersion.version);
233
- requestHeaders.set("makeswift-preview-token", siteVersion.token);
234
- }
235
- if (init?.headers) {
236
- new Headers(init.headers).forEach((value, key) => {
237
- requestHeaders.set(key, value);
238
- });
239
- }
240
- const response = await fetch(requestUrl.toString(), {
241
- ...init,
242
- headers: requestHeaders,
243
- ...siteVersion != null ? { cache: "no-store" } : {},
244
- ...this.fetchOptions(siteVersion)
245
- });
246
- return response;
247
- }
248
- /**
249
- * Override this method to provide additional fetch options, e.g. revalidation, cache tags, etc.
250
- */
251
- fetchOptions(_siteVersion) {
252
- return {};
71
+ this.runtime = runtime;
253
72
  }
254
73
  getPagesInternal = async ({
255
74
  siteVersion = null,
@@ -259,14 +78,14 @@ Received "${apiKey}" instead.`
259
78
  const response = await this.fetch(`v5/pages?${queryParams.toString()}`, siteVersion);
260
79
  if (!response.ok) {
261
80
  console.error("Failed to get pages", {
262
- response: await failedResponseBody(response),
81
+ response: await (0, import_rest_api_client.failedResponseBody)(response),
263
82
  siteVersion,
264
83
  params
265
84
  });
266
85
  throw new Error(`Failed to get pages: ${responseError(response)}`);
267
86
  }
268
87
  const result = await response.json();
269
- const parsedResponse = makeswiftGetPagesResultAPISchema.safeParse(result);
88
+ const parsedResponse = Schema.getPagesResult.safeParse(result);
270
89
  if (!parsedResponse.success) {
271
90
  throw new Error(
272
91
  `Failed to parse 'getPages' response: ${parsedResponse.error.errors.map((e) => e.message).join("; ")}`
@@ -281,7 +100,7 @@ Received "${apiKey}" instead.`
281
100
  url.searchParams.set("locale", locale);
282
101
  const response = await this.fetch(url.pathname + url.search, siteVersion);
283
102
  if (!response.ok) {
284
- const failedBody = await failedResponseBody(response);
103
+ const failedBody = await (0, import_rest_api_client.failedResponseBody)(response);
285
104
  if (response.status === 404)
286
105
  return null;
287
106
  console.error(`Failed to get page snapshot for '${pathname}'`, {
@@ -292,7 +111,7 @@ Received "${apiKey}" instead.`
292
111
  throw new Error(`Failed to get page snapshot for '${pathname}': ${responseError(response)}`);
293
112
  }
294
113
  const json = await response.json();
295
- return getPageAPISchema.parse(json);
114
+ return Schema.getPageResult.parse(json);
296
115
  }
297
116
  async getTypographies(typographyIds, siteVersion) {
298
117
  if (typographyIds.length === 0)
@@ -304,7 +123,7 @@ Received "${apiKey}" instead.`
304
123
  const response = await this.fetch(url.pathname + url.search, siteVersion);
305
124
  if (!response.ok) {
306
125
  console.error(`Failed to get typographies for [${typographyIds.join(", ")}]`, {
307
- response: await failedResponseBody(response),
126
+ response: await (0, import_rest_api_client.failedResponseBody)(response),
308
127
  siteVersion
309
128
  });
310
129
  return [];
@@ -322,7 +141,7 @@ Received "${apiKey}" instead.`
322
141
  const response = await this.fetch(url.pathname + url.search, siteVersion);
323
142
  if (!response.ok) {
324
143
  console.error(`Failed to get swatches for ${ids.join(", ")}`, {
325
- response: await failedResponseBody(response),
144
+ response: await (0, import_rest_api_client.failedResponseBody)(response),
326
145
  siteVersion
327
146
  });
328
147
  return [];
@@ -341,7 +160,7 @@ Received "${apiKey}" instead.`
341
160
  body: JSON.stringify(requestBody)
342
161
  });
343
162
  if (!response.ok) {
344
- const failedBody = await failedResponseBody(response);
163
+ const failedBody = await (0, import_rest_api_client.failedResponseBody)(response);
345
164
  if (response.status === 404)
346
165
  return ids.map(() => null);
347
166
  console.error(`Failed to get element trees for [${ids.join(", ")}]`, {
@@ -353,16 +172,16 @@ Received "${apiKey}" instead.`
353
172
  }
354
173
  const responseBody = await response.json();
355
174
  return responseBody.map(
356
- (item) => item != null ? makeswiftComponentDocumentSchema.parse(item) : null
175
+ (item) => item != null ? Schema.componentDocument.parse(item) : null
357
176
  );
358
177
  }
359
178
  async getIntrospectedResources({
360
179
  swatchIds,
361
- ...introspectedResourceIds
180
+ ...unversionedResourceIds
362
181
  }, siteVersion) {
363
- const result = await this.graphqlClient.request(import_documents.IntrospectedResourcesQuery, introspectedResourceIds);
182
+ const unversionedResources = await this.graphqlClient.getUnversionedResources(unversionedResourceIds);
364
183
  const swatches = await this.getSwatches(swatchIds, siteVersion);
365
- return { ...result, swatches };
184
+ return { ...unversionedResources, swatches };
366
185
  }
367
186
  // TODO: Consolidate this method with the introspectMany method once the
368
187
  // unstable_getComponentSnapshots method is stable and tested in production.
@@ -449,32 +268,32 @@ Received "${apiKey}" instead.`
449
268
  siteVersion
450
269
  );
451
270
  const apiResources = {
452
- [import_api.APIResourceType.Swatch]: [...swatchIds].map((id) => ({
271
+ [import_types2.APIResourceType.Swatch]: [...swatchIds].map((id) => ({
453
272
  id,
454
273
  value: swatches.find((swatch) => swatch?.id === id) ?? null
455
274
  })),
456
- [import_api.APIResourceType.File]: [...fileIds].map((id) => ({
275
+ [import_types2.APIResourceType.File]: [...fileIds].map((id) => ({
457
276
  id,
458
277
  value: files.find((file) => file?.id === id) ?? null
459
278
  })),
460
- [import_api.APIResourceType.Typography]: [...typographyIds].map((id) => ({
279
+ [import_types2.APIResourceType.Typography]: [...typographyIds].map((id) => ({
461
280
  id,
462
281
  value: typographies.find((typography) => typography?.id === id) ?? null
463
282
  })),
464
- [import_api.APIResourceType.Table]: [...tableIds].map((id) => ({
283
+ [import_types2.APIResourceType.Table]: [...tableIds].map((id) => ({
465
284
  id,
466
285
  value: tables.find((table) => table?.id === id) ?? null
467
286
  })),
468
- [import_api.APIResourceType.PagePathnameSlice]: [...pageIds].map((id) => ({
287
+ [import_types2.APIResourceType.PagePathnameSlice]: [...pageIds].map((id) => ({
469
288
  id,
470
289
  value: pagePathnames.find((pagePathnameSlice) => pagePathnameSlice?.id === id) ?? null,
471
290
  locale
472
291
  })),
473
- [import_api.APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({
292
+ [import_types2.APIResourceType.GlobalElement]: [...globalElements.entries()].map(([id, value]) => ({
474
293
  id,
475
294
  value
476
295
  })),
477
- [import_api.APIResourceType.LocalizedGlobalElement]: [...localizedGlobalElements.entries()].map(
296
+ [import_types2.APIResourceType.LocalizedGlobalElement]: [...localizedGlobalElements.entries()].map(
478
297
  ([id, value]) => ({
479
298
  id,
480
299
  value,
@@ -633,34 +452,34 @@ Received "${apiKey}" instead.`
633
452
  const result = /* @__PURE__ */ new Map();
634
453
  for (const [treeId, currentTreeCache] of treeCaches) {
635
454
  const apiResources = {
636
- [import_api.APIResourceType.Swatch]: [...currentTreeCache.swatchIds].map((id) => ({
455
+ [import_types2.APIResourceType.Swatch]: [...currentTreeCache.swatchIds].map((id) => ({
637
456
  id,
638
457
  value: swatches.find((swatch) => swatch?.id === id) ?? null
639
458
  })),
640
- [import_api.APIResourceType.File]: [...currentTreeCache.fileIds].map((id) => ({
459
+ [import_types2.APIResourceType.File]: [...currentTreeCache.fileIds].map((id) => ({
641
460
  id,
642
461
  value: files.find((file) => file?.id === id) ?? null
643
462
  })),
644
- [import_api.APIResourceType.Typography]: [...currentTreeCache.typographyIds].map((id) => ({
463
+ [import_types2.APIResourceType.Typography]: [...currentTreeCache.typographyIds].map((id) => ({
645
464
  id,
646
465
  value: typographies.find((typography) => typography?.id === id) ?? null
647
466
  })),
648
- [import_api.APIResourceType.Table]: [...currentTreeCache.tableIds].map((id) => ({
467
+ [import_types2.APIResourceType.Table]: [...currentTreeCache.tableIds].map((id) => ({
649
468
  id,
650
469
  value: tables.find((table) => table?.id === id) ?? null
651
470
  })),
652
- [import_api.APIResourceType.PagePathnameSlice]: [...currentTreeCache.pageIds].map((id) => ({
471
+ [import_types2.APIResourceType.PagePathnameSlice]: [...currentTreeCache.pageIds].map((id) => ({
653
472
  id,
654
473
  value: pagePathnames.find((pagePathnameSlice) => pagePathnameSlice?.id === id) ?? null,
655
474
  locale
656
475
  })),
657
- [import_api.APIResourceType.GlobalElement]: [...currentTreeCache.globalElements.entries()].map(
476
+ [import_types2.APIResourceType.GlobalElement]: [...currentTreeCache.globalElements.entries()].map(
658
477
  ([id, value]) => ({
659
478
  id,
660
479
  value
661
480
  })
662
481
  ),
663
- [import_api.APIResourceType.LocalizedGlobalElement]: [
482
+ [import_types2.APIResourceType.LocalizedGlobalElement]: [
664
483
  ...currentTreeCache.localizedGlobalElements.entries()
665
484
  ].map(([id, value]) => ({
666
485
  id,
@@ -694,7 +513,7 @@ Received "${apiKey}" instead.`
694
513
  siteVersion
695
514
  );
696
515
  if (!response.ok) {
697
- const failedBody = await failedResponseBody(response);
516
+ const failedBody = await (0, import_rest_api_client.failedResponseBody)(response);
698
517
  if (response.status === 404)
699
518
  return null;
700
519
  console.error(`Failed to get page snapshot for '${pathname}'`, {
@@ -738,13 +557,13 @@ Received "${apiKey}" instead.`
738
557
  siteVersion
739
558
  );
740
559
  if (responseForRequestedLocale.status === 404 && canAttemptLocaleFallback) {
741
- await failedResponseBody(responseForRequestedLocale);
560
+ await (0, import_rest_api_client.failedResponseBody)(responseForRequestedLocale);
742
561
  response = await this.fetch(`v2/element-trees/${encodeURIComponent(id)}`, siteVersion);
743
562
  } else {
744
563
  response = responseForRequestedLocale;
745
564
  }
746
565
  if (!response.ok) {
747
- const failedBody = await failedResponseBody(response);
566
+ const failedBody = await (0, import_rest_api_client.failedResponseBody)(response);
748
567
  if (response.status === 404) {
749
568
  return {
750
569
  document: {
@@ -753,7 +572,7 @@ Received "${apiKey}" instead.`
753
572
  data: null
754
573
  },
755
574
  key,
756
- cacheData: import_client2.CacheData.empty(),
575
+ cacheData: import_api_resources_client.CacheData.empty(),
757
576
  meta: {
758
577
  allowLocaleFallback,
759
578
  requestedLocale: locale ?? null
@@ -767,7 +586,7 @@ Received "${apiKey}" instead.`
767
586
  });
768
587
  throw new Error(`Failed to get component snapshot for '${id}': ${responseError(response)}`);
769
588
  }
770
- const document = makeswiftComponentDocumentSchema.parse(await response.json());
589
+ const document = Schema.componentDocument.parse(await response.json());
771
590
  const cacheData = await this.introspect(document.data, siteVersion, locale ?? null);
772
591
  return {
773
592
  document,
@@ -819,127 +638,23 @@ Received "${apiKey}" instead.`
819
638
  return {
820
639
  document: { id, locale: locale ?? null, data: null },
821
640
  key,
822
- cacheData: import_client2.CacheData.empty(),
641
+ cacheData: import_api_resources_client.CacheData.empty(),
823
642
  meta: { allowLocaleFallback, requestedLocale: locale ?? null }
824
643
  };
825
644
  }
826
645
  return {
827
646
  document,
828
647
  key,
829
- cacheData: cacheDataMap.get(id) ?? import_client2.CacheData.empty(),
648
+ cacheData: cacheDataMap.get(id) ?? import_api_resources_client.CacheData.empty(),
830
649
  meta: { allowLocaleFallback, requestedLocale: locale ?? null }
831
650
  };
832
651
  });
833
652
  }
834
- async getSwatch(swatchId, siteVersion) {
835
- const response = await this.fetch(`v3/swatches/${swatchId}`, siteVersion);
836
- if (!response.ok) {
837
- const failedBody = await failedResponseBody(response);
838
- if (response.status !== 404) {
839
- console.error(`Failed to get swatch '${swatchId}'`, {
840
- response: failedBody,
841
- siteVersion
842
- });
843
- }
844
- return null;
845
- }
846
- const swatch = await response.json();
847
- return swatch;
848
- }
849
653
  async getFile(fileId) {
850
- const result = await this.graphqlClient.request(
851
- import_documents.FileQuery,
852
- { fileId }
853
- );
854
- return result.file;
855
- }
856
- async getTypography(typographyId, siteVersion) {
857
- const response = await this.fetch(`v3/typographies/${typographyId}`, siteVersion);
858
- if (!response.ok) {
859
- const failedBody = await failedResponseBody(response);
860
- if (response.status !== 404) {
861
- console.error(`Failed to get typography '${typographyId}'`, {
862
- response: failedBody,
863
- siteVersion
864
- });
865
- }
866
- return null;
867
- }
868
- const typography = await response.json();
869
- return typography;
870
- }
871
- async getGlobalElement(globalElementId, siteVersion) {
872
- const response = await this.fetch(`v3/global-elements/${globalElementId}`, siteVersion);
873
- if (!response.ok) {
874
- const failedBody = await failedResponseBody(response);
875
- if (response.status !== 404) {
876
- console.error(`Failed to get global element '${globalElementId}'`, {
877
- response: failedBody,
878
- siteVersion
879
- });
880
- }
881
- return null;
882
- }
883
- const globalElement = await response.json();
884
- return globalElement;
885
- }
886
- async getLocalizedGlobalElement(globalElementId, locale, siteVersion) {
887
- const response = await this.fetch(
888
- `v3/localized-global-elements/${globalElementId}?locale=${locale}`,
889
- siteVersion
890
- );
891
- if (!response.ok) {
892
- const failedBody = await failedResponseBody(response);
893
- if (response.status !== 404) {
894
- console.error(`Failed to get localized global element '${globalElementId}'`, {
895
- response: failedBody,
896
- siteVersion,
897
- locale
898
- });
899
- }
900
- return null;
901
- }
902
- const localizedGlobalElement = await response.json();
903
- return localizedGlobalElement;
904
- }
905
- async getPagePathnameSlices(pageIds, siteVersion, { locale }) {
906
- if (pageIds.length === 0)
907
- return [];
908
- const url = new URL(`v3/page-pathname-slices/bulk`, this.apiOrigin);
909
- pageIds.forEach((id) => url.searchParams.append("ids", id));
910
- if (locale != null)
911
- url.searchParams.set("locale", locale);
912
- const response = await this.fetch(url.pathname + url.search, siteVersion);
913
- if (!response.ok) {
914
- console.error(`Failed to get page pathname slice(s) for ${pageIds.join(", ")}`, {
915
- response: await failedResponseBody(response),
916
- siteVersion,
917
- locale
918
- });
919
- return [];
920
- }
921
- const json = await response.json();
922
- const pagePathnameSlices = pagePathnameSlicesAPISchema.parse(json);
923
- return pagePathnameSlices.map((pagePathnameSlice) => {
924
- if (pagePathnameSlice == null)
925
- return null;
926
- return {
927
- ...pagePathnameSlice,
928
- id: pagePathnameSlice.basePageId,
929
- localizedPathname: pagePathnameSlice.localizedPathname ?? null
930
- };
931
- });
932
- }
933
- async getPagePathnameSlice(pageId, siteVersion, { locale } = {}) {
934
- const pagePathnameSlices = await this.getPagePathnameSlices([pageId], siteVersion, { locale });
935
- return pagePathnameSlices.at(0) ?? null;
654
+ return this.graphqlClient.getFile(fileId);
936
655
  }
937
656
  async getTable(tableId) {
938
- const result = await this.graphqlClient.request(
939
- import_documents.TableQuery,
940
- { tableId }
941
- );
942
- return result.table;
657
+ return this.graphqlClient.getTable(tableId);
943
658
  }
944
659
  getTranslatableData(elementTree) {
945
660
  return (0, import_get.getTranslatableContent)(this.getElementDescriptors(), elementTree);
@@ -953,14 +668,14 @@ Received "${apiKey}" instead.`
953
668
  headers: {
954
669
  "x-api-key": this.apiKey,
955
670
  "makeswift-site-api-key": this.apiKey,
956
- "makeswift-runtime-version": "0.28.7-canary.4",
671
+ "makeswift-runtime-version": "0.28.7-canary.5",
957
672
  "content-type": "application/json"
958
673
  },
959
674
  body: JSON.stringify({ token }),
960
675
  cache: "no-store"
961
676
  });
962
677
  if (!response.ok) {
963
- const failedBody = await failedResponseBody(response);
678
+ const failedBody = await (0, import_rest_api_client.failedResponseBody)(response);
964
679
  if (response.status === 401) {
965
680
  console.error(`Preview token is invalid or expired`, {
966
681
  response: failedBody
@@ -973,7 +688,7 @@ Received "${apiKey}" instead.`
973
688
  return null;
974
689
  }
975
690
  const json = await response.json();
976
- const parsed = previewTokenPayloadSchema.safeParse(json);
691
+ const parsed = Schema.previewTokenPayload.safeParse(json);
977
692
  if (!parsed.success) {
978
693
  throw new Error(
979
694
  `Failed to parse preview token payload: ${parsed.error.errors.map((e) => e.message).join("; ")}`
@@ -985,13 +700,13 @@ Received "${apiKey}" instead.`
985
700
  const response = await this.fetch("v1_unstable/fonts", siteVersion);
986
701
  if (!response.ok) {
987
702
  console.error("Failed to fetch fonts", {
988
- response: await failedResponseBody(response),
703
+ response: await (0, import_rest_api_client.failedResponseBody)(response),
989
704
  siteVersion
990
705
  });
991
706
  return null;
992
707
  }
993
708
  const json = await response.json();
994
- const parsed = getFontsAPISchema.safeParse(json);
709
+ const parsed = Schema.fonts.safeParse(json);
995
710
  if (!parsed.success) {
996
711
  console.error("Failed to parse fonts API response", {
997
712
  response: json,
@@ -1005,13 +720,40 @@ Received "${apiKey}" instead.`
1005
720
  return (0, import_read_only_state.getPropControllerDescriptors)(this.runtime.protoStore.getState());
1006
721
  }
1007
722
  }
723
+ function getPagesQueryParams({
724
+ limit = 100,
725
+ after,
726
+ sortBy,
727
+ sortDirection,
728
+ includeOffline,
729
+ pathPrefix,
730
+ locale
731
+ }) {
732
+ const params = new URLSearchParams();
733
+ if (limit != null)
734
+ params.set("limit", limit.toString());
735
+ if (after != null)
736
+ params.set("after", after);
737
+ if (sortBy != null)
738
+ params.set("sortBy", sortBy);
739
+ if (sortDirection != null)
740
+ params.set("sortDirection", sortDirection);
741
+ if (includeOffline != null)
742
+ params.set("includeOffline", includeOffline.toString());
743
+ if (pathPrefix != null)
744
+ params.set("pathPrefix", pathPrefix);
745
+ if (locale != null)
746
+ params.set("locale", locale);
747
+ return params;
748
+ }
749
+ function responseError(response) {
750
+ return `${response.status} ${response.statusText}`;
751
+ }
1008
752
  // Annotate the CommonJS export names for ESM import in node:
1009
753
  0 && (module.exports = {
1010
754
  MakeswiftClient,
1011
755
  SnippetLocation,
1012
756
  componentDocumentToRootEmbeddedDocument,
1013
- failedResponseBody,
1014
- pageToRootDocument,
1015
- previewTokenPayloadSchema
757
+ pageToRootDocument
1016
758
  });
1017
759
  //# sourceMappingURL=index.js.map