@wix/patterns-cms 1.9.0 → 1.10.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.
@@ -11,7 +11,8 @@ jest.mock('@wix/data', () => {
11
11
  createDataCollectionField: jest.fn(),
12
12
  patchDataCollectionField: jest.fn(),
13
13
  deleteDataCollectionField: jest.fn(),
14
- patchDataCollection: jest.fn()
14
+ patchDataCollection: jest.fn(),
15
+ updateDataCollection: jest.fn()
15
16
  },
16
17
  tasks: {
17
18
  ...actual.tasks,
@@ -29,6 +30,9 @@ const createDataCollectionField = _data.collections.createDataCollectionField;
29
30
  const patchDataCollectionField = _data.collections.patchDataCollectionField;
30
31
  const deleteDataCollectionField = _data.collections.deleteDataCollectionField;
31
32
  const patchDataCollection = _data.collections.patchDataCollection;
33
+ // updateDataCollection resolves with the updated collection directly (not
34
+ // wrapped in `{ dataCollection }`, unlike the field mutations).
35
+ const updateDataCollection = _data.collections.updateDataCollection;
32
36
  const createTask = _data.tasks.createTask;
33
37
  const getTask = _data.tasks.getTask;
34
38
  const COLLECTION_ID = 'collection-1';
@@ -70,6 +74,7 @@ describe('createCmsFieldActions', () => {
70
74
  patchDataCollectionField.mockResolvedValue({
71
75
  dataCollection: makeCollection([])
72
76
  });
77
+ updateDataCollection.mockImplementation(async dataCollection => dataCollection);
73
78
  });
74
79
  describe('addField', () => {
75
80
  it('maps the patterns field type to the CMS type and derives the key from displayName', async () => {
@@ -176,6 +181,71 @@ describe('createCmsFieldActions', () => {
176
181
  expect(payload.field.required).toBe(true);
177
182
  });
178
183
  });
184
+ describe('addFields', () => {
185
+ it('appends all new fields in one updateDataCollection call, keyed by field.id, preserving existing fields', async () => {
186
+ const existing = makeField({
187
+ key: 'name',
188
+ displayName: 'Name'
189
+ });
190
+ const actions = (0, _createCmsFieldActions.createCmsFieldActions)(COLLECTION_ID, () => makeCollection([existing]));
191
+ await actions.addFields([makePatternsField({
192
+ id: 'color',
193
+ displayName: 'Color',
194
+ type: 'SHORT_TEXT'
195
+ }), makePatternsField({
196
+ id: 'count',
197
+ displayName: 'Count',
198
+ type: 'NUMBER'
199
+ })]);
200
+ expect(updateDataCollection).toHaveBeenCalledTimes(1);
201
+ const [dataCollection] = updateDataCollection.mock.calls[0];
202
+ expect(dataCollection._id).toBe(COLLECTION_ID);
203
+ // Existing field kept; new fields appended under their given ids as keys.
204
+ expect(dataCollection.fields).toEqual([existing, {
205
+ key: 'color',
206
+ displayName: 'Color',
207
+ type: _data.collections.Type.TEXT,
208
+ required: false
209
+ }, {
210
+ key: 'count',
211
+ displayName: 'Count',
212
+ type: _data.collections.Type.NUMBER,
213
+ required: false
214
+ }]);
215
+ expect(createDataCollectionField).not.toHaveBeenCalled();
216
+ });
217
+ it('resolves with the full updated fields map (existing + added), keyed by field key', async () => {
218
+ const actions = (0, _createCmsFieldActions.createCmsFieldActions)(COLLECTION_ID, () => makeCollection([makeField({
219
+ key: 'name',
220
+ displayName: 'Name'
221
+ })]));
222
+ const fields = await actions.addFields([makePatternsField({
223
+ id: 'color',
224
+ displayName: 'Color',
225
+ type: 'SHORT_TEXT'
226
+ })]);
227
+ expect(Object.keys(fields)).toEqual(['name', 'color']);
228
+ expect(fields.color).toMatchObject({
229
+ id: 'color',
230
+ displayName: 'Color'
231
+ });
232
+ });
233
+ it('throws before any write when a field type has no CMS mapping', async () => {
234
+ const actions = (0, _createCmsFieldActions.createCmsFieldActions)(COLLECTION_ID, () => makeCollection([]));
235
+ await expect(actions.addFields([makePatternsField({
236
+ id: 'pic',
237
+ type: 'IMAGE'
238
+ })])).rejects.toThrow('Field type IMAGE not supported yet');
239
+ expect(updateDataCollection).not.toHaveBeenCalled();
240
+ });
241
+ it('throws when the collection cannot be read', async () => {
242
+ const actions = (0, _createCmsFieldActions.createCmsFieldActions)(COLLECTION_ID, () => null);
243
+ await expect(actions.addFields([makePatternsField({
244
+ id: 'color'
245
+ })])).rejects.toThrow(`Collection ${COLLECTION_ID} not found`);
246
+ expect(updateDataCollection).not.toHaveBeenCalled();
247
+ });
248
+ });
179
249
  describe('editField', () => {
180
250
  it('patches only displayName when only displayName is provided', async () => {
181
251
  const actions = (0, _createCmsFieldActions.createCmsFieldActions)(COLLECTION_ID, () => makeCollection([makeField({
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_createCmsFieldActions","jest","mock","actual","requireActual","collections","createDataCollectionField","fn","patchDataCollectionField","deleteDataCollectionField","patchDataCollection","tasks","createTask","getTask","COLLECTION_ID","makeField","overrides","key","displayName","type","Type","TEXT","systemField","encrypted","makeCollection","fields","_id","makePatternsField","base","id","describe","beforeEach","clearAllMocks","mockResolvedValue","dataCollection","it","actions","createCmsFieldActions","addField","calledCollectionId","payload","calls","expect","toBe","field","toMatchObject","required","toBeTruthy","not","isPii","helpText","description","validation","numberRange","min","max","NUMBER","toEqual","toBeUndefined","stringLengthRange","minLength","maxLength","rejects","toThrow","toHaveBeenCalled","editField","toHaveBeenCalledWith","patch","toHaveProperty","renameField","deleteField","toHaveBeenCalledTimes","fieldKey","makePrimary","displayField","duplicateField","capabilities","sortable","queryOperators","QueryOperator","EQ","_payload$field$typeMe","_payload$field$typeMe2","sourceField","MULTI_REFERENCE","typeMetadata","multiReference","referencingFieldKey","referencedCollectionId","status","duplicateFieldWithContent","targetFieldKey","copyFieldDataOptions","dataCollectionId","sourceFieldKey","failures","code"],"sources":["../../../../src/adapter/__tests__/cmsFieldActions.spec.ts"],"sourcesContent":["import { collections, tasks } from '@wix/data';\nimport type { Field } from '@wix/bex-core';\nimport { createCmsFieldActions } from '../createCmsFieldActions';\n\njest.mock('@wix/data', () => {\n const actual = jest.requireActual('@wix/data');\n return {\n ...actual,\n collections: {\n ...actual.collections,\n createDataCollectionField: jest.fn(),\n patchDataCollectionField: jest.fn(),\n deleteDataCollectionField: jest.fn(),\n patchDataCollection: jest.fn(),\n },\n tasks: {\n ...actual.tasks,\n createTask: jest.fn(),\n getTask: jest.fn(),\n },\n };\n});\n\n// Typed accessors — the @wix/data SDK exposes overloaded callable types\n// (MaybeContext<...>), and jest.Mocked<typeof collections> resolves to the\n// HttpClient-form overload, which makes mockResolvedValue/mock.calls unusable.\n// Re-typing each mock with the call shape the adapter uses unblocks both.\nconst createDataCollectionField =\n collections.createDataCollectionField as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, options: { field: collections.Field }]\n >;\nconst patchDataCollectionField =\n collections.patchDataCollectionField as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, field: collections.Field]\n >;\nconst deleteDataCollectionField =\n collections.deleteDataCollectionField as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, options: { fieldKey: string }]\n >;\nconst patchDataCollection =\n collections.patchDataCollection as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, dataCollection: collections.PatchDataCollection]\n >;\n\ninterface CopyTaskState {\n _id: string;\n status: 'NEW' | 'RUNNING' | 'COMPLETED' | 'FAILED';\n failures?: { code?: string; description?: string }[];\n}\n\nconst createTask = tasks.createTask as unknown as jest.Mock<\n Promise<{ _id: string }>,\n [task: { type: string; copyFieldDataOptions: unknown }]\n>;\nconst getTask = tasks.getTask as unknown as jest.Mock<\n Promise<CopyTaskState>,\n [taskId: string]\n>;\n\nconst COLLECTION_ID = 'collection-1';\n\nconst makeField = (\n overrides: Partial<collections.Field> = {},\n): collections.Field => ({\n key: 'sourceField',\n displayName: 'Source Field',\n type: collections.Type.TEXT,\n systemField: false,\n encrypted: false,\n ...overrides,\n});\n\nconst makeCollection = (\n fields: collections.Field[],\n): collections.DataCollection => ({ _id: COLLECTION_ID, fields });\n\nconst makePatternsField = (overrides: Partial<Field> = {}): Field => {\n const base: Field = {\n id: 'ignored-by-addField',\n displayName: 'New Field',\n type: 'SHORT_TEXT',\n };\n return { ...base, ...overrides } as Field;\n};\n\ndescribe('createCmsFieldActions', () => {\n beforeEach(() => {\n jest.clearAllMocks();\n createDataCollectionField.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n deleteDataCollectionField.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n patchDataCollection.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n patchDataCollectionField.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n });\n\n describe('addField', () => {\n it('maps the patterns field type to the CMS type and derives the key from displayName', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({ displayName: 'My New Field' }),\n );\n\n const [calledCollectionId, payload] =\n createDataCollectionField.mock.calls[0];\n expect(calledCollectionId).toBe(COLLECTION_ID);\n expect(payload.field).toMatchObject({\n displayName: 'My New Field',\n type: collections.Type.TEXT,\n required: false,\n });\n expect(payload.field.key).toBeTruthy();\n });\n\n it('appends a numeric suffix when the generated key collides with an existing field', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'newField' })]),\n );\n\n await actions.addField!(makePatternsField({ displayName: 'New Field' }));\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.key).not.toBe('newField');\n });\n\n it('sets encrypted when isPii is true and description from helpText', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({ isPii: true, helpText: 'Some hint' }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.encrypted).toBe(true);\n expect(payload.field.description).toBe('Some hint');\n });\n\n it('passes numberRange only when the field type is NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({\n type: 'NUMBER',\n validation: { required: false, numberRange: { min: 0, max: 10 } },\n }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.type).toBe(collections.Type.NUMBER);\n expect(payload.field.numberRange).toEqual({ min: 0, max: 10 });\n });\n\n it('ignores numberRange when the field type is not NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({\n type: 'SHORT_TEXT',\n validation: { required: false, numberRange: { min: 0, max: 10 } },\n }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.numberRange).toBeUndefined();\n });\n\n it('passes stringLengthRange only when the field type is SHORT_TEXT', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({\n type: 'SHORT_TEXT',\n validation: {\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 50 },\n },\n }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.stringLengthRange).toEqual({\n minLength: 1,\n maxLength: 50,\n });\n });\n\n it('throws when the patterns type has no CMS mapping', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(\n actions.addField!(makePatternsField({ type: 'IMAGE' })),\n ).rejects.toThrow('Field type IMAGE not supported yet');\n expect(createDataCollectionField).not.toHaveBeenCalled();\n });\n\n it('uses validation.required when provided', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({ validation: { required: true } }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.required).toBe(true);\n });\n });\n\n describe('editField', () => {\n it('patches only displayName when only displayName is provided', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name' })]),\n );\n\n await actions.editField!('name', { displayName: 'Renamed' });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n displayName: 'Renamed',\n });\n });\n\n it('maps isPii to encrypted and helpText to description', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name' })]),\n );\n\n await actions.editField!('name', { isPii: true, helpText: 'hint' });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n encrypted: true,\n description: 'hint',\n });\n });\n\n it('includes numberRange in the patch only when the source CMS field is NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'age', type: collections.Type.NUMBER }),\n ]),\n );\n\n await actions.editField!('age', {\n validation: { required: true, numberRange: { min: 0, max: 100 } },\n });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'age',\n required: true,\n numberRange: { min: 0, max: 100 },\n });\n });\n\n it('omits numberRange when the source CMS field is not NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'name', type: collections.Type.TEXT }),\n ]),\n );\n\n await actions.editField!('name', {\n validation: { required: true, numberRange: { min: 0, max: 100 } },\n });\n\n const [, patch] = patchDataCollectionField.mock.calls[0];\n expect(patch).not.toHaveProperty('numberRange');\n expect(patch).toMatchObject({ key: 'name', required: true });\n });\n\n it('includes stringLengthRange in the patch only when the source CMS field is TEXT', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'name', type: collections.Type.TEXT }),\n ]),\n );\n\n await actions.editField!('name', {\n validation: {\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 30 },\n },\n });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 30 },\n });\n });\n\n it('omits stringLengthRange when the source CMS field is not TEXT', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'age', type: collections.Type.NUMBER }),\n ]),\n );\n\n await actions.editField!('age', {\n validation: {\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 30 },\n },\n });\n\n const [, patch] = patchDataCollectionField.mock.calls[0];\n expect(patch).not.toHaveProperty('stringLengthRange');\n });\n });\n\n describe('renameField', () => {\n it('patches the field displayName with the new name', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name' })]),\n );\n\n await actions.renameField!('name', 'Renamed');\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n displayName: 'Renamed',\n });\n });\n });\n\n describe('deleteField', () => {\n it('calls collections.deleteDataCollectionField with the field key', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'toDelete' })]),\n );\n\n await actions.deleteField!('toDelete');\n\n expect(deleteDataCollectionField).toHaveBeenCalledTimes(1);\n expect(deleteDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n fieldKey: 'toDelete',\n });\n });\n });\n\n describe('makePrimary', () => {\n it('patches the collection displayField with the given field id', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'newPrimary' })]),\n );\n\n await actions.makePrimary!('newPrimary');\n\n expect(patchDataCollection).toHaveBeenCalledTimes(1);\n expect(patchDataCollection).toHaveBeenCalledWith(COLLECTION_ID, {\n displayField: 'newPrimary',\n });\n });\n });\n\n describe('duplicateField', () => {\n it('clones the source field with a \"(Copy)\" suffix and a fresh key', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'sourceField', displayName: 'Source Field' }),\n ]),\n );\n\n await actions.duplicateField!('sourceField');\n\n expect(createDataCollectionField).toHaveBeenCalledTimes(1);\n const [calledCollectionId, payload] =\n createDataCollectionField.mock.calls[0];\n expect(calledCollectionId).toBe(COLLECTION_ID);\n expect(payload.field).toMatchObject({\n displayName: 'Source Field (Copy)',\n type: collections.Type.TEXT,\n });\n expect(payload.field.key).not.toBe('sourceField');\n });\n\n it('strips systemField and capabilities from the cloned field', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({\n systemField: true,\n capabilities: {\n sortable: true,\n queryOperators: [collections.QueryOperator.EQ],\n },\n }),\n ]),\n );\n\n await actions.duplicateField!('sourceField');\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field).not.toHaveProperty('systemField');\n expect(payload.field).not.toHaveProperty('capabilities');\n });\n\n it('clears typeMetadata.multiReference.referencingFieldKey on clone', async () => {\n const sourceField: collections.Field = makeField({\n key: 'multiRef',\n displayName: 'Multi Ref',\n type: collections.Type.MULTI_REFERENCE,\n typeMetadata: {\n multiReference: {\n referencingFieldKey: 'someExistingKey',\n referencedCollectionId: 'other-collection',\n },\n },\n });\n\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([sourceField]),\n );\n\n await actions.duplicateField!('multiRef');\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(\n payload.field.typeMetadata?.multiReference?.referencingFieldKey,\n ).toBeUndefined();\n expect(\n payload.field.typeMetadata?.multiReference?.referencedCollectionId,\n ).toBe('other-collection');\n });\n\n it('appends a numeric suffix when the generated key collides with an existing field', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'sourceField', displayName: 'Source Field' }),\n makeField({ key: 'sourceFieldCopy' }),\n ]),\n );\n\n await actions.duplicateField!('sourceField');\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.key).not.toBe('sourceField');\n expect(payload.field.key).not.toBe('sourceFieldCopy');\n });\n\n it('throws when the source field is not found', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(actions.duplicateField!('missing')).rejects.toThrow(\n 'Field missing not found',\n );\n expect(createDataCollectionField).not.toHaveBeenCalled();\n });\n });\n\n describe('duplicateFieldWithContent', () => {\n it('creates the cloned field, kicks off a COPY_FIELD_DATA task, and waits for completion', async () => {\n createTask.mockResolvedValue({ _id: 'task-1' });\n getTask.mockResolvedValue({ _id: 'task-1', status: 'COMPLETED' });\n\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'sourceField', displayName: 'Source Field' }),\n ]),\n );\n\n await actions.duplicateFieldWithContent!('sourceField');\n\n expect(createDataCollectionField).toHaveBeenCalledTimes(1);\n const [, payload] = createDataCollectionField.mock.calls[0];\n const targetFieldKey = payload.field.key;\n\n expect(createTask).toHaveBeenCalledTimes(1);\n expect(createTask).toHaveBeenCalledWith({\n type: 'COPY_FIELD_DATA',\n copyFieldDataOptions: {\n dataCollectionId: COLLECTION_ID,\n sourceFieldKey: 'sourceField',\n targetFieldKey,\n },\n });\n expect(getTask).toHaveBeenCalledWith('task-1');\n });\n\n it('throws when the copy task reports FAILED, surfacing the failure code and description', async () => {\n createTask.mockResolvedValue({ _id: 'task-2' });\n getTask.mockResolvedValue({\n _id: 'task-2',\n status: 'FAILED',\n failures: [{ code: 'INTERNAL', description: 'Copy boom' }],\n });\n\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField()]),\n );\n\n await expect(\n actions.duplicateFieldWithContent!('sourceField'),\n ).rejects.toThrow('INTERNAL: Copy boom');\n });\n\n it('throws when the source field is not found and never creates a task', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(\n actions.duplicateFieldWithContent!('missing'),\n ).rejects.toThrow('Field missing not found');\n expect(createDataCollectionField).not.toHaveBeenCalled();\n expect(createTask).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_createCmsFieldActions","jest","mock","actual","requireActual","collections","createDataCollectionField","fn","patchDataCollectionField","deleteDataCollectionField","patchDataCollection","updateDataCollection","tasks","createTask","getTask","COLLECTION_ID","makeField","overrides","key","displayName","type","Type","TEXT","systemField","encrypted","makeCollection","fields","_id","makePatternsField","base","id","describe","beforeEach","clearAllMocks","mockResolvedValue","dataCollection","mockImplementation","it","actions","createCmsFieldActions","addField","calledCollectionId","payload","calls","expect","toBe","field","toMatchObject","required","toBeTruthy","not","isPii","helpText","description","validation","numberRange","min","max","NUMBER","toEqual","toBeUndefined","stringLengthRange","minLength","maxLength","rejects","toThrow","toHaveBeenCalled","existing","addFields","toHaveBeenCalledTimes","Object","keys","color","editField","toHaveBeenCalledWith","patch","toHaveProperty","renameField","deleteField","fieldKey","makePrimary","displayField","duplicateField","capabilities","sortable","queryOperators","QueryOperator","EQ","_payload$field$typeMe","_payload$field$typeMe2","sourceField","MULTI_REFERENCE","typeMetadata","multiReference","referencingFieldKey","referencedCollectionId","status","duplicateFieldWithContent","targetFieldKey","copyFieldDataOptions","dataCollectionId","sourceFieldKey","failures","code"],"sources":["../../../../src/adapter/__tests__/cmsFieldActions.spec.ts"],"sourcesContent":["import { collections, tasks } from '@wix/data';\nimport type { Field } from '@wix/bex-core';\nimport { createCmsFieldActions } from '../createCmsFieldActions';\n\njest.mock('@wix/data', () => {\n const actual = jest.requireActual('@wix/data');\n return {\n ...actual,\n collections: {\n ...actual.collections,\n createDataCollectionField: jest.fn(),\n patchDataCollectionField: jest.fn(),\n deleteDataCollectionField: jest.fn(),\n patchDataCollection: jest.fn(),\n updateDataCollection: jest.fn(),\n },\n tasks: {\n ...actual.tasks,\n createTask: jest.fn(),\n getTask: jest.fn(),\n },\n };\n});\n\n// Typed accessors — the @wix/data SDK exposes overloaded callable types\n// (MaybeContext<...>), and jest.Mocked<typeof collections> resolves to the\n// HttpClient-form overload, which makes mockResolvedValue/mock.calls unusable.\n// Re-typing each mock with the call shape the adapter uses unblocks both.\nconst createDataCollectionField =\n collections.createDataCollectionField as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, options: { field: collections.Field }]\n >;\nconst patchDataCollectionField =\n collections.patchDataCollectionField as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, field: collections.Field]\n >;\nconst deleteDataCollectionField =\n collections.deleteDataCollectionField as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, options: { fieldKey: string }]\n >;\nconst patchDataCollection =\n collections.patchDataCollection as unknown as jest.Mock<\n Promise<{ dataCollection: collections.DataCollection }>,\n [collectionId: string, dataCollection: collections.PatchDataCollection]\n >;\n// updateDataCollection resolves with the updated collection directly (not\n// wrapped in `{ dataCollection }`, unlike the field mutations).\nconst updateDataCollection =\n collections.updateDataCollection as unknown as jest.Mock<\n Promise<collections.DataCollection>,\n [dataCollection: collections.DataCollection]\n >;\n\ninterface CopyTaskState {\n _id: string;\n status: 'NEW' | 'RUNNING' | 'COMPLETED' | 'FAILED';\n failures?: { code?: string; description?: string }[];\n}\n\nconst createTask = tasks.createTask as unknown as jest.Mock<\n Promise<{ _id: string }>,\n [task: { type: string; copyFieldDataOptions: unknown }]\n>;\nconst getTask = tasks.getTask as unknown as jest.Mock<\n Promise<CopyTaskState>,\n [taskId: string]\n>;\n\nconst COLLECTION_ID = 'collection-1';\n\nconst makeField = (\n overrides: Partial<collections.Field> = {},\n): collections.Field => ({\n key: 'sourceField',\n displayName: 'Source Field',\n type: collections.Type.TEXT,\n systemField: false,\n encrypted: false,\n ...overrides,\n});\n\nconst makeCollection = (\n fields: collections.Field[],\n): collections.DataCollection => ({ _id: COLLECTION_ID, fields });\n\nconst makePatternsField = (overrides: Partial<Field> = {}): Field => {\n const base: Field = {\n id: 'ignored-by-addField',\n displayName: 'New Field',\n type: 'SHORT_TEXT',\n };\n return { ...base, ...overrides } as Field;\n};\n\ndescribe('createCmsFieldActions', () => {\n beforeEach(() => {\n jest.clearAllMocks();\n createDataCollectionField.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n deleteDataCollectionField.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n patchDataCollection.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n patchDataCollectionField.mockResolvedValue({\n dataCollection: makeCollection([]),\n });\n updateDataCollection.mockImplementation(async (dataCollection) => dataCollection);\n });\n\n describe('addField', () => {\n it('maps the patterns field type to the CMS type and derives the key from displayName', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({ displayName: 'My New Field' }),\n );\n\n const [calledCollectionId, payload] =\n createDataCollectionField.mock.calls[0];\n expect(calledCollectionId).toBe(COLLECTION_ID);\n expect(payload.field).toMatchObject({\n displayName: 'My New Field',\n type: collections.Type.TEXT,\n required: false,\n });\n expect(payload.field.key).toBeTruthy();\n });\n\n it('appends a numeric suffix when the generated key collides with an existing field', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'newField' })]),\n );\n\n await actions.addField!(makePatternsField({ displayName: 'New Field' }));\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.key).not.toBe('newField');\n });\n\n it('sets encrypted when isPii is true and description from helpText', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({ isPii: true, helpText: 'Some hint' }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.encrypted).toBe(true);\n expect(payload.field.description).toBe('Some hint');\n });\n\n it('passes numberRange only when the field type is NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({\n type: 'NUMBER',\n validation: { required: false, numberRange: { min: 0, max: 10 } },\n }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.type).toBe(collections.Type.NUMBER);\n expect(payload.field.numberRange).toEqual({ min: 0, max: 10 });\n });\n\n it('ignores numberRange when the field type is not NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({\n type: 'SHORT_TEXT',\n validation: { required: false, numberRange: { min: 0, max: 10 } },\n }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.numberRange).toBeUndefined();\n });\n\n it('passes stringLengthRange only when the field type is SHORT_TEXT', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({\n type: 'SHORT_TEXT',\n validation: {\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 50 },\n },\n }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.stringLengthRange).toEqual({\n minLength: 1,\n maxLength: 50,\n });\n });\n\n it('throws when the patterns type has no CMS mapping', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(\n actions.addField!(makePatternsField({ type: 'IMAGE' })),\n ).rejects.toThrow('Field type IMAGE not supported yet');\n expect(createDataCollectionField).not.toHaveBeenCalled();\n });\n\n it('uses validation.required when provided', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await actions.addField!(\n makePatternsField({ validation: { required: true } }),\n );\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.required).toBe(true);\n });\n });\n\n describe('addFields', () => {\n it('appends all new fields in one updateDataCollection call, keyed by field.id, preserving existing fields', async () => {\n const existing = makeField({ key: 'name', displayName: 'Name' });\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([existing]),\n );\n\n await actions.addFields!([\n makePatternsField({ id: 'color', displayName: 'Color', type: 'SHORT_TEXT' }),\n makePatternsField({ id: 'count', displayName: 'Count', type: 'NUMBER' }),\n ]);\n\n expect(updateDataCollection).toHaveBeenCalledTimes(1);\n const [dataCollection] = updateDataCollection.mock.calls[0];\n expect(dataCollection._id).toBe(COLLECTION_ID);\n // Existing field kept; new fields appended under their given ids as keys.\n expect(dataCollection.fields).toEqual([\n existing,\n {\n key: 'color',\n displayName: 'Color',\n type: collections.Type.TEXT,\n required: false,\n },\n {\n key: 'count',\n displayName: 'Count',\n type: collections.Type.NUMBER,\n required: false,\n },\n ]);\n expect(createDataCollectionField).not.toHaveBeenCalled();\n });\n\n it('resolves with the full updated fields map (existing + added), keyed by field key', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name', displayName: 'Name' })]),\n );\n\n const fields = await actions.addFields!([\n makePatternsField({ id: 'color', displayName: 'Color', type: 'SHORT_TEXT' }),\n ]);\n\n expect(Object.keys(fields)).toEqual(['name', 'color']);\n expect(fields.color).toMatchObject({ id: 'color', displayName: 'Color' });\n });\n\n it('throws before any write when a field type has no CMS mapping', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(\n actions.addFields!([makePatternsField({ id: 'pic', type: 'IMAGE' })]),\n ).rejects.toThrow('Field type IMAGE not supported yet');\n expect(updateDataCollection).not.toHaveBeenCalled();\n });\n\n it('throws when the collection cannot be read', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () => null);\n\n await expect(\n actions.addFields!([makePatternsField({ id: 'color' })]),\n ).rejects.toThrow(`Collection ${COLLECTION_ID} not found`);\n expect(updateDataCollection).not.toHaveBeenCalled();\n });\n });\n\n describe('editField', () => {\n it('patches only displayName when only displayName is provided', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name' })]),\n );\n\n await actions.editField!('name', { displayName: 'Renamed' });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n displayName: 'Renamed',\n });\n });\n\n it('maps isPii to encrypted and helpText to description', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name' })]),\n );\n\n await actions.editField!('name', { isPii: true, helpText: 'hint' });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n encrypted: true,\n description: 'hint',\n });\n });\n\n it('includes numberRange in the patch only when the source CMS field is NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'age', type: collections.Type.NUMBER }),\n ]),\n );\n\n await actions.editField!('age', {\n validation: { required: true, numberRange: { min: 0, max: 100 } },\n });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'age',\n required: true,\n numberRange: { min: 0, max: 100 },\n });\n });\n\n it('omits numberRange when the source CMS field is not NUMBER', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'name', type: collections.Type.TEXT }),\n ]),\n );\n\n await actions.editField!('name', {\n validation: { required: true, numberRange: { min: 0, max: 100 } },\n });\n\n const [, patch] = patchDataCollectionField.mock.calls[0];\n expect(patch).not.toHaveProperty('numberRange');\n expect(patch).toMatchObject({ key: 'name', required: true });\n });\n\n it('includes stringLengthRange in the patch only when the source CMS field is TEXT', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'name', type: collections.Type.TEXT }),\n ]),\n );\n\n await actions.editField!('name', {\n validation: {\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 30 },\n },\n });\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 30 },\n });\n });\n\n it('omits stringLengthRange when the source CMS field is not TEXT', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'age', type: collections.Type.NUMBER }),\n ]),\n );\n\n await actions.editField!('age', {\n validation: {\n required: false,\n stringLengthRange: { minLength: 1, maxLength: 30 },\n },\n });\n\n const [, patch] = patchDataCollectionField.mock.calls[0];\n expect(patch).not.toHaveProperty('stringLengthRange');\n });\n });\n\n describe('renameField', () => {\n it('patches the field displayName with the new name', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'name' })]),\n );\n\n await actions.renameField!('name', 'Renamed');\n\n expect(patchDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n key: 'name',\n displayName: 'Renamed',\n });\n });\n });\n\n describe('deleteField', () => {\n it('calls collections.deleteDataCollectionField with the field key', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'toDelete' })]),\n );\n\n await actions.deleteField!('toDelete');\n\n expect(deleteDataCollectionField).toHaveBeenCalledTimes(1);\n expect(deleteDataCollectionField).toHaveBeenCalledWith(COLLECTION_ID, {\n fieldKey: 'toDelete',\n });\n });\n });\n\n describe('makePrimary', () => {\n it('patches the collection displayField with the given field id', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField({ key: 'newPrimary' })]),\n );\n\n await actions.makePrimary!('newPrimary');\n\n expect(patchDataCollection).toHaveBeenCalledTimes(1);\n expect(patchDataCollection).toHaveBeenCalledWith(COLLECTION_ID, {\n displayField: 'newPrimary',\n });\n });\n });\n\n describe('duplicateField', () => {\n it('clones the source field with a \"(Copy)\" suffix and a fresh key', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'sourceField', displayName: 'Source Field' }),\n ]),\n );\n\n await actions.duplicateField!('sourceField');\n\n expect(createDataCollectionField).toHaveBeenCalledTimes(1);\n const [calledCollectionId, payload] =\n createDataCollectionField.mock.calls[0];\n expect(calledCollectionId).toBe(COLLECTION_ID);\n expect(payload.field).toMatchObject({\n displayName: 'Source Field (Copy)',\n type: collections.Type.TEXT,\n });\n expect(payload.field.key).not.toBe('sourceField');\n });\n\n it('strips systemField and capabilities from the cloned field', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({\n systemField: true,\n capabilities: {\n sortable: true,\n queryOperators: [collections.QueryOperator.EQ],\n },\n }),\n ]),\n );\n\n await actions.duplicateField!('sourceField');\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field).not.toHaveProperty('systemField');\n expect(payload.field).not.toHaveProperty('capabilities');\n });\n\n it('clears typeMetadata.multiReference.referencingFieldKey on clone', async () => {\n const sourceField: collections.Field = makeField({\n key: 'multiRef',\n displayName: 'Multi Ref',\n type: collections.Type.MULTI_REFERENCE,\n typeMetadata: {\n multiReference: {\n referencingFieldKey: 'someExistingKey',\n referencedCollectionId: 'other-collection',\n },\n },\n });\n\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([sourceField]),\n );\n\n await actions.duplicateField!('multiRef');\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(\n payload.field.typeMetadata?.multiReference?.referencingFieldKey,\n ).toBeUndefined();\n expect(\n payload.field.typeMetadata?.multiReference?.referencedCollectionId,\n ).toBe('other-collection');\n });\n\n it('appends a numeric suffix when the generated key collides with an existing field', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'sourceField', displayName: 'Source Field' }),\n makeField({ key: 'sourceFieldCopy' }),\n ]),\n );\n\n await actions.duplicateField!('sourceField');\n\n const [, payload] = createDataCollectionField.mock.calls[0];\n expect(payload.field.key).not.toBe('sourceField');\n expect(payload.field.key).not.toBe('sourceFieldCopy');\n });\n\n it('throws when the source field is not found', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(actions.duplicateField!('missing')).rejects.toThrow(\n 'Field missing not found',\n );\n expect(createDataCollectionField).not.toHaveBeenCalled();\n });\n });\n\n describe('duplicateFieldWithContent', () => {\n it('creates the cloned field, kicks off a COPY_FIELD_DATA task, and waits for completion', async () => {\n createTask.mockResolvedValue({ _id: 'task-1' });\n getTask.mockResolvedValue({ _id: 'task-1', status: 'COMPLETED' });\n\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([\n makeField({ key: 'sourceField', displayName: 'Source Field' }),\n ]),\n );\n\n await actions.duplicateFieldWithContent!('sourceField');\n\n expect(createDataCollectionField).toHaveBeenCalledTimes(1);\n const [, payload] = createDataCollectionField.mock.calls[0];\n const targetFieldKey = payload.field.key;\n\n expect(createTask).toHaveBeenCalledTimes(1);\n expect(createTask).toHaveBeenCalledWith({\n type: 'COPY_FIELD_DATA',\n copyFieldDataOptions: {\n dataCollectionId: COLLECTION_ID,\n sourceFieldKey: 'sourceField',\n targetFieldKey,\n },\n });\n expect(getTask).toHaveBeenCalledWith('task-1');\n });\n\n it('throws when the copy task reports FAILED, surfacing the failure code and description', async () => {\n createTask.mockResolvedValue({ _id: 'task-2' });\n getTask.mockResolvedValue({\n _id: 'task-2',\n status: 'FAILED',\n failures: [{ code: 'INTERNAL', description: 'Copy boom' }],\n });\n\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([makeField()]),\n );\n\n await expect(\n actions.duplicateFieldWithContent!('sourceField'),\n ).rejects.toThrow('INTERNAL: Copy boom');\n });\n\n it('throws when the source field is not found and never creates a task', async () => {\n const actions = createCmsFieldActions(COLLECTION_ID, () =>\n makeCollection([]),\n );\n\n await expect(\n actions.duplicateFieldWithContent!('missing'),\n ).rejects.toThrow('Field missing not found');\n expect(createDataCollectionField).not.toHaveBeenCalled();\n expect(createTask).not.toHaveBeenCalled();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -51,6 +51,36 @@ function createCmsFieldActions(collectionId, getCollection) {
51
51
  // map. The SDK guarantees `dataCollection` on a successful mutation, so there is
52
52
  // no missing-collection case to handle here.
53
53
  const fieldsAfterMutation = dataCollection => (0, _transformCmsSchema.transformCmsSchema)(dataCollection).fields;
54
+
55
+ // Maps a source-neutral `Field` to a CMS field under the given `key`. Throws
56
+ // for a type with no CMS mapping before any SDK call. Shared by addField (key
57
+ // derived from the display name) and addFields (key = the caller's field.id).
58
+ const toCmsField = (field, key) => {
59
+ var _field$validation, _field$validation2, _field$validation3;
60
+ const cmsType = _cmsFieldTypeMap.PatternsFieldTypeToCmsFieldType[field.type];
61
+ if (!cmsType) {
62
+ throw new Error(`Field type ${field.type} not supported yet`);
63
+ }
64
+ const cmsField = {
65
+ key,
66
+ displayName: field.displayName,
67
+ type: cmsType,
68
+ required: ((_field$validation = field.validation) == null ? void 0 : _field$validation.required) ?? false
69
+ };
70
+ if (field.isPii) {
71
+ cmsField.encrypted = true;
72
+ }
73
+ if (field.helpText) {
74
+ cmsField.description = field.helpText;
75
+ }
76
+ if (field.type === 'NUMBER' && (_field$validation2 = field.validation) != null && _field$validation2.numberRange) {
77
+ cmsField.numberRange = field.validation.numberRange;
78
+ }
79
+ if (field.type === 'SHORT_TEXT' && (_field$validation3 = field.validation) != null && _field$validation3.stringLengthRange) {
80
+ cmsField.stringLengthRange = field.validation.stringLengthRange;
81
+ }
82
+ return cmsField;
83
+ };
54
84
  const buildFieldPatch = (fieldId, updates) => {
55
85
  var _findCmsField, _updates$validation, _updates$validation2, _updates$validation3;
56
86
  const sourceCmsType = (_findCmsField = findCmsField(fieldId)) == null ? void 0 : _findCmsField.type;
@@ -107,29 +137,7 @@ function createCmsFieldActions(collectionId, getCollection) {
107
137
  };
108
138
  return {
109
139
  addField: async field => {
110
- var _field$validation, _field$validation2, _field$validation3;
111
- const cmsType = _cmsFieldTypeMap.PatternsFieldTypeToCmsFieldType[field.type];
112
- if (!cmsType) {
113
- throw new Error(`Field type ${field.type} not supported yet`);
114
- }
115
- const cmsField = {
116
- key: (0, _getFieldKey.getFieldKey)(existingFieldKeys(), field.displayName),
117
- displayName: field.displayName,
118
- type: cmsType,
119
- required: ((_field$validation = field.validation) == null ? void 0 : _field$validation.required) ?? false
120
- };
121
- if (field.isPii) {
122
- cmsField.encrypted = true;
123
- }
124
- if (field.helpText) {
125
- cmsField.description = field.helpText;
126
- }
127
- if (field.type === 'NUMBER' && (_field$validation2 = field.validation) != null && _field$validation2.numberRange) {
128
- cmsField.numberRange = field.validation.numberRange;
129
- }
130
- if (field.type === 'SHORT_TEXT' && (_field$validation3 = field.validation) != null && _field$validation3.stringLengthRange) {
131
- cmsField.stringLengthRange = field.validation.stringLengthRange;
132
- }
140
+ const cmsField = toCmsField(field, (0, _getFieldKey.getFieldKey)(existingFieldKeys(), field.displayName));
133
141
  const {
134
142
  dataCollection
135
143
  } = await _data.collections.createDataCollectionField(collectionId, {
@@ -137,6 +145,26 @@ function createCmsFieldActions(collectionId, getCollection) {
137
145
  });
138
146
  return fieldsAfterMutation(dataCollection);
139
147
  },
148
+ addFields: async fields => {
149
+ const collection = getCollection();
150
+ if (!collection) {
151
+ throw new Error(`Collection ${collectionId} not found`);
152
+ }
153
+
154
+ // Callers decide the keys up front (import uploads values under them), so
155
+ // key each new field by its `id` — mapped before any SDK call so an
156
+ // unsupported type throws without a partial write.
157
+ const cmsFields = fields.map(field => toCmsField(field, field.id));
158
+
159
+ // One mutation for all new fields: append them to the existing
160
+ // definition. Unlike the field mutations, `updateDataCollection` resolves
161
+ // with the updated collection directly (not wrapped in `{ dataCollection }`).
162
+ const dataCollection = await _data.collections.updateDataCollection({
163
+ ...collection,
164
+ fields: [...(collection.fields ?? []), ...cmsFields]
165
+ });
166
+ return fieldsAfterMutation(dataCollection);
167
+ },
140
168
  editField: async (fieldId, updates) => {
141
169
  const {
142
170
  dataCollection
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_cmsFieldTypeMap","_transformCmsSchema","_getFieldKey","_pollUntilReady","COPY_TASK_POLL_INTERVAL_MS","COPY_TASK_MAX_ATTEMPTS","waitForCopyTask","taskId","pollUntilReady","task","tasks","getTask","status","_task$failures","failure","failures","Error","code","description","filter","Boolean","join","interval","maxAttempts","err","message","createCmsFieldActions","collectionId","getCollection","existingFieldKeys","_getCollection","fields","flatMap","f","key","findCmsField","fieldKey","_getCollection2","find","fieldsAfterMutation","dataCollection","transformCmsSchema","buildFieldPatch","fieldId","updates","_findCmsField","_updates$validation","_updates$validation2","_updates$validation3","sourceCmsType","type","patch","displayName","undefined","isPii","encrypted","helpText","validation","required","numberRange","stringLengthRange","cloneFieldDefinition","source","newKey","newDisplayName","_cloned$typeMetadata","systemField","capabilities","rest","cloned","typeMetadata","multiReference","referencingFieldKey","addField","field","_field$validation","_field$validation2","_field$validation3","cmsType","PatternsFieldTypeToCmsFieldType","cmsField","getFieldKey","collections","createDataCollectionField","editField","patchDataCollectionField","deleteField","deleteDataCollectionField","renameField","newName","makePrimary","patchDataCollection","displayField","duplicateField","sourceField","duplicateFieldWithContent","createdTask","createTask","copyFieldDataOptions","dataCollectionId","sourceFieldKey","targetFieldKey","_id"],"sources":["../../../src/adapter/createCmsFieldActions.ts"],"sourcesContent":["import { collections, tasks } from '@wix/data';\nimport type { Field, FieldActions, Schema } from '@wix/bex-core';\nimport { PatternsFieldTypeToCmsFieldType } from './cmsFieldTypeMap';\nimport { transformCmsSchema } from './transformCmsSchema';\nimport { getFieldKey } from './getFieldKey';\nimport { pollUntilReady } from './pollUntilReady';\n\nconst COPY_TASK_POLL_INTERVAL_MS = 1000;\nconst COPY_TASK_MAX_ATTEMPTS = 300;\n\n/** Polls a COPY_FIELD_DATA task to completion, mapping the generic poll-timeout error. */\nconst waitForCopyTask = async (taskId: string): Promise<void> => {\n try {\n await pollUntilReady(\n async () => {\n const task = await tasks.getTask(taskId);\n if (task.status === 'FAILED') {\n const failure = task.failures?.[0];\n throw new Error(\n [failure?.code, failure?.description].filter(Boolean).join(': ') ||\n 'Copy field data task failed',\n );\n }\n return task.status === 'COMPLETED';\n },\n {\n interval: COPY_TASK_POLL_INTERVAL_MS,\n maxAttempts: COPY_TASK_MAX_ATTEMPTS,\n },\n );\n } catch (err) {\n if (err instanceof Error && err.message === 'Backup polling timed out') {\n throw new Error('Copy field data task timed out');\n }\n throw err;\n }\n};\n\n/**\n * Builds the `FieldActions` for a CMS collection over `@wix/data`. `getCollection`\n * returns the current raw collection snapshot (for existing keys + source field types).\n */\nexport function createCmsFieldActions(\n collectionId: string,\n getCollection: () => collections.DataCollection | null,\n): FieldActions {\n const existingFieldKeys = (): string[] =>\n getCollection()?.fields?.flatMap((f) => (f.key ? [f.key] : [])) ?? [];\n\n const findCmsField = (fieldKey: string): collections.Field | undefined =>\n getCollection()?.fields?.find((f) => f.key === fieldKey);\n\n // A field mutation returns the updated collection; turn it into the new fields\n // map. The SDK guarantees `dataCollection` on a successful mutation, so there is\n // no missing-collection case to handle here.\n const fieldsAfterMutation = (\n dataCollection: collections.DataCollection,\n ): Schema['fields'] => transformCmsSchema(dataCollection).fields;\n\n const buildFieldPatch = (\n fieldId: string,\n updates: Partial<Field>,\n ): collections.Field => {\n const sourceCmsType = findCmsField(fieldId)?.type;\n const patch: collections.Field = { key: fieldId };\n if (updates.displayName !== undefined) {\n patch.displayName = updates.displayName;\n }\n if (updates.isPii !== undefined) {\n patch.encrypted = updates.isPii;\n }\n if (updates.helpText !== undefined) {\n patch.description = updates.helpText;\n }\n if (updates.validation?.required !== undefined) {\n patch.required = updates.validation.required;\n }\n if (updates.validation?.numberRange && sourceCmsType === 'NUMBER') {\n patch.numberRange = updates.validation.numberRange;\n }\n if (updates.validation?.stringLengthRange && sourceCmsType === 'TEXT') {\n patch.stringLengthRange = updates.validation.stringLengthRange;\n }\n return patch;\n };\n\n /**\n * Clones a CMS field for duplication: drops `systemField`/`capabilities` and clears\n * `referencingFieldKey` so the duplicate gets its own backing reference field.\n */\n const cloneFieldDefinition = (\n source: collections.Field,\n newKey: string,\n newDisplayName: string,\n ): collections.Field => {\n const { systemField, capabilities, ...rest } = source;\n const cloned: collections.Field = {\n ...rest,\n key: newKey,\n displayName: newDisplayName,\n };\n if (cloned.typeMetadata?.multiReference?.referencingFieldKey) {\n cloned.typeMetadata = {\n ...cloned.typeMetadata,\n multiReference: {\n ...cloned.typeMetadata.multiReference,\n referencingFieldKey: undefined,\n },\n };\n }\n return cloned;\n };\n\n return {\n addField: async (field: Field) => {\n const cmsType = PatternsFieldTypeToCmsFieldType[field.type];\n if (!cmsType) {\n throw new Error(`Field type ${field.type} not supported yet`);\n }\n\n const cmsField: collections.Field = {\n key: getFieldKey(existingFieldKeys(), field.displayName),\n displayName: field.displayName,\n type: cmsType,\n required: field.validation?.required ?? false,\n };\n\n if (field.isPii) {\n cmsField.encrypted = true;\n }\n if (field.helpText) {\n cmsField.description = field.helpText;\n }\n if (field.type === 'NUMBER' && field.validation?.numberRange) {\n cmsField.numberRange = field.validation.numberRange;\n }\n if (field.type === 'SHORT_TEXT' && field.validation?.stringLengthRange) {\n cmsField.stringLengthRange = field.validation.stringLengthRange;\n }\n\n const { dataCollection } = await collections.createDataCollectionField(\n collectionId,\n { field: cmsField },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n editField: async (fieldId, updates) => {\n const { dataCollection } = await collections.patchDataCollectionField(\n collectionId,\n buildFieldPatch(fieldId, updates),\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n deleteField: async (fieldId) => {\n const { dataCollection } = await collections.deleteDataCollectionField(\n collectionId,\n { fieldKey: fieldId },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n renameField: async (fieldId, newName) => {\n await collections.patchDataCollectionField(\n collectionId,\n buildFieldPatch(fieldId, { displayName: newName }),\n );\n },\n\n makePrimary: async (fieldId) => {\n const { dataCollection } = await collections.patchDataCollection(\n collectionId,\n { displayField: fieldId },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n duplicateField: async (fieldId) => {\n const sourceField = findCmsField(fieldId);\n if (!sourceField || !sourceField.type) {\n throw new Error(`Field ${fieldId} not found`);\n }\n const newDisplayName = `${sourceField.displayName ?? fieldId} (Copy)`;\n const newKey = getFieldKey(existingFieldKeys(), newDisplayName);\n const { dataCollection } = await collections.createDataCollectionField(\n collectionId,\n { field: cloneFieldDefinition(sourceField, newKey, newDisplayName) },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n duplicateFieldWithContent: async (fieldId) => {\n const sourceField = findCmsField(fieldId);\n if (!sourceField || !sourceField.type) {\n throw new Error(`Field ${fieldId} not found`);\n }\n const newDisplayName = `${sourceField.displayName ?? fieldId} (Copy)`;\n const newKey = getFieldKey(existingFieldKeys(), newDisplayName);\n const { dataCollection } = await collections.createDataCollectionField(\n collectionId,\n { field: cloneFieldDefinition(sourceField, newKey, newDisplayName) },\n );\n const createdTask = await tasks.createTask({\n type: 'COPY_FIELD_DATA',\n copyFieldDataOptions: {\n dataCollectionId: collectionId,\n sourceFieldKey: fieldId,\n targetFieldKey: newKey,\n },\n });\n await waitForCopyTask(createdTask._id!);\n return fieldsAfterMutation(dataCollection!);\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_cmsFieldTypeMap","_transformCmsSchema","_getFieldKey","_pollUntilReady","COPY_TASK_POLL_INTERVAL_MS","COPY_TASK_MAX_ATTEMPTS","waitForCopyTask","taskId","pollUntilReady","task","tasks","getTask","status","_task$failures","failure","failures","Error","code","description","filter","Boolean","join","interval","maxAttempts","err","message","createCmsFieldActions","collectionId","getCollection","existingFieldKeys","_getCollection","fields","flatMap","f","key","findCmsField","fieldKey","_getCollection2","find","fieldsAfterMutation","dataCollection","transformCmsSchema","toCmsField","field","_field$validation","_field$validation2","_field$validation3","cmsType","PatternsFieldTypeToCmsFieldType","type","cmsField","displayName","required","validation","isPii","encrypted","helpText","numberRange","stringLengthRange","buildFieldPatch","fieldId","updates","_findCmsField","_updates$validation","_updates$validation2","_updates$validation3","sourceCmsType","patch","undefined","cloneFieldDefinition","source","newKey","newDisplayName","_cloned$typeMetadata","systemField","capabilities","rest","cloned","typeMetadata","multiReference","referencingFieldKey","addField","getFieldKey","collections","createDataCollectionField","addFields","collection","cmsFields","map","id","updateDataCollection","editField","patchDataCollectionField","deleteField","deleteDataCollectionField","renameField","newName","makePrimary","patchDataCollection","displayField","duplicateField","sourceField","duplicateFieldWithContent","createdTask","createTask","copyFieldDataOptions","dataCollectionId","sourceFieldKey","targetFieldKey","_id"],"sources":["../../../src/adapter/createCmsFieldActions.ts"],"sourcesContent":["import { collections, tasks } from '@wix/data';\nimport type { Field, FieldActions, Schema } from '@wix/bex-core';\nimport { PatternsFieldTypeToCmsFieldType } from './cmsFieldTypeMap';\nimport { transformCmsSchema } from './transformCmsSchema';\nimport { getFieldKey } from './getFieldKey';\nimport { pollUntilReady } from './pollUntilReady';\n\nconst COPY_TASK_POLL_INTERVAL_MS = 1000;\nconst COPY_TASK_MAX_ATTEMPTS = 300;\n\n/** Polls a COPY_FIELD_DATA task to completion, mapping the generic poll-timeout error. */\nconst waitForCopyTask = async (taskId: string): Promise<void> => {\n try {\n await pollUntilReady(\n async () => {\n const task = await tasks.getTask(taskId);\n if (task.status === 'FAILED') {\n const failure = task.failures?.[0];\n throw new Error(\n [failure?.code, failure?.description].filter(Boolean).join(': ') ||\n 'Copy field data task failed',\n );\n }\n return task.status === 'COMPLETED';\n },\n {\n interval: COPY_TASK_POLL_INTERVAL_MS,\n maxAttempts: COPY_TASK_MAX_ATTEMPTS,\n },\n );\n } catch (err) {\n if (err instanceof Error && err.message === 'Backup polling timed out') {\n throw new Error('Copy field data task timed out');\n }\n throw err;\n }\n};\n\n/**\n * Builds the `FieldActions` for a CMS collection over `@wix/data`. `getCollection`\n * returns the current raw collection snapshot (for existing keys + source field types).\n */\nexport function createCmsFieldActions(\n collectionId: string,\n getCollection: () => collections.DataCollection | null,\n): FieldActions {\n const existingFieldKeys = (): string[] =>\n getCollection()?.fields?.flatMap((f) => (f.key ? [f.key] : [])) ?? [];\n\n const findCmsField = (fieldKey: string): collections.Field | undefined =>\n getCollection()?.fields?.find((f) => f.key === fieldKey);\n\n // A field mutation returns the updated collection; turn it into the new fields\n // map. The SDK guarantees `dataCollection` on a successful mutation, so there is\n // no missing-collection case to handle here.\n const fieldsAfterMutation = (\n dataCollection: collections.DataCollection,\n ): Schema['fields'] => transformCmsSchema(dataCollection).fields;\n\n // Maps a source-neutral `Field` to a CMS field under the given `key`. Throws\n // for a type with no CMS mapping before any SDK call. Shared by addField (key\n // derived from the display name) and addFields (key = the caller's field.id).\n const toCmsField = (field: Field, key: string): collections.Field => {\n const cmsType = PatternsFieldTypeToCmsFieldType[field.type];\n if (!cmsType) {\n throw new Error(`Field type ${field.type} not supported yet`);\n }\n\n const cmsField: collections.Field = {\n key,\n displayName: field.displayName,\n type: cmsType,\n required: field.validation?.required ?? false,\n };\n\n if (field.isPii) {\n cmsField.encrypted = true;\n }\n if (field.helpText) {\n cmsField.description = field.helpText;\n }\n if (field.type === 'NUMBER' && field.validation?.numberRange) {\n cmsField.numberRange = field.validation.numberRange;\n }\n if (field.type === 'SHORT_TEXT' && field.validation?.stringLengthRange) {\n cmsField.stringLengthRange = field.validation.stringLengthRange;\n }\n\n return cmsField;\n };\n\n const buildFieldPatch = (\n fieldId: string,\n updates: Partial<Field>,\n ): collections.Field => {\n const sourceCmsType = findCmsField(fieldId)?.type;\n const patch: collections.Field = { key: fieldId };\n if (updates.displayName !== undefined) {\n patch.displayName = updates.displayName;\n }\n if (updates.isPii !== undefined) {\n patch.encrypted = updates.isPii;\n }\n if (updates.helpText !== undefined) {\n patch.description = updates.helpText;\n }\n if (updates.validation?.required !== undefined) {\n patch.required = updates.validation.required;\n }\n if (updates.validation?.numberRange && sourceCmsType === 'NUMBER') {\n patch.numberRange = updates.validation.numberRange;\n }\n if (updates.validation?.stringLengthRange && sourceCmsType === 'TEXT') {\n patch.stringLengthRange = updates.validation.stringLengthRange;\n }\n return patch;\n };\n\n /**\n * Clones a CMS field for duplication: drops `systemField`/`capabilities` and clears\n * `referencingFieldKey` so the duplicate gets its own backing reference field.\n */\n const cloneFieldDefinition = (\n source: collections.Field,\n newKey: string,\n newDisplayName: string,\n ): collections.Field => {\n const { systemField, capabilities, ...rest } = source;\n const cloned: collections.Field = {\n ...rest,\n key: newKey,\n displayName: newDisplayName,\n };\n if (cloned.typeMetadata?.multiReference?.referencingFieldKey) {\n cloned.typeMetadata = {\n ...cloned.typeMetadata,\n multiReference: {\n ...cloned.typeMetadata.multiReference,\n referencingFieldKey: undefined,\n },\n };\n }\n return cloned;\n };\n\n return {\n addField: async (field: Field) => {\n const cmsField = toCmsField(\n field,\n getFieldKey(existingFieldKeys(), field.displayName),\n );\n const { dataCollection } = await collections.createDataCollectionField(\n collectionId,\n { field: cmsField },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n addFields: async (fields: Field[]) => {\n const collection = getCollection();\n if (!collection) {\n throw new Error(`Collection ${collectionId} not found`);\n }\n\n // Callers decide the keys up front (import uploads values under them), so\n // key each new field by its `id` — mapped before any SDK call so an\n // unsupported type throws without a partial write.\n const cmsFields = fields.map((field) => toCmsField(field, field.id));\n\n // One mutation for all new fields: append them to the existing\n // definition. Unlike the field mutations, `updateDataCollection` resolves\n // with the updated collection directly (not wrapped in `{ dataCollection }`).\n const dataCollection = await collections.updateDataCollection({\n ...collection,\n fields: [...(collection.fields ?? []), ...cmsFields],\n });\n return fieldsAfterMutation(dataCollection);\n },\n\n editField: async (fieldId, updates) => {\n const { dataCollection } = await collections.patchDataCollectionField(\n collectionId,\n buildFieldPatch(fieldId, updates),\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n deleteField: async (fieldId) => {\n const { dataCollection } = await collections.deleteDataCollectionField(\n collectionId,\n { fieldKey: fieldId },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n renameField: async (fieldId, newName) => {\n await collections.patchDataCollectionField(\n collectionId,\n buildFieldPatch(fieldId, { displayName: newName }),\n );\n },\n\n makePrimary: async (fieldId) => {\n const { dataCollection } = await collections.patchDataCollection(\n collectionId,\n { displayField: fieldId },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n duplicateField: async (fieldId) => {\n const sourceField = findCmsField(fieldId);\n if (!sourceField || !sourceField.type) {\n throw new Error(`Field ${fieldId} not found`);\n }\n const newDisplayName = `${sourceField.displayName ?? fieldId} (Copy)`;\n const newKey = getFieldKey(existingFieldKeys(), newDisplayName);\n const { dataCollection } = await collections.createDataCollectionField(\n collectionId,\n { field: cloneFieldDefinition(sourceField, newKey, newDisplayName) },\n );\n return fieldsAfterMutation(dataCollection!);\n },\n\n duplicateFieldWithContent: async (fieldId) => {\n const sourceField = findCmsField(fieldId);\n if (!sourceField || !sourceField.type) {\n throw new Error(`Field ${fieldId} not found`);\n }\n const newDisplayName = `${sourceField.displayName ?? fieldId} (Copy)`;\n const newKey = getFieldKey(existingFieldKeys(), newDisplayName);\n const { dataCollection } = await collections.createDataCollectionField(\n collectionId,\n { field: cloneFieldDefinition(sourceField, newKey, newDisplayName) },\n );\n const createdTask = await tasks.createTask({\n type: 'COPY_FIELD_DATA',\n copyFieldDataOptions: {\n dataCollectionId: collectionId,\n sourceFieldKey: fieldId,\n targetFieldKey: newKey,\n },\n });\n await waitForCopyTask(createdTask._id!);\n return fieldsAfterMutation(dataCollection!);\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,7 @@ jest.mock('@wix/data', () => {
10
10
  patchDataCollectionField: jest.fn(),
11
11
  deleteDataCollectionField: jest.fn(),
12
12
  patchDataCollection: jest.fn(),
13
+ updateDataCollection: jest.fn(),
13
14
  },
14
15
  tasks: {
15
16
  ...actual.tasks,
@@ -26,6 +27,9 @@ const createDataCollectionField = collections.createDataCollectionField;
26
27
  const patchDataCollectionField = collections.patchDataCollectionField;
27
28
  const deleteDataCollectionField = collections.deleteDataCollectionField;
28
29
  const patchDataCollection = collections.patchDataCollection;
30
+ // updateDataCollection resolves with the updated collection directly (not
31
+ // wrapped in `{ dataCollection }`, unlike the field mutations).
32
+ const updateDataCollection = collections.updateDataCollection;
29
33
  const createTask = tasks.createTask;
30
34
  const getTask = tasks.getTask;
31
35
  const COLLECTION_ID = 'collection-1';
@@ -61,6 +65,7 @@ describe('createCmsFieldActions', () => {
61
65
  patchDataCollectionField.mockResolvedValue({
62
66
  dataCollection: makeCollection([]),
63
67
  });
68
+ updateDataCollection.mockImplementation(async (dataCollection) => dataCollection);
64
69
  });
65
70
  describe('addField', () => {
66
71
  it('maps the patterns field type to the CMS type and derives the key from displayName', async () => {
@@ -134,6 +139,54 @@ describe('createCmsFieldActions', () => {
134
139
  expect(payload.field.required).toBe(true);
135
140
  });
136
141
  });
142
+ describe('addFields', () => {
143
+ it('appends all new fields in one updateDataCollection call, keyed by field.id, preserving existing fields', async () => {
144
+ const existing = makeField({ key: 'name', displayName: 'Name' });
145
+ const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([existing]));
146
+ await actions.addFields([
147
+ makePatternsField({ id: 'color', displayName: 'Color', type: 'SHORT_TEXT' }),
148
+ makePatternsField({ id: 'count', displayName: 'Count', type: 'NUMBER' }),
149
+ ]);
150
+ expect(updateDataCollection).toHaveBeenCalledTimes(1);
151
+ const [dataCollection] = updateDataCollection.mock.calls[0];
152
+ expect(dataCollection._id).toBe(COLLECTION_ID);
153
+ // Existing field kept; new fields appended under their given ids as keys.
154
+ expect(dataCollection.fields).toEqual([
155
+ existing,
156
+ {
157
+ key: 'color',
158
+ displayName: 'Color',
159
+ type: collections.Type.TEXT,
160
+ required: false,
161
+ },
162
+ {
163
+ key: 'count',
164
+ displayName: 'Count',
165
+ type: collections.Type.NUMBER,
166
+ required: false,
167
+ },
168
+ ]);
169
+ expect(createDataCollectionField).not.toHaveBeenCalled();
170
+ });
171
+ it('resolves with the full updated fields map (existing + added), keyed by field key', async () => {
172
+ const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([makeField({ key: 'name', displayName: 'Name' })]));
173
+ const fields = await actions.addFields([
174
+ makePatternsField({ id: 'color', displayName: 'Color', type: 'SHORT_TEXT' }),
175
+ ]);
176
+ expect(Object.keys(fields)).toEqual(['name', 'color']);
177
+ expect(fields.color).toMatchObject({ id: 'color', displayName: 'Color' });
178
+ });
179
+ it('throws before any write when a field type has no CMS mapping', async () => {
180
+ const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([]));
181
+ await expect(actions.addFields([makePatternsField({ id: 'pic', type: 'IMAGE' })])).rejects.toThrow('Field type IMAGE not supported yet');
182
+ expect(updateDataCollection).not.toHaveBeenCalled();
183
+ });
184
+ it('throws when the collection cannot be read', async () => {
185
+ const actions = createCmsFieldActions(COLLECTION_ID, () => null);
186
+ await expect(actions.addFields([makePatternsField({ id: 'color' })])).rejects.toThrow(`Collection ${COLLECTION_ID} not found`);
187
+ expect(updateDataCollection).not.toHaveBeenCalled();
188
+ });
189
+ });
137
190
  describe('editField', () => {
138
191
  it('patches only displayName when only displayName is provided', async () => {
139
192
  const actions = createCmsFieldActions(COLLECTION_ID, () => makeCollection([makeField({ key: 'name' })]));
@@ -1 +1 @@
1
- {"version":3,"file":"cmsFieldActions.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/cmsFieldActions.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,yBAAyB,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,wBAAwB,EAAE,IAAI,CAAC,EAAE,EAAE;YACnC,yBAAyB,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;SAC/B;QACD,KAAK,EAAE;YACL,GAAG,MAAM,CAAC,KAAK;YACf,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;SACnB;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AACxE,2EAA2E;AAC3E,+EAA+E;AAC/E,0EAA0E;AAC1E,MAAM,yBAAyB,GAC7B,WAAW,CAAC,yBAGX,CAAC;AACJ,MAAM,wBAAwB,GAC5B,WAAW,CAAC,wBAGX,CAAC;AACJ,MAAM,yBAAyB,GAC7B,WAAW,CAAC,yBAGX,CAAC;AACJ,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAGX,CAAC;AAQJ,MAAM,UAAU,GAAG,KAAK,CAAC,UAGxB,CAAC;AACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAGrB,CAAC;AAEF,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,MAAM,SAAS,GAAG,CAChB,YAAwC,EAAE,EACvB,EAAE,CAAC,CAAC;IACvB,GAAG,EAAE,aAAa;IAClB,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;IAC3B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CACrB,MAA2B,EACC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;AAElE,MAAM,iBAAiB,GAAG,CAAC,YAA4B,EAAE,EAAS,EAAE;IAClE,MAAM,IAAI,GAAU;QAClB,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,YAAY;KACnB,CAAC;IACF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAW,CAAC;AAC5C,CAAC,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,yBAAyB,CAAC,iBAAiB,CAAC;YAC1C,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,yBAAyB,CAAC,iBAAiB,CAAC;YAC1C,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,mBAAmB,CAAC,iBAAiB,CAAC;YACpC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,wBAAwB,CAAC,iBAAiB,CAAC;YACzC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;YACjG,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CACnD,CAAC;YAEF,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,GACjC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;gBAClC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC3B,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CACjD,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAEzE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAC1D,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;aAClE,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;aAClE,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;gBAC9C,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,QAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CACxD,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACxD,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CACtD,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAEpE,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;YAC1F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACzD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,KAAK,EAAE;gBAC9B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;aAClE,CAAC,CAAC;YAEH,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,KAAK;gBACV,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE;gBAC/B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;aAClE,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;YAC9F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE;gBAC/B,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;aACnD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACzD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,KAAK,EAAE;gBAC9B,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;YAEF,MAAM,OAAO,CAAC,WAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAE9C,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CACjD,CAAC;YAEF,MAAM,OAAO,CAAC,WAAY,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACpE,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CACnD,CAAC;YAEF,MAAM,OAAO,CAAC,WAAY,CAAC,YAAY,CAAC,CAAC;YAEzC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC9D,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;aAC/D,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,GACjC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;gBAClC,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;aAC5B,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC;oBACR,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE;wBACZ,QAAQ,EAAE,IAAI;wBACd,cAAc,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;qBAC/C;iBACF,CAAC;aACH,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,WAAW,GAAsB,SAAS,CAAC;gBAC/C,GAAG,EAAE,UAAU;gBACf,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe;gBACtC,YAAY,EAAE;oBACZ,cAAc,EAAE;wBACd,mBAAmB,EAAE,iBAAiB;wBACtC,sBAAsB,EAAE,kBAAkB;qBAC3C;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAC9B,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,UAAU,CAAC,CAAC;YAE1C,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CACJ,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAChE,CAAC,aAAa,EAAE,CAAC;YAClB,MAAM,CACJ,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,sBAAsB,CACnE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;gBAC9D,SAAS,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;aACtC,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,cAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9D,yBAAyB,CAC1B,CAAC;YACF,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;aAC/D,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,yBAA0B,CAAC,aAAa,CAAC,CAAC;YAExD,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC;gBACtC,IAAI,EAAE,iBAAiB;gBACvB,oBAAoB,EAAE;oBACpB,gBAAgB,EAAE,aAAa;oBAC/B,cAAc,EAAE,aAAa;oBAC7B,cAAc;iBACf;aACF,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,iBAAiB,CAAC;gBACxB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;aAC3D,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAC9B,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,yBAA0B,CAAC,aAAa,CAAC,CAClD,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,yBAA0B,CAAC,SAAS,CAAC,CAC9C,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAC7C,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACzD,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cmsFieldActions.spec.js","sourceRoot":"","sources":["../../../../src/adapter/__tests__/cmsFieldActions.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,GAAG,MAAM;QACT,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,yBAAyB,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,wBAAwB,EAAE,IAAI,CAAC,EAAE,EAAE;YACnC,yBAAyB,EAAE,IAAI,CAAC,EAAE,EAAE;YACpC,mBAAmB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC9B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;SAChC;QACD,KAAK,EAAE;YACL,GAAG,MAAM,CAAC,KAAK;YACf,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YACrB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;SACnB;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AACxE,2EAA2E;AAC3E,+EAA+E;AAC/E,0EAA0E;AAC1E,MAAM,yBAAyB,GAC7B,WAAW,CAAC,yBAGX,CAAC;AACJ,MAAM,wBAAwB,GAC5B,WAAW,CAAC,wBAGX,CAAC;AACJ,MAAM,yBAAyB,GAC7B,WAAW,CAAC,yBAGX,CAAC;AACJ,MAAM,mBAAmB,GACvB,WAAW,CAAC,mBAGX,CAAC;AACJ,0EAA0E;AAC1E,gEAAgE;AAChE,MAAM,oBAAoB,GACxB,WAAW,CAAC,oBAGX,CAAC;AAQJ,MAAM,UAAU,GAAG,KAAK,CAAC,UAGxB,CAAC;AACF,MAAM,OAAO,GAAG,KAAK,CAAC,OAGrB,CAAC;AAEF,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,MAAM,SAAS,GAAG,CAChB,YAAwC,EAAE,EACvB,EAAE,CAAC,CAAC;IACvB,GAAG,EAAE,aAAa;IAClB,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;IAC3B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,GAAG,SAAS;CACb,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CACrB,MAA2B,EACC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;AAElE,MAAM,iBAAiB,GAAG,CAAC,YAA4B,EAAE,EAAS,EAAE;IAClE,MAAM,IAAI,GAAU;QAClB,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,YAAY;KACnB,CAAC;IACF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAW,CAAC;AAC5C,CAAC,CAAC;AAEF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,yBAAyB,CAAC,iBAAiB,CAAC;YAC1C,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,yBAAyB,CAAC,iBAAiB,CAAC;YAC1C,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,mBAAmB,CAAC,iBAAiB,CAAC;YACpC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,wBAAwB,CAAC,iBAAiB,CAAC;YACzC,cAAc,EAAE,cAAc,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;QACH,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;YACjG,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CACnD,CAAC;YAEF,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,GACjC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;gBAClC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC3B,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CACjD,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAEzE,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAC1D,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;aAClE,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;aAClE,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC;gBAChB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CACH,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;gBAC9C,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,QAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CACxD,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACxD,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,OAAO,CAAC,QAAS,CACrB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CACtD,CAAC;YAEF,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,wGAAwG,EAAE,KAAK,IAAI,EAAE;YACtH,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,CAC3B,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC;gBACvB,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;gBAC5E,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aACzE,CAAC,CAAC;YAEH,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,cAAc,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,0EAA0E;YAC1E,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACpC,QAAQ;gBACR;oBACE,GAAG,EAAE,OAAO;oBACZ,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;oBAC3B,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,GAAG,EAAE,OAAO;oBACZ,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;oBAC7B,QAAQ,EAAE,KAAK;iBAChB;aACF,CAAC,CAAC;YACH,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;YAChG,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAClE,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAU,CAAC;gBACtC,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;aAC7E,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,SAAU,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CACtE,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;YACxD,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAEjE,MAAM,MAAM,CACV,OAAO,CAAC,SAAU,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CACzD,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,aAAa,YAAY,CAAC,CAAC;YAC3D,MAAM,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAEpE,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,MAAM;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;YAC1F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACzD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,KAAK,EAAE;gBAC9B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;aAClE,CAAC,CAAC;YAEH,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,KAAK;gBACV,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;aAClC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE;gBAC/B,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;aAClE,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;YAC9F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aACxD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,MAAM,EAAE;gBAC/B,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;aACnD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACzD,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,SAAU,CAAC,KAAK,EAAE;gBAC9B,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;iBACnD;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;YAEF,MAAM,OAAO,CAAC,WAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAE9C,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACnE,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CACjD,CAAC;YAEF,MAAM,OAAO,CAAC,WAAY,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBACpE,QAAQ,EAAE,UAAU;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CACnD,CAAC;YAEF,MAAM,OAAO,CAAC,WAAY,CAAC,YAAY,CAAC,CAAC;YAEzC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,aAAa,EAAE;gBAC9D,YAAY,EAAE,YAAY;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;aAC/D,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,GACjC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;gBAClC,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI;aAC5B,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC;oBACR,WAAW,EAAE,IAAI;oBACjB,YAAY,EAAE;wBACZ,QAAQ,EAAE,IAAI;wBACd,cAAc,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;qBAC/C;iBACF,CAAC;aACH,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,WAAW,GAAsB,SAAS,CAAC;gBAC/C,GAAG,EAAE,UAAU;gBACf,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,eAAe;gBACtC,YAAY,EAAE;oBACZ,cAAc,EAAE;wBACd,mBAAmB,EAAE,iBAAiB;wBACtC,sBAAsB,EAAE,kBAAkB;qBAC3C;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,CAC9B,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,UAAU,CAAC,CAAC;YAE1C,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CACJ,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,mBAAmB,CAChE,CAAC,aAAa,EAAE,CAAC;YAClB,MAAM,CACJ,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,EAAE,sBAAsB,CACnE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;gBAC9D,SAAS,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;aACtC,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,cAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9D,yBAAyB,CAC1B,CAAC;YACF,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC;gBACb,SAAS,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;aAC/D,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,yBAA0B,CAAC,aAAa,CAAC,CAAC;YAExD,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC;gBACtC,IAAI,EAAE,iBAAiB;gBACvB,oBAAoB,EAAE;oBACpB,gBAAgB,EAAE,aAAa;oBAC/B,cAAc,EAAE,aAAa;oBAC7B,cAAc;iBACf;aACF,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;YACpG,UAAU,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,iBAAiB,CAAC;gBACxB,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;aAC3D,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAC9B,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,yBAA0B,CAAC,aAAa,CAAC,CAClD,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,CACxD,cAAc,CAAC,EAAE,CAAC,CACnB,CAAC;YAEF,MAAM,MAAM,CACV,OAAO,CAAC,yBAA0B,CAAC,SAAS,CAAC,CAC9C,CAAC,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAC7C,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACzD,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -39,6 +39,34 @@ export function createCmsFieldActions(collectionId, getCollection) {
39
39
  // map. The SDK guarantees `dataCollection` on a successful mutation, so there is
40
40
  // no missing-collection case to handle here.
41
41
  const fieldsAfterMutation = (dataCollection) => transformCmsSchema(dataCollection).fields;
42
+ // Maps a source-neutral `Field` to a CMS field under the given `key`. Throws
43
+ // for a type with no CMS mapping before any SDK call. Shared by addField (key
44
+ // derived from the display name) and addFields (key = the caller's field.id).
45
+ const toCmsField = (field, key) => {
46
+ const cmsType = PatternsFieldTypeToCmsFieldType[field.type];
47
+ if (!cmsType) {
48
+ throw new Error(`Field type ${field.type} not supported yet`);
49
+ }
50
+ const cmsField = {
51
+ key,
52
+ displayName: field.displayName,
53
+ type: cmsType,
54
+ required: field.validation?.required ?? false,
55
+ };
56
+ if (field.isPii) {
57
+ cmsField.encrypted = true;
58
+ }
59
+ if (field.helpText) {
60
+ cmsField.description = field.helpText;
61
+ }
62
+ if (field.type === 'NUMBER' && field.validation?.numberRange) {
63
+ cmsField.numberRange = field.validation.numberRange;
64
+ }
65
+ if (field.type === 'SHORT_TEXT' && field.validation?.stringLengthRange) {
66
+ cmsField.stringLengthRange = field.validation.stringLengthRange;
67
+ }
68
+ return cmsField;
69
+ };
42
70
  const buildFieldPatch = (fieldId, updates) => {
43
71
  const sourceCmsType = findCmsField(fieldId)?.type;
44
72
  const patch = { key: fieldId };
@@ -86,31 +114,28 @@ export function createCmsFieldActions(collectionId, getCollection) {
86
114
  };
87
115
  return {
88
116
  addField: async (field) => {
89
- const cmsType = PatternsFieldTypeToCmsFieldType[field.type];
90
- if (!cmsType) {
91
- throw new Error(`Field type ${field.type} not supported yet`);
92
- }
93
- const cmsField = {
94
- key: getFieldKey(existingFieldKeys(), field.displayName),
95
- displayName: field.displayName,
96
- type: cmsType,
97
- required: field.validation?.required ?? false,
98
- };
99
- if (field.isPii) {
100
- cmsField.encrypted = true;
101
- }
102
- if (field.helpText) {
103
- cmsField.description = field.helpText;
104
- }
105
- if (field.type === 'NUMBER' && field.validation?.numberRange) {
106
- cmsField.numberRange = field.validation.numberRange;
107
- }
108
- if (field.type === 'SHORT_TEXT' && field.validation?.stringLengthRange) {
109
- cmsField.stringLengthRange = field.validation.stringLengthRange;
110
- }
117
+ const cmsField = toCmsField(field, getFieldKey(existingFieldKeys(), field.displayName));
111
118
  const { dataCollection } = await collections.createDataCollectionField(collectionId, { field: cmsField });
112
119
  return fieldsAfterMutation(dataCollection);
113
120
  },
121
+ addFields: async (fields) => {
122
+ const collection = getCollection();
123
+ if (!collection) {
124
+ throw new Error(`Collection ${collectionId} not found`);
125
+ }
126
+ // Callers decide the keys up front (import uploads values under them), so
127
+ // key each new field by its `id` — mapped before any SDK call so an
128
+ // unsupported type throws without a partial write.
129
+ const cmsFields = fields.map((field) => toCmsField(field, field.id));
130
+ // One mutation for all new fields: append them to the existing
131
+ // definition. Unlike the field mutations, `updateDataCollection` resolves
132
+ // with the updated collection directly (not wrapped in `{ dataCollection }`).
133
+ const dataCollection = await collections.updateDataCollection({
134
+ ...collection,
135
+ fields: [...(collection.fields ?? []), ...cmsFields],
136
+ });
137
+ return fieldsAfterMutation(dataCollection);
138
+ },
114
139
  editField: async (fieldId, updates) => {
115
140
  const { dataCollection } = await collections.patchDataCollectionField(collectionId, buildFieldPatch(fieldId, updates));
116
141
  return fieldsAfterMutation(dataCollection);
@@ -1 +1 @@
1
- {"version":3,"file":"createCmsFieldActions.js","sourceRoot":"","sources":["../../../src/adapter/createCmsFieldActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createCmsFieldActions.js","sourceRoot":"","sources":["../../../src/adapter/createCmsFieldActions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createCmsFieldActions.d.ts","sourceRoot":"","sources":["../../../src/adapter/createCmsFieldActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAS,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAS,YAAY,EAAU,MAAM,eAAe,CAAC;AAqCjE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,WAAW,CAAC,cAAc,GAAG,IAAI,GACrD,YAAY,CA0Kd"}
1
+ {"version":3,"file":"createCmsFieldActions.d.ts","sourceRoot":"","sources":["../../../src/adapter/createCmsFieldActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAS,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAS,YAAY,EAAU,MAAM,eAAe,CAAC;AAqCjE;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,WAAW,CAAC,cAAc,GAAG,IAAI,GACrD,YAAY,CA0Md"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/patterns-cms",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "license": "UNLICENSED",
5
5
  "author": {
6
6
  "name": "Cairo",
@@ -27,8 +27,8 @@
27
27
  ],
28
28
  "dependencies": {
29
29
  "@babel/runtime": "^7.0.0",
30
- "@wix/bex-core": "2.331.0",
31
- "@wix/bex-utils": "2.118.0",
30
+ "@wix/bex-core": "2.332.0",
31
+ "@wix/bex-utils": "2.119.0",
32
32
  "@wix/data": "^1.0.323",
33
33
  "lodash": "^4.17.20",
34
34
  "tslib": "^2.0.0"
@@ -119,5 +119,5 @@
119
119
  "wallaby": {
120
120
  "autoDetect": true
121
121
  },
122
- "falconPackageHash": "60444f855b8806e75c7a180a1038e9e463701c3fc7bcf6b8954c714a"
122
+ "falconPackageHash": "94ba918d8c02193e752d29bf1f9a30ccfbffcae0517640e3a177b5fc"
123
123
  }