@datocms/cma-client 5.1.10 → 5.1.11

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 (206) hide show
  1. package/README.md +575 -0
  2. package/dist/cjs/fieldTypes/boolean.js +2 -2
  3. package/dist/cjs/fieldTypes/boolean.js.map +1 -1
  4. package/dist/cjs/fieldTypes/color.js +2 -2
  5. package/dist/cjs/fieldTypes/color.js.map +1 -1
  6. package/dist/cjs/fieldTypes/date.js +2 -3
  7. package/dist/cjs/fieldTypes/date.js.map +1 -1
  8. package/dist/cjs/fieldTypes/date_time.js +2 -2
  9. package/dist/cjs/fieldTypes/date_time.js.map +1 -1
  10. package/dist/cjs/fieldTypes/file.js +33 -5
  11. package/dist/cjs/fieldTypes/file.js.map +1 -1
  12. package/dist/cjs/fieldTypes/float.js +2 -2
  13. package/dist/cjs/fieldTypes/float.js.map +1 -1
  14. package/dist/cjs/fieldTypes/gallery.js +20 -5
  15. package/dist/cjs/fieldTypes/gallery.js.map +1 -1
  16. package/dist/cjs/fieldTypes/index.js +2 -2
  17. package/dist/cjs/fieldTypes/index.js.map +1 -1
  18. package/dist/cjs/fieldTypes/integer.js +2 -2
  19. package/dist/cjs/fieldTypes/integer.js.map +1 -1
  20. package/dist/cjs/fieldTypes/json.js +2 -3
  21. package/dist/cjs/fieldTypes/json.js.map +1 -1
  22. package/dist/cjs/fieldTypes/lat_lon.js +2 -2
  23. package/dist/cjs/fieldTypes/lat_lon.js.map +1 -1
  24. package/dist/cjs/fieldTypes/link.js +4 -4
  25. package/dist/cjs/fieldTypes/link.js.map +1 -1
  26. package/dist/cjs/fieldTypes/links.js +5 -3
  27. package/dist/cjs/fieldTypes/links.js.map +1 -1
  28. package/dist/cjs/fieldTypes/rich_text.js +4 -6
  29. package/dist/cjs/fieldTypes/rich_text.js.map +1 -1
  30. package/dist/cjs/fieldTypes/seo.js +2 -3
  31. package/dist/cjs/fieldTypes/seo.js.map +1 -1
  32. package/dist/cjs/fieldTypes/single_block.js +7 -7
  33. package/dist/cjs/fieldTypes/single_block.js.map +1 -1
  34. package/dist/cjs/fieldTypes/slug.js +2 -3
  35. package/dist/cjs/fieldTypes/slug.js.map +1 -1
  36. package/dist/cjs/fieldTypes/string.js +2 -2
  37. package/dist/cjs/fieldTypes/string.js.map +1 -1
  38. package/dist/cjs/fieldTypes/structured_text.js +4 -6
  39. package/dist/cjs/fieldTypes/structured_text.js.map +1 -1
  40. package/dist/cjs/fieldTypes/text.js +2 -3
  41. package/dist/cjs/fieldTypes/text.js.map +1 -1
  42. package/dist/cjs/fieldTypes/video.js +2 -2
  43. package/dist/cjs/fieldTypes/video.js.map +1 -1
  44. package/dist/cjs/generated/Client.js +1 -1
  45. package/dist/cjs/index.js +4 -4
  46. package/dist/cjs/index.js.map +1 -1
  47. package/dist/cjs/utilities/buildBlockRecord.js +8 -7
  48. package/dist/cjs/utilities/buildBlockRecord.js.map +1 -1
  49. package/dist/cjs/utilities/inspectItem.js +397 -0
  50. package/dist/cjs/utilities/inspectItem.js.map +1 -0
  51. package/dist/cjs/utilities/{blocks.js → nonRecursiveBlocks.js} +106 -111
  52. package/dist/cjs/utilities/nonRecursiveBlocks.js.map +1 -0
  53. package/dist/cjs/utilities/{fieldValue.js → normalizedFieldValues.js} +53 -41
  54. package/dist/cjs/utilities/normalizedFieldValues.js.map +1 -0
  55. package/dist/cjs/utilities/recursiveBlocks.js +121 -80
  56. package/dist/cjs/utilities/recursiveBlocks.js.map +1 -1
  57. package/dist/cjs/utilities/schemaRepository.js +2 -2
  58. package/dist/esm/fieldTypes/boolean.d.ts +1 -1
  59. package/dist/esm/fieldTypes/boolean.js +2 -2
  60. package/dist/esm/fieldTypes/boolean.js.map +1 -1
  61. package/dist/esm/fieldTypes/color.d.ts +1 -1
  62. package/dist/esm/fieldTypes/color.js +2 -2
  63. package/dist/esm/fieldTypes/color.js.map +1 -1
  64. package/dist/esm/fieldTypes/date.d.ts +1 -1
  65. package/dist/esm/fieldTypes/date.js +2 -3
  66. package/dist/esm/fieldTypes/date.js.map +1 -1
  67. package/dist/esm/fieldTypes/date_time.d.ts +1 -1
  68. package/dist/esm/fieldTypes/date_time.js +2 -2
  69. package/dist/esm/fieldTypes/date_time.js.map +1 -1
  70. package/dist/esm/fieldTypes/file.d.ts +68 -1
  71. package/dist/esm/fieldTypes/file.js +29 -3
  72. package/dist/esm/fieldTypes/file.js.map +1 -1
  73. package/dist/esm/fieldTypes/float.d.ts +1 -1
  74. package/dist/esm/fieldTypes/float.js +2 -2
  75. package/dist/esm/fieldTypes/float.js.map +1 -1
  76. package/dist/esm/fieldTypes/gallery.d.ts +27 -11
  77. package/dist/esm/fieldTypes/gallery.js +17 -4
  78. package/dist/esm/fieldTypes/gallery.js.map +1 -1
  79. package/dist/esm/fieldTypes/index.d.ts +2 -2
  80. package/dist/esm/fieldTypes/index.js +2 -2
  81. package/dist/esm/fieldTypes/index.js.map +1 -1
  82. package/dist/esm/fieldTypes/integer.d.ts +1 -1
  83. package/dist/esm/fieldTypes/integer.js +2 -2
  84. package/dist/esm/fieldTypes/integer.js.map +1 -1
  85. package/dist/esm/fieldTypes/json.d.ts +1 -1
  86. package/dist/esm/fieldTypes/json.js +2 -3
  87. package/dist/esm/fieldTypes/json.js.map +1 -1
  88. package/dist/esm/fieldTypes/lat_lon.d.ts +1 -1
  89. package/dist/esm/fieldTypes/lat_lon.js +2 -2
  90. package/dist/esm/fieldTypes/lat_lon.js.map +1 -1
  91. package/dist/esm/fieldTypes/link.d.ts +1 -1
  92. package/dist/esm/fieldTypes/link.js +4 -4
  93. package/dist/esm/fieldTypes/link.js.map +1 -1
  94. package/dist/esm/fieldTypes/links.d.ts +1 -1
  95. package/dist/esm/fieldTypes/links.js +5 -3
  96. package/dist/esm/fieldTypes/links.js.map +1 -1
  97. package/dist/esm/fieldTypes/rich_text.d.ts +1 -1
  98. package/dist/esm/fieldTypes/rich_text.js +4 -6
  99. package/dist/esm/fieldTypes/rich_text.js.map +1 -1
  100. package/dist/esm/fieldTypes/seo.d.ts +1 -1
  101. package/dist/esm/fieldTypes/seo.js +2 -3
  102. package/dist/esm/fieldTypes/seo.js.map +1 -1
  103. package/dist/esm/fieldTypes/single_block.d.ts +1 -1
  104. package/dist/esm/fieldTypes/single_block.js +7 -7
  105. package/dist/esm/fieldTypes/single_block.js.map +1 -1
  106. package/dist/esm/fieldTypes/slug.d.ts +1 -1
  107. package/dist/esm/fieldTypes/slug.js +2 -3
  108. package/dist/esm/fieldTypes/slug.js.map +1 -1
  109. package/dist/esm/fieldTypes/string.d.ts +1 -1
  110. package/dist/esm/fieldTypes/string.js +2 -2
  111. package/dist/esm/fieldTypes/string.js.map +1 -1
  112. package/dist/esm/fieldTypes/structured_text.d.ts +1 -1
  113. package/dist/esm/fieldTypes/structured_text.js +4 -6
  114. package/dist/esm/fieldTypes/structured_text.js.map +1 -1
  115. package/dist/esm/fieldTypes/text.d.ts +1 -1
  116. package/dist/esm/fieldTypes/text.js +2 -3
  117. package/dist/esm/fieldTypes/text.js.map +1 -1
  118. package/dist/esm/fieldTypes/video.d.ts +1 -1
  119. package/dist/esm/fieldTypes/video.js +2 -2
  120. package/dist/esm/fieldTypes/video.js.map +1 -1
  121. package/dist/esm/generated/Client.js +1 -1
  122. package/dist/esm/index.d.ts +4 -4
  123. package/dist/esm/index.js +4 -4
  124. package/dist/esm/index.js.map +1 -1
  125. package/dist/esm/utilities/buildBlockRecord.js +9 -8
  126. package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
  127. package/dist/esm/utilities/inspectItem.d.ts +8 -0
  128. package/dist/esm/utilities/inspectItem.js +393 -0
  129. package/dist/esm/utilities/inspectItem.js.map +1 -0
  130. package/dist/esm/utilities/itemDefinition.d.ts +28 -4
  131. package/dist/esm/utilities/nonRecursiveBlocks.d.ts +179 -0
  132. package/dist/esm/utilities/{blocks.js → nonRecursiveBlocks.js} +91 -96
  133. package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -0
  134. package/dist/{types/utilities/fieldValue.d.ts → esm/utilities/normalizedFieldValues.d.ts} +15 -14
  135. package/dist/esm/utilities/{fieldValue.js → normalizedFieldValues.js} +39 -28
  136. package/dist/esm/utilities/normalizedFieldValues.js.map +1 -0
  137. package/dist/esm/utilities/recursiveBlocks.d.ts +92 -9
  138. package/dist/esm/utilities/recursiveBlocks.js +113 -72
  139. package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
  140. package/dist/esm/utilities/schemaRepository.d.ts +2 -2
  141. package/dist/esm/utilities/schemaRepository.js +2 -2
  142. package/dist/types/fieldTypes/boolean.d.ts +1 -1
  143. package/dist/types/fieldTypes/color.d.ts +1 -1
  144. package/dist/types/fieldTypes/date.d.ts +1 -1
  145. package/dist/types/fieldTypes/date_time.d.ts +1 -1
  146. package/dist/types/fieldTypes/file.d.ts +68 -1
  147. package/dist/types/fieldTypes/float.d.ts +1 -1
  148. package/dist/types/fieldTypes/gallery.d.ts +27 -11
  149. package/dist/types/fieldTypes/index.d.ts +2 -2
  150. package/dist/types/fieldTypes/integer.d.ts +1 -1
  151. package/dist/types/fieldTypes/json.d.ts +1 -1
  152. package/dist/types/fieldTypes/lat_lon.d.ts +1 -1
  153. package/dist/types/fieldTypes/link.d.ts +1 -1
  154. package/dist/types/fieldTypes/links.d.ts +1 -1
  155. package/dist/types/fieldTypes/rich_text.d.ts +1 -1
  156. package/dist/types/fieldTypes/seo.d.ts +1 -1
  157. package/dist/types/fieldTypes/single_block.d.ts +1 -1
  158. package/dist/types/fieldTypes/slug.d.ts +1 -1
  159. package/dist/types/fieldTypes/string.d.ts +1 -1
  160. package/dist/types/fieldTypes/structured_text.d.ts +1 -1
  161. package/dist/types/fieldTypes/text.d.ts +1 -1
  162. package/dist/types/fieldTypes/video.d.ts +1 -1
  163. package/dist/types/index.d.ts +4 -4
  164. package/dist/types/utilities/inspectItem.d.ts +8 -0
  165. package/dist/types/utilities/itemDefinition.d.ts +28 -4
  166. package/dist/types/utilities/nonRecursiveBlocks.d.ts +179 -0
  167. package/dist/{esm/utilities/fieldValue.d.ts → types/utilities/normalizedFieldValues.d.ts} +15 -14
  168. package/dist/types/utilities/recursiveBlocks.d.ts +92 -9
  169. package/dist/types/utilities/schemaRepository.d.ts +2 -2
  170. package/package.json +3 -3
  171. package/src/fieldTypes/boolean.ts +5 -3
  172. package/src/fieldTypes/color.ts +5 -3
  173. package/src/fieldTypes/date.ts +5 -4
  174. package/src/fieldTypes/date_time.ts +5 -3
  175. package/src/fieldTypes/file.ts +98 -4
  176. package/src/fieldTypes/float.ts +5 -3
  177. package/src/fieldTypes/gallery.ts +53 -20
  178. package/src/fieldTypes/index.ts +2 -3
  179. package/src/fieldTypes/integer.ts +5 -3
  180. package/src/fieldTypes/json.ts +5 -4
  181. package/src/fieldTypes/lat_lon.ts +5 -3
  182. package/src/fieldTypes/link.ts +7 -5
  183. package/src/fieldTypes/links.ts +8 -4
  184. package/src/fieldTypes/rich_text.ts +7 -7
  185. package/src/fieldTypes/seo.ts +5 -4
  186. package/src/fieldTypes/single_block.ts +10 -8
  187. package/src/fieldTypes/slug.ts +5 -4
  188. package/src/fieldTypes/string.ts +5 -3
  189. package/src/fieldTypes/structured_text.ts +7 -7
  190. package/src/fieldTypes/text.ts +5 -4
  191. package/src/fieldTypes/video.ts +5 -3
  192. package/src/generated/Client.ts +1 -1
  193. package/src/index.ts +4 -4
  194. package/src/utilities/buildBlockRecord.ts +16 -15
  195. package/src/utilities/inspectItem.ts +590 -0
  196. package/src/utilities/itemDefinition.ts +30 -3
  197. package/src/utilities/{blocks.ts → nonRecursiveBlocks.ts} +170 -136
  198. package/src/utilities/{fieldValue.ts → normalizedFieldValues.ts} +70 -30
  199. package/src/utilities/recursiveBlocks.ts +186 -171
  200. package/src/utilities/schemaRepository.ts +2 -2
  201. package/dist/cjs/utilities/blocks.js.map +0 -1
  202. package/dist/cjs/utilities/fieldValue.js.map +0 -1
  203. package/dist/esm/utilities/blocks.d.ts +0 -180
  204. package/dist/esm/utilities/blocks.js.map +0 -1
  205. package/dist/esm/utilities/fieldValue.js.map +0 -1
  206. package/dist/types/utilities/blocks.d.ts +0 -180
