@datocms/cma-client 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/generated/Client.js +1 -1
- package/dist/esm/generated/Client.js +25 -23
- package/dist/esm/generated/Client.js.map +1 -1
- package/dist/esm/generated/resources/BuildEvent.js +5 -44
- package/dist/esm/generated/resources/BuildEvent.js.map +1 -1
- package/dist/esm/generated/resources/Item.js +5 -44
- package/dist/esm/generated/resources/Item.js.map +1 -1
- package/dist/esm/generated/resources/ItemVersion.js +5 -44
- package/dist/esm/generated/resources/ItemVersion.js.map +1 -1
- package/dist/esm/generated/resources/SearchIndexEvent.js +5 -44
- package/dist/esm/generated/resources/SearchIndexEvent.js.map +1 -1
- package/dist/esm/generated/resources/SearchResult.js +5 -44
- package/dist/esm/generated/resources/SearchResult.js.map +1 -1
- package/dist/esm/generated/resources/Upload.js +5 -44
- package/dist/esm/generated/resources/Upload.js.map +1 -1
- package/dist/esm/generated/resources/UploadSmartTag.js +5 -44
- package/dist/esm/generated/resources/UploadSmartTag.js.map +1 -1
- package/dist/esm/generated/resources/UploadTag.js +5 -44
- package/dist/esm/generated/resources/UploadTag.js.map +1 -1
- package/dist/esm/generated/resources/WebhookCall.js +5 -44
- package/dist/esm/generated/resources/WebhookCall.js.map +1 -1
- package/dist/esm/resources/Role.js +23 -25
- package/dist/esm/resources/Role.js.map +1 -1
- package/dist/esm/resources/Upload.js +12 -83
- package/dist/esm/resources/Upload.js.map +1 -1
- package/dist/esm/utilities/buildBlockRecord.js +4 -1
- package/dist/esm/utilities/buildBlockRecord.js.map +1 -1
- package/dist/esm/utilities/defaultFieldMetadata.js +16 -25
- package/dist/esm/utilities/defaultFieldMetadata.js.map +1 -1
- package/dist/esm/utilities/duplicateBlockRecord.js +25 -47
- package/dist/esm/utilities/duplicateBlockRecord.js.map +1 -1
- package/dist/esm/utilities/environmentSettings.js +3 -14
- package/dist/esm/utilities/environmentSettings.js.map +1 -1
- package/dist/esm/utilities/inspectItem.js +1 -12
- package/dist/esm/utilities/inspectItem.js.map +1 -1
- package/dist/esm/utilities/nonRecursiveBlocks.js +109 -260
- package/dist/esm/utilities/nonRecursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/normalizedFieldValues.js +30 -53
- package/dist/esm/utilities/normalizedFieldValues.js.map +1 -1
- package/dist/esm/utilities/recursiveBlocks.js +108 -131
- package/dist/esm/utilities/recursiveBlocks.js.map +1 -1
- package/dist/esm/utilities/schemaRepository.js +266 -333
- package/dist/esm/utilities/schemaRepository.js.map +1 -1
- package/package.json +3 -3
- package/src/generated/Client.ts +1 -1
|
@@ -1,157 +1,134 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { isItemWithOptionalIdAndMeta, } from '../fieldTypes/index.js';
|
|
11
2
|
import { nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync, nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync, nonRecursiveMapBlocksInNonLocalizedFieldValueAsync, nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync, nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync, nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync, } from './nonRecursiveBlocks.js';
|
|
12
|
-
export function visitBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, visitor, path = []) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
}));
|
|
3
|
+
export async function visitBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, visitor, path = []) {
|
|
4
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
5
|
+
await visitor(block, [...path, ...innerPath]);
|
|
6
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
10
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
11
|
+
for (const field of fields) {
|
|
12
|
+
await visitBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, visitor, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
13
|
+
}
|
|
25
14
|
});
|
|
26
15
|
}
|
|
27
|
-
export function findAllBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
}));
|
|
46
|
-
return results;
|
|
16
|
+
export async function findAllBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
17
|
+
const results = [];
|
|
18
|
+
const directMatches = await nonRecursiveFindAllBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => await predicate(block, [...path, ...innerPath]));
|
|
19
|
+
results.push(...directMatches.map(({ item, path: innerPath }) => ({
|
|
20
|
+
item,
|
|
21
|
+
path: [...path, ...innerPath],
|
|
22
|
+
})));
|
|
23
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
24
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
28
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
29
|
+
for (const field of fields) {
|
|
30
|
+
const nestedResults = await findAllBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
31
|
+
results.push(...nestedResults);
|
|
32
|
+
}
|
|
47
33
|
});
|
|
34
|
+
return results;
|
|
48
35
|
}
|
|
49
|
-
export function filterBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, options = {}, path = []) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const blockCopy = Object.assign(Object.assign({}, block), { attributes: Object.assign({}, block.attributes) });
|
|
61
|
-
for (const field of fields) {
|
|
62
|
-
blockCopy.attributes[field.attributes.api_key] =
|
|
63
|
-
yield filterBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
64
|
-
}
|
|
65
|
-
return blockCopy;
|
|
66
|
-
}
|
|
67
|
-
const blockCopy = Object.assign(Object.assign({}, block), { attributes: Object.assign({}, block.attributes) });
|
|
36
|
+
export async function filterBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, options = {}, path = []) {
|
|
37
|
+
const { traversalDirection = 'top-down' } = options;
|
|
38
|
+
const mapperFunc = async (block, innerPath) => {
|
|
39
|
+
const blockPath = [...path, ...innerPath];
|
|
40
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
41
|
+
return block;
|
|
42
|
+
}
|
|
43
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
44
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
45
|
+
if (traversalDirection === 'top-down') {
|
|
46
|
+
const blockCopy = { ...block, attributes: { ...block.attributes } };
|
|
68
47
|
for (const field of fields) {
|
|
69
48
|
blockCopy.attributes[field.attributes.api_key] =
|
|
70
|
-
|
|
49
|
+
await filterBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
71
50
|
}
|
|
72
51
|
return blockCopy;
|
|
73
|
-
}
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
52
|
+
}
|
|
53
|
+
const blockCopy = { ...block, attributes: { ...block.attributes } };
|
|
54
|
+
for (const field of fields) {
|
|
55
|
+
blockCopy.attributes[field.attributes.api_key] =
|
|
56
|
+
await filterBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
57
|
+
}
|
|
58
|
+
return blockCopy;
|
|
59
|
+
};
|
|
60
|
+
const mappedValue = await nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, mapperFunc);
|
|
61
|
+
return nonRecursiveFilterBlocksInNonLocalizedFieldValueAsync(fieldType, mappedValue, async (block, innerPath) => {
|
|
62
|
+
const blockPath = [...path, ...innerPath];
|
|
63
|
+
return await predicate(block, blockPath);
|
|
79
64
|
});
|
|
80
65
|
}
|
|
81
|
-
export function reduceBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, reducer, initialValue, path = []) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
}));
|
|
94
|
-
return accumulator;
|
|
66
|
+
export async function reduceBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, reducer, initialValue, path = []) {
|
|
67
|
+
let accumulator = await nonRecursiveReduceBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (acc, block, innerPath) => await reducer(acc, block, [...path, ...innerPath]), initialValue);
|
|
68
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
69
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
73
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
74
|
+
for (const field of fields) {
|
|
75
|
+
accumulator = await reduceBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, reducer, accumulator, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
76
|
+
}
|
|
95
77
|
});
|
|
78
|
+
return accumulator;
|
|
96
79
|
}
|
|
97
|
-
export function someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
80
|
+
export async function someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
81
|
+
const directMatch = await nonRecursiveSomeBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => await predicate(block, [...path, ...innerPath]));
|
|
82
|
+
if (directMatch) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
let found = false;
|
|
86
|
+
await nonRecursiveVisitBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
87
|
+
if (found || !isItemWithOptionalIdAndMeta(block)) {
|
|
88
|
+
return;
|
|
102
89
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (found)
|
|
112
|
-
break;
|
|
113
|
-
const nestedMatch = yield someBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
114
|
-
if (nestedMatch) {
|
|
115
|
-
found = true;
|
|
116
|
-
}
|
|
90
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
91
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
92
|
+
for (const field of fields) {
|
|
93
|
+
if (found)
|
|
94
|
+
break;
|
|
95
|
+
const nestedMatch = await someBlocksInNonLocalizedFieldValue(block.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, predicate, [...path, ...innerPath, 'attributes', field.attributes.api_key]);
|
|
96
|
+
if (nestedMatch) {
|
|
97
|
+
found = true;
|
|
117
98
|
}
|
|
118
|
-
}
|
|
119
|
-
return found;
|
|
99
|
+
}
|
|
120
100
|
});
|
|
101
|
+
return found;
|
|
121
102
|
}
|
|
122
|
-
export function everyBlockInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
123
|
-
return
|
|
124
|
-
return !(yield someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, (item, path) => __awaiter(this, void 0, void 0, function* () { return !(yield predicate(item, path)); }), path));
|
|
125
|
-
});
|
|
103
|
+
export async function everyBlockInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, predicate, path = []) {
|
|
104
|
+
return !(await someBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, async (item, path) => !(await predicate(item, path)), path));
|
|
126
105
|
}
|
|
127
|
-
export function mapBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, mapper, options = {}, path = []) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (!isItemWithOptionalIdAndMeta(newBlock)) {
|
|
140
|
-
return newBlock;
|
|
141
|
-
}
|
|
142
|
-
for (const field of fields) {
|
|
143
|
-
newBlock.attributes[field.attributes.api_key] =
|
|
144
|
-
yield mapBlocksInNonLocalizedFieldValue(newBlock.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, mapper, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
145
|
-
}
|
|
106
|
+
export async function mapBlocksInNonLocalizedFieldValue(nonLocalizedFieldValue, fieldType, schemaRepository, mapper, options = {}, path = []) {
|
|
107
|
+
const { traversalDirection = 'top-down' } = options;
|
|
108
|
+
return nonRecursiveMapBlocksInNonLocalizedFieldValueAsync(fieldType, nonLocalizedFieldValue, async (block, innerPath) => {
|
|
109
|
+
const blockPath = [...path, ...innerPath];
|
|
110
|
+
if (!isItemWithOptionalIdAndMeta(block)) {
|
|
111
|
+
return await mapper(block, blockPath);
|
|
112
|
+
}
|
|
113
|
+
const itemType = await schemaRepository.getRawItemTypeById(block.relationships.item_type.data.id);
|
|
114
|
+
const fields = await schemaRepository.getRawItemTypeFields(itemType);
|
|
115
|
+
if (traversalDirection === 'top-down') {
|
|
116
|
+
const newBlock = await mapper(block, blockPath);
|
|
117
|
+
if (!isItemWithOptionalIdAndMeta(newBlock)) {
|
|
146
118
|
return newBlock;
|
|
147
119
|
}
|
|
148
|
-
const blockCopy = Object.assign({}, block);
|
|
149
120
|
for (const field of fields) {
|
|
150
|
-
|
|
151
|
-
|
|
121
|
+
newBlock.attributes[field.attributes.api_key] =
|
|
122
|
+
await mapBlocksInNonLocalizedFieldValue(newBlock.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, mapper, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
152
123
|
}
|
|
153
|
-
return
|
|
154
|
-
}
|
|
124
|
+
return newBlock;
|
|
125
|
+
}
|
|
126
|
+
const blockCopy = { ...block };
|
|
127
|
+
for (const field of fields) {
|
|
128
|
+
blockCopy.attributes[field.attributes.api_key] =
|
|
129
|
+
await mapBlocksInNonLocalizedFieldValue(blockCopy.attributes[field.attributes.api_key], field.attributes.field_type, schemaRepository, mapper, options, [...blockPath, 'attributes', field.attributes.api_key]);
|
|
130
|
+
}
|
|
131
|
+
return await mapper(blockCopy, blockPath);
|
|
155
132
|
});
|
|
156
133
|
}
|
|
157
134
|
//# sourceMappingURL=recursiveBlocks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recursiveBlocks.js","sourceRoot":"","sources":["../../../src/utilities/recursiveBlocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"recursiveBlocks.js","sourceRoot":"","sources":["../../../src/utilities/recursiveBlocks.ts"],"names":[],"mappings":"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"}
|