@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
@@ -1,180 +0,0 @@
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
- import type * as RawApiTypes from '../generated/RawApiTypes';
28
- /**
29
- * Visit every block in a field value, calling the visitor function for each block found.
30
- * Supports rich text, single block, and structured text field types.
31
- *
32
- * @param field - The DatoCMS field definition that determines how blocks are processed
33
- * @param value - The field value containing blocks to visit
34
- * @param visitor - Synchronous function called for each block. Receives the block item and its path
35
- */
36
- export declare function nonRecursiveVisitBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => void): void;
37
- /**
38
- * Visit every block in a field value, calling the visitor function for each block found.
39
- * Supports rich text, single block, and structured text field types.
40
- *
41
- * @param field - The DatoCMS field definition that determines how blocks are processed
42
- * @param value - The field value containing blocks to visit
43
- * @param visitor - Asynchronous function called for each block. Receives the block item and its path
44
- * @returns Promise that resolves when all blocks have been visited
45
- */
46
- export declare function nonRecursiveVisitBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => Promise<void>): Promise<void>;
47
- /**
48
- * Transform blocks in a field value by applying a mapping function to each block.
49
- * Creates a new field value structure with transformed blocks while preserving the original structure.
50
- * Supports rich text, single block, and structured text field types.
51
- *
52
- * @param field - The DatoCMS field definition that determines how blocks are processed
53
- * @param value - The field value containing blocks to transform
54
- * @param mapper - Synchronous function that transforms each block. Receives block item and path, returns new block
55
- * @returns The new field value with transformed blocks
56
- */
57
- export declare function nonRecursiveMapBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => BlockItemInARequest): unknown;
58
- /**
59
- * Transform blocks in a field value by applying a mapping function to each block.
60
- * Creates a new field value structure with transformed blocks while preserving the original structure.
61
- * Supports rich text, single block, and structured text field types.
62
- *
63
- * @param field - The DatoCMS field definition that determines how blocks are processed
64
- * @param value - The field value containing blocks to transform
65
- * @param mapper - Asynchronous function that transforms each block. Receives block item and path, returns new block
66
- * @returns Promise that resolves to the new field value with transformed blocks
67
- */
68
- export declare function nonRecursiveMapBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => Promise<BlockItemInARequest>): Promise<unknown>;
69
- /**
70
- * Find all blocks that match the predicate function.
71
- * Searches through all blocks in the field value and returns all matches.
72
- *
73
- * @param field - The DatoCMS field definition that determines how blocks are processed
74
- * @param value - The field value containing blocks to search
75
- * @param predicate - Synchronous function that tests each block. Should return true for matching blocks
76
- * @returns Array of objects, each containing a matching block and its path
77
- */
78
- export declare function nonRecursiveFindAllBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): Array<{
79
- item: BlockItemInARequest;
80
- path: TreePath;
81
- }>;
82
- /**
83
- * Find all blocks that match the predicate function.
84
- * Searches through all blocks in the field value and returns all matches.
85
- *
86
- * @param field - The DatoCMS field definition that determines how blocks are processed
87
- * @param value - The field value containing blocks to search
88
- * @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
89
- * @returns Promise that resolves to an array of objects, each containing a matching block and its path
90
- */
91
- export declare function nonRecursiveFindAllBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<Array<{
92
- item: BlockItemInARequest;
93
- path: TreePath;
94
- }>>;
95
- /**
96
- * Filter blocks in a field value, removing those that don't match the predicate.
97
- * Creates a new field value containing only blocks that pass the predicate test.
98
- * Preserves the original field value structure and hierarchy.
99
- *
100
- * @param field - The DatoCMS field definition that determines how blocks are processed
101
- * @param value - The field value containing blocks to filter
102
- * @param predicate - Synchronous function that tests each block. Blocks returning false are removed
103
- * @returns The new field value with filtered blocks
104
- */
105
- export declare function nonRecursiveFilterBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): unknown;
106
- /**
107
- * Filter blocks in a field value, removing those that don't match the predicate.
108
- * Creates a new field value containing only blocks that pass the predicate test.
109
- * Preserves the original field value structure and hierarchy.
110
- *
111
- * @param field - The DatoCMS field definition that determines how blocks are processed
112
- * @param value - The field value containing blocks to filter
113
- * @param predicate - Asynchronous function that tests each block. Blocks returning false are removed
114
- * @returns Promise that resolves to the new field value with filtered blocks
115
- */
116
- export declare function nonRecursiveFilterBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<unknown>;
117
- /**
118
- * Reduce all blocks in a field value to a single value by applying a reducer function.
119
- * Processes each block in the field value and accumulates the results into a single value.
120
- *
121
- * @template R - The type of the accumulated result
122
- * @param field - The DatoCMS field definition that determines how blocks are processed
123
- * @param value - The field value containing blocks to reduce
124
- * @param reducer - Synchronous function that processes each block and updates the accumulator
125
- * @param initialValue - The initial value for the accumulator
126
- * @returns The final accumulated value
127
- */
128
- export declare function nonRecursiveReduceBlocksInFieldValue<R>(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => R, initialValue: R): R;
129
- /**
130
- * Reduce all blocks in a field value to a single value by applying a reducer function.
131
- * Processes each block in the field value and accumulates the results into a single value.
132
- *
133
- * @template R - The type of the accumulated result
134
- * @param field - The DatoCMS field definition that determines how blocks are processed
135
- * @param value - The field value containing blocks to reduce
136
- * @param reducer - Asynchronous function that processes each block and updates the accumulator
137
- * @param initialValue - The initial value for the accumulator
138
- * @returns Promise that resolves to the final accumulated value
139
- */
140
- export declare function nonRecursiveReduceBlocksInFieldValueAsync<R>(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => Promise<R>, initialValue: R): Promise<R>;
141
- /**
142
- * Check if any block in the field value matches the predicate function.
143
- * Returns true as soon as the first matching block is found (short-circuit evaluation).
144
- *
145
- * @param field - The DatoCMS field definition that determines how blocks are processed
146
- * @param value - The field value containing blocks to test
147
- * @param predicate - Synchronous function that tests each block. Should return true for matching blocks
148
- * @returns True if any block matches, false otherwise
149
- */
150
- export declare function nonRecursiveSomeBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
151
- /**
152
- * Check if any block in the field value matches the predicate function.
153
- * Returns true as soon as the first matching block is found (short-circuit evaluation).
154
- *
155
- * @param field - The DatoCMS field definition that determines how blocks are processed
156
- * @param value - The field value containing blocks to test
157
- * @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
158
- * @returns Promise that resolves to true if any block matches, false otherwise
159
- */
160
- export declare function nonRecursiveSomeBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;
161
- /**
162
- * Check if every block in the field value matches the predicate function.
163
- * Returns false as soon as the first non-matching block is found (short-circuit evaluation).
164
- *
165
- * @param field - The DatoCMS field definition that determines how blocks are processed
166
- * @param value - The field value containing blocks to test
167
- * @param predicate - Synchronous function that tests each block. Should return true for valid blocks
168
- * @returns True if all blocks match, false otherwise
169
- */
170
- export declare function nonRecursiveEveryBlockInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
171
- /**
172
- * Check if every block in the field value matches the predicate function.
173
- * Returns false as soon as the first non-matching block is found (short-circuit evaluation).
174
- *
175
- * @param field - The DatoCMS field definition that determines how blocks are processed
176
- * @param value - The field value containing blocks to test
177
- * @param predicate - Asynchronous function that tests each block. Should return true for valid blocks
178
- * @returns Promise that resolves to true if all blocks match, false otherwise
179
- */
180
- export declare function nonRecursiveEveryBlockInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/utilities/blocks.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fieldValue.js","sourceRoot":"","sources":["../../../src/utilities/fieldValue.ts"],"names":[],"mappings":"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"}
@@ -1,180 +0,0 @@
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
- import type * as RawApiTypes from '../generated/RawApiTypes';
28
- /**
29
- * Visit every block in a field value, calling the visitor function for each block found.
30
- * Supports rich text, single block, and structured text field types.
31
- *
32
- * @param field - The DatoCMS field definition that determines how blocks are processed
33
- * @param value - The field value containing blocks to visit
34
- * @param visitor - Synchronous function called for each block. Receives the block item and its path
35
- */
36
- export declare function nonRecursiveVisitBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => void): void;
37
- /**
38
- * Visit every block in a field value, calling the visitor function for each block found.
39
- * Supports rich text, single block, and structured text field types.
40
- *
41
- * @param field - The DatoCMS field definition that determines how blocks are processed
42
- * @param value - The field value containing blocks to visit
43
- * @param visitor - Asynchronous function called for each block. Receives the block item and its path
44
- * @returns Promise that resolves when all blocks have been visited
45
- */
46
- export declare function nonRecursiveVisitBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, visitor: (item: BlockItemInARequest, path: TreePath) => Promise<void>): Promise<void>;
47
- /**
48
- * Transform blocks in a field value by applying a mapping function to each block.
49
- * Creates a new field value structure with transformed blocks while preserving the original structure.
50
- * Supports rich text, single block, and structured text field types.
51
- *
52
- * @param field - The DatoCMS field definition that determines how blocks are processed
53
- * @param value - The field value containing blocks to transform
54
- * @param mapper - Synchronous function that transforms each block. Receives block item and path, returns new block
55
- * @returns The new field value with transformed blocks
56
- */
57
- export declare function nonRecursiveMapBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => BlockItemInARequest): unknown;
58
- /**
59
- * Transform blocks in a field value by applying a mapping function to each block.
60
- * Creates a new field value structure with transformed blocks while preserving the original structure.
61
- * Supports rich text, single block, and structured text field types.
62
- *
63
- * @param field - The DatoCMS field definition that determines how blocks are processed
64
- * @param value - The field value containing blocks to transform
65
- * @param mapper - Asynchronous function that transforms each block. Receives block item and path, returns new block
66
- * @returns Promise that resolves to the new field value with transformed blocks
67
- */
68
- export declare function nonRecursiveMapBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, mapper: (item: BlockItemInARequest, path: TreePath) => Promise<BlockItemInARequest>): Promise<unknown>;
69
- /**
70
- * Find all blocks that match the predicate function.
71
- * Searches through all blocks in the field value and returns all matches.
72
- *
73
- * @param field - The DatoCMS field definition that determines how blocks are processed
74
- * @param value - The field value containing blocks to search
75
- * @param predicate - Synchronous function that tests each block. Should return true for matching blocks
76
- * @returns Array of objects, each containing a matching block and its path
77
- */
78
- export declare function nonRecursiveFindAllBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): Array<{
79
- item: BlockItemInARequest;
80
- path: TreePath;
81
- }>;
82
- /**
83
- * Find all blocks that match the predicate function.
84
- * Searches through all blocks in the field value and returns all matches.
85
- *
86
- * @param field - The DatoCMS field definition that determines how blocks are processed
87
- * @param value - The field value containing blocks to search
88
- * @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
89
- * @returns Promise that resolves to an array of objects, each containing a matching block and its path
90
- */
91
- export declare function nonRecursiveFindAllBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<Array<{
92
- item: BlockItemInARequest;
93
- path: TreePath;
94
- }>>;
95
- /**
96
- * Filter blocks in a field value, removing those that don't match the predicate.
97
- * Creates a new field value containing only blocks that pass the predicate test.
98
- * Preserves the original field value structure and hierarchy.
99
- *
100
- * @param field - The DatoCMS field definition that determines how blocks are processed
101
- * @param value - The field value containing blocks to filter
102
- * @param predicate - Synchronous function that tests each block. Blocks returning false are removed
103
- * @returns The new field value with filtered blocks
104
- */
105
- export declare function nonRecursiveFilterBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): unknown;
106
- /**
107
- * Filter blocks in a field value, removing those that don't match the predicate.
108
- * Creates a new field value containing only blocks that pass the predicate test.
109
- * Preserves the original field value structure and hierarchy.
110
- *
111
- * @param field - The DatoCMS field definition that determines how blocks are processed
112
- * @param value - The field value containing blocks to filter
113
- * @param predicate - Asynchronous function that tests each block. Blocks returning false are removed
114
- * @returns Promise that resolves to the new field value with filtered blocks
115
- */
116
- export declare function nonRecursiveFilterBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<unknown>;
117
- /**
118
- * Reduce all blocks in a field value to a single value by applying a reducer function.
119
- * Processes each block in the field value and accumulates the results into a single value.
120
- *
121
- * @template R - The type of the accumulated result
122
- * @param field - The DatoCMS field definition that determines how blocks are processed
123
- * @param value - The field value containing blocks to reduce
124
- * @param reducer - Synchronous function that processes each block and updates the accumulator
125
- * @param initialValue - The initial value for the accumulator
126
- * @returns The final accumulated value
127
- */
128
- export declare function nonRecursiveReduceBlocksInFieldValue<R>(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => R, initialValue: R): R;
129
- /**
130
- * Reduce all blocks in a field value to a single value by applying a reducer function.
131
- * Processes each block in the field value and accumulates the results into a single value.
132
- *
133
- * @template R - The type of the accumulated result
134
- * @param field - The DatoCMS field definition that determines how blocks are processed
135
- * @param value - The field value containing blocks to reduce
136
- * @param reducer - Asynchronous function that processes each block and updates the accumulator
137
- * @param initialValue - The initial value for the accumulator
138
- * @returns Promise that resolves to the final accumulated value
139
- */
140
- export declare function nonRecursiveReduceBlocksInFieldValueAsync<R>(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, reducer: (accumulator: R, item: BlockItemInARequest, path: TreePath) => Promise<R>, initialValue: R): Promise<R>;
141
- /**
142
- * Check if any block in the field value matches the predicate function.
143
- * Returns true as soon as the first matching block is found (short-circuit evaluation).
144
- *
145
- * @param field - The DatoCMS field definition that determines how blocks are processed
146
- * @param value - The field value containing blocks to test
147
- * @param predicate - Synchronous function that tests each block. Should return true for matching blocks
148
- * @returns True if any block matches, false otherwise
149
- */
150
- export declare function nonRecursiveSomeBlocksInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
151
- /**
152
- * Check if any block in the field value matches the predicate function.
153
- * Returns true as soon as the first matching block is found (short-circuit evaluation).
154
- *
155
- * @param field - The DatoCMS field definition that determines how blocks are processed
156
- * @param value - The field value containing blocks to test
157
- * @param predicate - Asynchronous function that tests each block. Should return true for matching blocks
158
- * @returns Promise that resolves to true if any block matches, false otherwise
159
- */
160
- export declare function nonRecursiveSomeBlocksInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;
161
- /**
162
- * Check if every block in the field value matches the predicate function.
163
- * Returns false as soon as the first non-matching block is found (short-circuit evaluation).
164
- *
165
- * @param field - The DatoCMS field definition that determines how blocks are processed
166
- * @param value - The field value containing blocks to test
167
- * @param predicate - Synchronous function that tests each block. Should return true for valid blocks
168
- * @returns True if all blocks match, false otherwise
169
- */
170
- export declare function nonRecursiveEveryBlockInFieldValue(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => boolean): boolean;
171
- /**
172
- * Check if every block in the field value matches the predicate function.
173
- * Returns false as soon as the first non-matching block is found (short-circuit evaluation).
174
- *
175
- * @param field - The DatoCMS field definition that determines how blocks are processed
176
- * @param value - The field value containing blocks to test
177
- * @param predicate - Asynchronous function that tests each block. Should return true for valid blocks
178
- * @returns Promise that resolves to true if all blocks match, false otherwise
179
- */
180
- export declare function nonRecursiveEveryBlockInFieldValueAsync(field: RawApiTypes.Field | ApiTypes.Field, value: unknown, predicate: (item: BlockItemInARequest, path: TreePath) => Promise<boolean>): Promise<boolean>;