@@ -0,0 +1,393 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { formatAsTree, inspectionTreeNodes, } from 'datocms-structured-text-utils';
13
+ import { isBooleanFieldValue, isColorFieldValue, isDateFieldValue, isDateTimeFieldValue, isFileFieldValue, isFileFieldValueAsRequest, isFloatFieldValue, isGalleryFieldValue, isGalleryFieldValueAsRequest, isIntegerFieldValue, isJsonFieldValue, isLatLonFieldValue, isLinkFieldValue, isLinksFieldValue, isRichTextFieldValue, isRichTextFieldValueAsRequest, isRichTextFieldValueWithNestedBlocks, isSeoFieldValue, isSingleBlockFieldValue, isSingleBlockFieldValueAsRequest, isSingleBlockFieldValueWithNestedBlocks, isSlugFieldValue, isStringFieldValue, isStructuredTextFieldValue, isStructuredTextFieldValueAsRequest, isStructuredTextFieldValueWithNestedBlocks, isTextFieldValue, isVideoFieldValue, } from '../fieldTypes';
14
+ import { buildBlockRecord } from '../index';
15
+ import { isLocalizedFieldValue } from './normalizedFieldValues';
16
+ const fieldTypeHandlers = [
17
+ { guard: isBooleanFieldValue, inspect: booleanInspectionTreeNodes },
18
+ { guard: isFloatFieldValue, inspect: floatInspectionTreeNodes },
19
+ { guard: isIntegerFieldValue, inspect: integerInspectionTreeNodes },
20
+ { guard: isColorFieldValue, inspect: colorInspectionTreeNodes },
21
+ { guard: isDateFieldValue, inspect: dateInspectionTreeNodes },
22
+ { guard: isDateTimeFieldValue, inspect: dateTimeInspectionTreeNodes },
23
+ { guard: isGalleryFieldValue, inspect: galleryInspectionTreeNodes },
24
+ { guard: isGalleryFieldValueAsRequest, inspect: galleryInspectionTreeNodes },
25
+ { guard: isFileFieldValue, inspect: fileInspectionTreeNodes },
26
+ { guard: isFileFieldValueAsRequest, inspect: fileInspectionTreeNodes },
27
+ { guard: isJsonFieldValue, inspect: jsonInspectionTreeNodes },
28
+ { guard: isSlugFieldValue, inspect: slugInspectionTreeNodes },
29
+ { guard: isStringFieldValue, inspect: stringInspectionTreeNodes },
30
+ { guard: isTextFieldValue, inspect: textInspectionTreeNodes },
31
+ { guard: isLatLonFieldValue, inspect: latLonInspectionTreeNodes },
32
+ { guard: isLinkFieldValue, inspect: linkInspectionTreeNodes },
33
+ { guard: isLinksFieldValue, inspect: linksInspectionTreeNodes },
34
+ { guard: isSeoFieldValue, inspect: seoFieldInspectionTreeNodes },
35
+ { guard: isVideoFieldValue, inspect: videoFieldInspectionTreeNodes },
36
+ {
37
+ guard: isStructuredTextFieldValue,
38
+ inspect: structuredTextInspectionTreeNodes,
39
+ },
40
+ {
41
+ guard: isStructuredTextFieldValueAsRequest,
42
+ inspect: structuredTextInspectionTreeNodes,
43
+ },
44
+ {
45
+ guard: isStructuredTextFieldValueWithNestedBlocks,
46
+ inspect: structuredTextInspectionTreeNodes,
47
+ },
48
+ { guard: isSingleBlockFieldValue, inspect: singleBlockInspectionTreeNodes },
49
+ {
50
+ guard: isSingleBlockFieldValueAsRequest,
51
+ inspect: singleBlockInspectionTreeNodes,
52
+ },
53
+ {
54
+ guard: isSingleBlockFieldValueWithNestedBlocks,
55
+ inspect: singleBlockInspectionTreeNodes,
56
+ },
57
+ { guard: isRichTextFieldValue, inspect: richTextInspectionTreeNodes },
58
+ {
59
+ guard: isRichTextFieldValueAsRequest,
60
+ inspect: richTextInspectionTreeNodes,
61
+ },
62
+ {
63
+ guard: isRichTextFieldValueWithNestedBlocks,
64
+ inspect: richTextInspectionTreeNodes,
65
+ },
66
+ ];
67
+ function createChildNode(attributeName, inspectResult) {
68
+ if (typeof inspectResult === 'string') {
69
+ return { label: `${attributeName}: ${inspectResult}` };
70
+ }
71
+ if (Array.isArray(inspectResult)) {
72
+ return {
73
+ label: attributeName,
74
+ nodes: inspectResult,
75
+ };
76
+ }
77
+ // Single TreeNode
78
+ return {
79
+ label: attributeName,
80
+ nodes: [inspectResult],
81
+ };
82
+ }
83
+ function inspectFieldValue(value, options) {
84
+ if (isLocalizedFieldValue(value)) {
85
+ for (const handler of fieldTypeHandlers) {
86
+ if (Object.values(value).every((localeValue) => handler.guard(localeValue))) {
87
+ const localeEntries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
88
+ return localeEntries.map(([locale, localeValue]) => {
89
+ const inspectResult = handler.inspect(localeValue, options);
90
+ if (typeof inspectResult === 'string') {
91
+ return { label: `${locale}: ${inspectResult}` };
92
+ }
93
+ if (Array.isArray(inspectResult)) {
94
+ return {
95
+ label: locale,
96
+ nodes: inspectResult,
97
+ };
98
+ }
99
+ // Single TreeNode
100
+ return {
101
+ label: locale,
102
+ nodes: [inspectResult],
103
+ };
104
+ });
105
+ }
106
+ }
107
+ }
108
+ for (const handler of fieldTypeHandlers) {
109
+ if (handler.guard(value)) {
110
+ return handler.inspect(value, options);
111
+ }
112
+ }
113
+ // Fallback for unknown field types
114
+ return `UNKNOWN: ${JSON.stringify(value)}`;
115
+ }
116
+ function extractAttributes(item) {
117
+ if ('attributes' in item) {
118
+ return item.attributes;
119
+ }
120
+ const serializedItem = buildBlockRecord(item);
121
+ const _a = serializedItem.attributes, { __itemTypeId } = _a, rest = __rest(_a, ["__itemTypeId"]);
122
+ return rest;
123
+ }
124
+ export function inspectItem(item, options) {
125
+ return formatAsTree(itemInspectionTreeNodes(item, options));
126
+ }
127
+ function itemInspectionTreeNodes(item, options) {
128
+ var _a, _b;
129
+ let itemTypeId;
130
+ if ('relationships' in item && item.relationships) {
131
+ const relationships = item.relationships;
132
+ if ((_b = (_a = relationships.item_type) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.id) {
133
+ itemTypeId = relationships.item_type.data.id;
134
+ }
135
+ }
136
+ const rootLabel = [
137
+ 'Item',
138
+ 'id' in item ? JSON.stringify(item.id) : null,
139
+ itemTypeId ? `(item_type: ${JSON.stringify(itemTypeId)})` : null,
140
+ ]
141
+ .filter(Boolean)
142
+ .join(' ');
143
+ const nodes = [];
144
+ for (const [attributeName, attributeValue] of Object.entries(extractAttributes(item))) {
145
+ const inspectResult = inspectFieldValue(attributeValue, options);
146
+ nodes.push(createChildNode(attributeName, inspectResult));
147
+ }
148
+ return {
149
+ label: rootLabel,
150
+ nodes: nodes.length > 0 ? nodes : undefined,
151
+ };
152
+ }
153
+ function structuredTextInspectionTreeNodes(value, options) {
154
+ if (value === null)
155
+ return 'null';
156
+ return inspectionTreeNodes(value, {
157
+ maxWidth: (options === null || options === void 0 ? void 0 : options.maxWidth) || 80,
158
+ blockFormatter: (block, maxWidth) => {
159
+ if (typeof block === 'string') {
160
+ return JSON.stringify(block);
161
+ }
162
+ return itemInspectionTreeNodes(block, options);
163
+ },
164
+ });
165
+ }
166
+ function singleBlockInspectionTreeNodes(value, options) {
167
+ if (value === null)
168
+ return 'null';
169
+ if (typeof value === 'string')
170
+ return JSON.stringify(value);
171
+ return itemInspectionTreeNodes(value, options);
172
+ }
173
+ function richTextInspectionTreeNodes(value, options) {
174
+ if (value === null)
175
+ return 'null';
176
+ return value.map((item, index) => {
177
+ const result = singleBlockInspectionTreeNodes(item, options);
178
+ if (typeof result === 'string') {
179
+ return { label: `[${index}] ${result}` };
180
+ }
181
+ result.label = `[${index}] ${result.label}`;
182
+ return result;
183
+ });
184
+ }
185
+ function booleanInspectionTreeNodes(value) {
186
+ return JSON.stringify(value);
187
+ }
188
+ function colorInspectionTreeNodes(value) {
189
+ if (value === null)
190
+ return 'null';
191
+ const { red, green, blue, alpha } = value;
192
+ const hex = `#${red.toString(16).padStart(2, '0').toUpperCase()}${green.toString(16).padStart(2, '0').toUpperCase()}${blue.toString(16).padStart(2, '0').toUpperCase()}`;
193
+ if (alpha === 255) {
194
+ return hex;
195
+ }
196
+ const alphaPercent = Math.round((alpha / 255) * 100);
197
+ return `${hex} ${alphaPercent}%`;
198
+ }
199
+ function dateInspectionTreeNodes(value) {
200
+ if (value === null)
201
+ return 'null';
202
+ return value;
203
+ }
204
+ function dateTimeInspectionTreeNodes(value) {
205
+ if (value === null)
206
+ return 'null';
207
+ return value;
208
+ }
209
+ function fileInspectionTreeNodes(value, options) {
210
+ if (value === null)
211
+ return 'null';
212
+ const nodes = [];
213
+ nodes.push({ label: `upload_id: ${JSON.stringify(value.upload_id)}` });
214
+ if (value.alt) {
215
+ nodes.push({
216
+ label: `alt: ${JSON.stringify(truncate(value.alt, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
217
+ });
218
+ }
219
+ if (value.title) {
220
+ nodes.push({
221
+ label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
222
+ });
223
+ }
224
+ if (value.custom_data && Object.keys(value.custom_data).length > 0) {
225
+ nodes.push({
226
+ label: `custom_data: ${truncate(JSON.stringify(value.custom_data), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80)}`,
227
+ });
228
+ }
229
+ if (value.focal_point) {
230
+ const x = value.focal_point.x * 100;
231
+ const y = value.focal_point.y * 100;
232
+ nodes.push({ label: `focal_point: x=${x}% y=${y}%` });
233
+ }
234
+ return nodes;
235
+ }
236
+ function floatInspectionTreeNodes(value) {
237
+ if (value === null)
238
+ return 'null';
239
+ return value.toString();
240
+ }
241
+ function galleryInspectionTreeNodes(value, options) {
242
+ if (!value || value.length === 0)
243
+ return '[]';
244
+ const itemNodes = value.map((item, index) => {
245
+ const nodes = [];
246
+ nodes.push({
247
+ label: `upload_id: ${JSON.stringify(item.upload_id)}`,
248
+ });
249
+ if (item.alt) {
250
+ nodes.push({
251
+ label: `alt: ${JSON.stringify(truncate(item.alt, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
252
+ });
253
+ }
254
+ if (item.title) {
255
+ nodes.push({
256
+ label: `title: ${JSON.stringify(truncate(item.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
257
+ });
258
+ }
259
+ if (item.custom_data && Object.keys(item.custom_data).length > 0) {
260
+ nodes.push({
261
+ label: `custom_data: ${truncate(JSON.stringify(item.custom_data), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80)}`,
262
+ });
263
+ }
264
+ if (item.focal_point) {
265
+ const x = item.focal_point.x * 100;
266
+ const y = item.focal_point.y * 100;
267
+ nodes.push({ label: `focal_point: x=${x}% y=${y}%` });
268
+ }
269
+ return {
270
+ label: `[${index}]`,
271
+ nodes: nodes,
272
+ };
273
+ });
274
+ return itemNodes;
275
+ }
276
+ function integerInspectionTreeNodes(value) {
277
+ if (value === null)
278
+ return 'null';
279
+ return value.toString();
280
+ }
281
+ function jsonInspectionTreeNodes(value, options) {
282
+ if (value === null)
283
+ return 'null';
284
+ return truncate(JSON.stringify(JSON.parse(value)), (options === null || options === void 0 ? void 0 : options.maxWidth) || 80);
285
+ }
286
+ function latLonInspectionTreeNodes(value) {
287
+ if (value === null)
288
+ return 'null';
289
+ return [
290
+ { label: `latitude: ${value.latitude}` },
291
+ { label: `longitude: ${value.longitude}` },
292
+ ];
293
+ }
294
+ function linkInspectionTreeNodes(value) {
295
+ if (value === null)
296
+ return 'null';
297
+ return JSON.stringify(value);
298
+ }
299
+ function linksInspectionTreeNodes(value) {
300
+ if (value === null)
301
+ return 'null';
302
+ return value.map((itemId, index) => ({
303
+ label: `[${index}]: ${JSON.stringify(itemId)}`,
304
+ }));
305
+ }
306
+ function seoFieldInspectionTreeNodes(value, options) {
307
+ if (value === null)
308
+ return 'null';
309
+ const nodes = [];
310
+ if (value.title) {
311
+ nodes.push({
312
+ label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
313
+ });
314
+ }
315
+ if (value.description) {
316
+ nodes.push({
317
+ label: `description: ${JSON.stringify(truncate(value.description, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
318
+ });
319
+ }
320
+ if (value.image) {
321
+ nodes.push({
322
+ label: `image: ${value.image}`,
323
+ });
324
+ }
325
+ if (value.twitter_card) {
326
+ nodes.push({
327
+ label: `twitter_card: ${value.twitter_card}`,
328
+ });
329
+ }
330
+ if (value.no_index !== undefined) {
331
+ nodes.push({
332
+ label: `no_index: ${value.no_index}`,
333
+ });
334
+ }
335
+ return nodes;
336
+ }
337
+ function slugInspectionTreeNodes(value, options) {
338
+ if (value === null)
339
+ return 'null';
340
+ return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
341
+ }
342
+ function stringInspectionTreeNodes(value, options) {
343
+ if (value === null)
344
+ return 'null';
345
+ return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
346
+ }
347
+ function textInspectionTreeNodes(value, options) {
348
+ if (value === null)
349
+ return 'null';
350
+ return JSON.stringify(truncate(value, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80));
351
+ }
352
+ function videoFieldInspectionTreeNodes(value, options) {
353
+ if (value === null)
354
+ return 'null';
355
+ const nodes = [];
356
+ nodes.push({ label: `provider: ${value.provider}` });
357
+ nodes.push({ label: `provider_uid: ${value.provider_uid}` });
358
+ nodes.push({ label: `url: ${value.url}` });
359
+ nodes.push({ label: `size: ${value.width}⨯${value.height}px` });
360
+ nodes.push({ label: `thumbnail_url: ${value.thumbnail_url}` });
361
+ if (value.title) {
362
+ nodes.push({
363
+ label: `title: ${JSON.stringify(truncate(value.title, (options === null || options === void 0 ? void 0 : options.maxWidth) || 80))}`,
364
+ });
365
+ }
366
+ return nodes;
367
+ }
368
+ function localizedFieldValueInspectionTreeNodes(value, options) {
369
+ const localeEntries = Object.entries(value).sort(([a], [b]) => a.localeCompare(b));
370
+ return localeEntries.map(([locale, localeValue]) => {
371
+ const inspectResult = inspectFieldValue(localeValue, options);
372
+ if (typeof inspectResult === 'string') {
373
+ return { label: `${locale}: ${inspectResult}` };
374
+ }
375
+ if (Array.isArray(inspectResult)) {
376
+ return {
377
+ label: locale,
378
+ nodes: inspectResult,
379
+ };
380
+ }
381
+ // Single TreeNode
382
+ return {
383
+ label: locale,
384
+ nodes: [inspectResult],
385
+ };
386
+ });
387
+ }
388
+ function truncate(text, maxWidth) {
389
+ if (text.length <= maxWidth)
390
+ return text;
391
+ return `${text.slice(0, maxWidth - 3)}...`;
392
+ }
393
+ //# sourceMappingURL=inspectItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspectItem.js","sourceRoot":"","sources":["../../../src/utilities/inspectItem.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FloatFieldValue, GalleryFieldValue, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueAsRequest, RichTextFieldValueWithNestedBlocks, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueAsRequest, SingleBlockFieldValueWithNestedBlocks, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueAsRequest, StructuredTextFieldValueWithNestedBlocks, TextFieldValue, VideoFieldValue } from '../fieldTypes';
2
- import type { LocalizedFieldValue } from './fieldValue';
1
+ import type { BooleanFieldValue, ColorFieldValue, DateFieldValue, DateTimeFieldValue, FileFieldValue, FileFieldValueAsRequest, FloatFieldValue, GalleryFieldValue, GalleryFieldValueAsRequest, IntegerFieldValue, JsonFieldValue, LatLonFieldValue, LinkFieldValue, LinksFieldValue, RichTextFieldValue, RichTextFieldValueAsRequest, RichTextFieldValueWithNestedBlocks, SeoFieldValue, SingleBlockFieldValue, SingleBlockFieldValueAsRequest, SingleBlockFieldValueWithNestedBlocks, SlugFieldValue, StringFieldValue, StructuredTextFieldValue, StructuredTextFieldValueAsRequest, StructuredTextFieldValueWithNestedBlocks, TextFieldValue, VideoFieldValue } from '../fieldTypes';
2
+ import type { LocalizedFieldValue } from './normalizedFieldValues';
3
3
  /** Base field definition */
4
4
  type BaseFieldDefinition<Type extends string> = {
5
5
  type: Type;
@@ -32,7 +32,7 @@ export type ItemDefinition<ItemTypeId extends string = string, FieldValues exten
32
32
  itemTypeId: ItemTypeId;
33
33
  fields: FieldValues;
34
34
  };
35
- /** Standard field values */
35
+ /** Standard field values (response format) */
36
36
  type FieldTypeToValue = {
37
37
  boolean: BooleanFieldValue;
38
38
  color: ColorFieldValue;
@@ -56,6 +56,30 @@ type FieldTypeToValue = {
56
56
  video: VideoFieldValue;
57
57
  unknown: unknown;
58
58
  };
59
+ /** Request field values (request format with optional metadata) */
60
+ type FieldTypeToValueAsRequest = {
61
+ boolean: BooleanFieldValue;
62
+ color: ColorFieldValue;
63
+ date: DateFieldValue;
64
+ date_time: DateTimeFieldValue;
65
+ file: FileFieldValueAsRequest;
66
+ float: FloatFieldValue;
67
+ gallery: GalleryFieldValueAsRequest;
68
+ integer: IntegerFieldValue;
69
+ json: JsonFieldValue;
70
+ lat_lon: LatLonFieldValue;
71
+ link: LinkFieldValue;
72
+ links: LinksFieldValue;
73
+ rich_text: RichTextFieldValueAsRequest;
74
+ seo: SeoFieldValue;
75
+ single_block: SingleBlockFieldValueAsRequest;
76
+ slug: SlugFieldValue;
77
+ string: StringFieldValue;
78
+ structured_text: StructuredTextFieldValueAsRequest;
79
+ text: TextFieldValue;
80
+ video: VideoFieldValue;
81
+ unknown: unknown;
82
+ };
59
83
  /** Localized wrapper */
60
84
  type LocalizeIfNeeded<T extends FieldDefinition, Value, Locales extends string> = T extends {
61
85
  localized: true;
@@ -67,7 +91,7 @@ type FieldDefinitionToFieldValueAsRequest<T extends FieldDefinition, Locales ext
67
91
  blocks: any;
68
92
  } ? ToItemDefinitionAsRequest<B> : never, T extends {
69
93
  inline_blocks: any;
70
- } ? ToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValue[T['type']], Locales>;
94
+ } ? ToItemDefinitionAsRequest<I> : never>, Locales> : LocalizeIfNeeded<T, FieldTypeToValueAsRequest[T['type']], Locales>;
71
95
  type FieldDefinitionToFieldValueWithNestedBlocks<T extends FieldDefinition, Locales extends string> = T extends RichTextFieldDefinition<infer B> ? LocalizeIfNeeded<T, RichTextFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends SingleBlockFieldDefinition<infer B> ? LocalizeIfNeeded<T, SingleBlockFieldValueWithNestedBlocks<ToItemDefinitionWithNestedBlocks<B>>, Locales> : T extends StructuredTextFieldDefinition<infer B, infer I> ? LocalizeIfNeeded<T, StructuredTextFieldValueWithNestedBlocks<T extends {
72
96
  blocks: any;
73
97
  } ? ToItemDefinitionWithNestedBlocks<B> : never, T extends {
@@ -0,0 +1,179 @@
1
+ /**
2
+ * DatoCMS Block Field Value Processing Utilities
3
+ *
4
+ * This utility provides a unified interface for working with blocks embedded within DatoCMS field values.
5
+ * DatoCMS supports three field types that can contain blocks:
6
+ * - Modular Content fields: arrays of blocks
7
+ * - Single Block fields: a single block
8
+ * - Structured Text fields: complex document structures with embedded blocks
9
+ *
10
+ * The challenge this solves: Each field type stores blocks differently and requires different
11
+ * traversal logic, making it complex to perform operations like transformations, filtering,
12
+ * or searching across blocks regardless of their containing field type.
13
+ *
14
+ * This utility abstracts away these differences, providing a consistent API to:
15
+ * - Visit/iterate through all blocks in any field type
16
+ * - Transform blocks while preserving field structure
17
+ * - Filter blocks based on conditions
18
+ * - Search for specific blocks
19
+ * - Perform functional operations (map, reduce, some, every)
20
+ *
21
+ * All functions come in both sync and async variants to support different use cases,
22
+ * particularly useful when block transformations require async operations like API calls.
23
+ */
24
+ import { type TreePath } from 'datocms-structured-text-utils';
25
+ import type { BlockItemInARequest } from '../fieldTypes';
26
+ import type * as ApiTypes from '../generated/ApiTypes';
27
+ /**
28
+ * Visit every block in a field value, calling the visitor function for each block found.
29
+ * Supports rich text, single block, and structured text field types.
30
+ *
31
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
32
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to visit
33
+ * @param visitor - Synchronous function called for each block. Receives the block item and its path
34
+ */
35
+ export declare function nonRecursiveVisitBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => void): void;
36
+ /**
37
+ * Visit every block in a field value, calling the visitor function for each block found.
38
+ * Supports rich text, single block, and structured text field types.
39
+ *
40
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
41
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to visit
42
+ * @param visitor - Asynchronous function called for each block. Receives the block item and its path
43
+ * @returns Promise that resolves when all blocks have been visited
44
+ */
45
+ export declare function nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => Promise<void>): Promise<void>;
46
+ /**
47
+ * Transform blocks in a field value by applying a mapping function to each block.
48
+ * Creates a new field value structure with transformed blocks while preserving the original structure.
49
+ * Supports rich text, single block, and structured text field types.
50
+ *
51
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
52
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to transform
53
+ * @param mapper - Synchronous function that transforms each block. Receives block item and path, returns new block
54
+ * @returns The new field value with transformed blocks
55
+ */
56
+ export declare function nonRecursiveMapBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => BlockItemInARequest): unknown;
57
+ /**
58
+ * Transform blocks in a field value by applying a mapping function to each block.
59
+ * Creates a new field value structure with transformed blocks while preserving the original structure.
60
+ * Supports rich text, single block, and structured text field types.
61
+ *
62
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
63
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to transform
64
+ * @param mapper - Asynchronous function that transforms each block. Receives block item and path, returns new block
65
+ * @returns Promise that resolves to the new field value with transformed blocks
66
+ */
67
+ export declare function nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => Promise<BlockItemInARequest>): Promise<unknown>;
68
+ /**
69
+ * Find all blocks that match the predicate function.
70
+ * Searches through all blocks in the non-localized field value and returns all matches.
71
+ *
72
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
73
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to search
74
+ * @param predicate - Synchronous function that tests each block. Should return true for matching blocks
75
+ * @returns Array of objects, each containing a matching block and its path
76
+ */
77
+ export declare function nonRecursiveFindAllBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): Array<{
78
+ item: BlockItemInARequest;
79
+ path: TreePath;
80
+ }>;
81
+ /**
82
+ * Find all blocks that match the predicate function.
83
+ * Searches through all blocks in the non-localized field value and returns all matches.
84
+ *
85
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
86
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to search
87
+ * @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
88
+ * @returns Promise that resolves to an array of objects, each containing a matching block and its path
89
+ */
90
+ export declare function nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<Array<{
91
+ item: BlockItemInARequest;
92
+ path: TreePath;
93
+ }>>;
94
+ /**
95
+ * Filter blocks in a field value, removing those that don't match the predicate.
96
+ * Creates a new field value containing only blocks that pass the predicate test.
97
+ * Preserves the original field value structure and hierarchy.
98
+ *
99
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
100
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to filter
101
+ * @param predicate - Synchronous function that tests each block. Blocks returning false are removed
102
+ * @returns The new field value with filtered blocks
103
+ */
104
+ export declare function nonRecursiveFilterBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): unknown;
105
+ /**
106
+ * Filter blocks in a field value, removing those that don't match the predicate.
107
+ * Creates a new field value containing only blocks that pass the predicate test.
108
+ * Preserves the original field value structure and hierarchy.
109
+ *
110
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
111
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to filter
112
+ * @param predicate - Asynchronous function that tests each block. Blocks returning false are removed
113
+ * @returns Promise that resolves to the new field value with filtered blocks
114
+ */
115
+ export declare function nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<unknown>;
116
+ /**
117
+ * Reduce all blocks in a field value to a single value by applying a reducer function.
118
+ * Processes each block in the non-localized field value and accumulates the results into a single value.
119
+ *
120
+ * @template R - The type of the accumulated result
121
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
122
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to reduce
123
+ * @param reducer - Synchronous function that processes each block and updates the accumulator
124
+ * @param initialValue - The initial value for the accumulator
125
+ * @returns The final accumulated value
126
+ */
127
+ export declare function nonRecursiveReduceBlocksInNonLocalizedFieldValue<R>(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => R, initialValue: R): R;
128
+ /**
129
+ * Reduce all blocks in a field value to a single value by applying a reducer function.
130
+ * Processes each block in the non-localized field value and accumulates the results into a single value.
131
+ *
132
+ * @template R - The type of the accumulated result
133
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
134
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to reduce
135
+ * @param reducer - Asynchronous function that processes each block and updates the accumulator
136
+ * @param initialValue - The initial value for the accumulator
137
+ * @returns Promise that resolves to the final accumulated value
138
+ */
139
+ export declare function nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync<R>(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => Promise<R>, initialValue: R): Promise<R>;
140
+ /**
141
+ * Check if any block in the non-localized field value matches the predicate function.
142
+ * Returns true as soon as the first matching block is found (short-circuit evaluation).
143
+ *
144
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
145
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
146
+ * @param predicate - Synchronous function that tests each block. Should return true for matching blocks
147
+ * @returns True if any block matches, false otherwise
148
+ */
149
+ export declare function nonRecursiveSomeBlocksInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
150
+ /**
151
+ * Check if any block in the non-localized field value matches the predicate function.
152
+ * Returns true as soon as the first matching block is found (short-circuit evaluation).
153
+ *
154
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
155
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
156
+ * @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
157
+ * @returns Promise that resolves to true if any block matches, false otherwise
158
+ */
159
+ export declare function nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;
160
+ /**
161
+ * Check if every block in the non-localized field value matches the predicate function.
162
+ * Returns false as soon as the first non-matching block is found (short-circuit evaluation).
163
+ *
164
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
165
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
166
+ * @param predicate - Synchronous function that tests each block. Should return true for valid blocks
167
+ * @returns True if all blocks match, false otherwise
168
+ */
169
+ export declare function nonRecursiveEveryBlockInNonLocalizedFieldValue(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
170
+ /**
171
+ * Check if every block in the non-localized field value matches the predicate function.
172
+ * Returns false as soon as the first non-matching block is found (short-circuit evaluation).
173
+ *
174
+ * @param fieldType - The type of DatoCMS field definition that determines how the value is processed
175
+ * @param nonLocalizedFieldValue - The non-localized field value containing blocks to test
176
+ * @param predicate - Asynchronous function that tests each block. Should return true for valid blocks
177
+ * @returns Promise that resolves to true if all blocks match, false otherwise
178
+ */
179
+ export declare function nonRecursiveEveryBlockInNonLocalizedFieldValueAsync(fieldType: ApiTypes.Field['field_type'], nonLocalizedFieldValue: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;