@wix/bex-core 2.235.0 → 2.237.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.
Files changed (36) hide show
  1. package/dist/cjs/assets/locale/messages_pt.json +2 -2
  2. package/dist/cjs/services/DataExtensionFieldOperationsService.js +235 -0
  3. package/dist/cjs/services/DataExtensionFieldOperationsService.js.map +1 -0
  4. package/dist/cjs/services/DataExtensionService/dataExtensionService.js +54 -0
  5. package/dist/cjs/services/DataExtensionService/dataExtensionService.js.map +1 -1
  6. package/dist/cjs/services/DataExtensionService/deleteUserDefinedFieldsErrors.js +33 -0
  7. package/dist/cjs/services/DataExtensionService/deleteUserDefinedFieldsErrors.js.map +1 -0
  8. package/dist/cjs/services/translations.js.map +1 -1
  9. package/dist/cjs/state/DataExtensionState.js +102 -52
  10. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  11. package/dist/cjs/state/DataExtensionStateBIReporter.js +23 -0
  12. package/dist/cjs/state/DataExtensionStateBIReporter.js.map +1 -1
  13. package/dist/esm/assets/locale/messages_pt.json +2 -2
  14. package/dist/esm/services/DataExtensionFieldOperationsService.js +157 -0
  15. package/dist/esm/services/DataExtensionFieldOperationsService.js.map +1 -0
  16. package/dist/esm/services/DataExtensionService/dataExtensionService.js +44 -1
  17. package/dist/esm/services/DataExtensionService/dataExtensionService.js.map +1 -1
  18. package/dist/esm/services/DataExtensionService/deleteUserDefinedFieldsErrors.js +26 -0
  19. package/dist/esm/services/DataExtensionService/deleteUserDefinedFieldsErrors.js.map +1 -0
  20. package/dist/esm/state/DataExtensionState.js +67 -44
  21. package/dist/esm/state/DataExtensionState.js.map +1 -1
  22. package/dist/esm/state/DataExtensionStateBIReporter.js +20 -0
  23. package/dist/esm/state/DataExtensionStateBIReporter.js.map +1 -1
  24. package/dist/types/services/DataExtensionFieldOperationsService.d.ts +31 -0
  25. package/dist/types/services/DataExtensionFieldOperationsService.d.ts.map +1 -0
  26. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts +3 -0
  27. package/dist/types/services/DataExtensionService/dataExtensionService.d.ts.map +1 -1
  28. package/dist/types/services/DataExtensionService/deleteUserDefinedFieldsErrors.d.ts +7 -0
  29. package/dist/types/services/DataExtensionService/deleteUserDefinedFieldsErrors.d.ts.map +1 -0
  30. package/dist/types/services/translations.d.ts +1 -1
  31. package/dist/types/services/translations.d.ts.map +1 -1
  32. package/dist/types/state/DataExtensionState.d.ts +31 -0
  33. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  34. package/dist/types/state/DataExtensionStateBIReporter.d.ts +5 -0
  35. package/dist/types/state/DataExtensionStateBIReporter.d.ts.map +1 -1
  36. package/package.json +4 -4
@@ -135,7 +135,7 @@
135
135
  "section.header.folders": "Pastas",
136
136
  "cairo.tags.manageTags.modal.list.input.save.CTA": "Salvar",
137
137
  "cairo.subtitle.learnMore": "Saiba mais",
138
- "cairo.table.saveViewModal.placeholder": "Por exemplo: Favoritos",
138
+ "cairo.table.saveViewModal.placeholder": "Ex.: Favoritos",
139
139
  "cairo.filtersPanel.date.7days": "Últimos 7 dias",
140
140
  "cairo.customFields.fieldType.longText.placeholder": "Insira o texto aqui",
141
141
  "cairo.customFields.addCustomField.modal.fieldName": "Nome",
@@ -376,7 +376,7 @@
376
376
  "cairo.dragAndDrop.live-region.itemDragged.sr": "{currentNumber} de {totalNumber}.",
377
377
  "cairo.customFields.url-input.error": "Insira um URL válido. Por exemplo: https://pt.wix.com",
378
378
  "cairo.noFiltersApplied.validationTooltip": "Adicione ou descarte um filtro ou coluna para salvar esta visualização.",
379
- "cairo.customFields.placeholder.url": "Por exemplo: página inicial",
379
+ "cairo.customFields.placeholder.url": "Ex.: página inicial",
380
380
  "cairo.customFields.emptyState.subtitle": "Quando você tiver campos, poderá acompanhar as informações coletadas aqui.",
381
381
  "cairo.tags.collectionPage.popover.loadTags.error.body.asLabels": "Não foi possível carregar as etiquetas devido a um problema técnico no nosso sistema.",
382
382
  "cairo.entityPage.header.activate.CTA": "Ativar",
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.DataExtensionFieldOperationsService = void 0;
5
+ var _DataExtensionStateBIReporter = require("../state/DataExtensionStateBIReporter");
6
+ /**
7
+ * Service for handling archive, restore, and delete operations on custom fields.
8
+ * This service is lazily loaded to reduce bundle size for consumers who don't use these features.
9
+ */
10
+ class DataExtensionFieldOperationsService {
11
+ constructor(context) {
12
+ this.context = context;
13
+ }
14
+ showFieldOperationToast({
15
+ type,
16
+ operation,
17
+ message,
18
+ action,
19
+ onRetryClick,
20
+ biName
21
+ }) {
22
+ const {
23
+ container
24
+ } = this.context;
25
+ const retryAction = {
26
+ uiType: 'LINK',
27
+ text: container.translate('cairo.toast.retry'),
28
+ onClick: onRetryClick,
29
+ removeToastOnClick: true
30
+ };
31
+ container.showToast == null || container.showToast({
32
+ message,
33
+ action: type !== 'SUCCESS' && onRetryClick ? retryAction : action,
34
+ type,
35
+ biName: biName || `cairo-${operation}-custom-field-${type.toLowerCase()}-toast`
36
+ });
37
+ }
38
+ async archiveField({
39
+ id,
40
+ origin,
41
+ reportBi
42
+ }) {
43
+ if (!id) {
44
+ return;
45
+ }
46
+ const {
47
+ dataExtensionService,
48
+ userSchema,
49
+ fqdnString,
50
+ extractFieldValuesFromSchema,
51
+ upsertSchema,
52
+ container,
53
+ enableArchive,
54
+ openArchivedPanel
55
+ } = this.context;
56
+ const fieldValues = extractFieldValuesFromSchema(id);
57
+ const fieldName = (fieldValues == null ? void 0 : fieldValues.name) || '';
58
+ const biReporter = new _DataExtensionStateBIReporter.DataExtensionStateBIReporter({
59
+ reportBi
60
+ });
61
+ try {
62
+ const {
63
+ dataExtensionSchema
64
+ } = await dataExtensionService.archiveCustomField({
65
+ schema: userSchema,
66
+ fqdn: fqdnString,
67
+ id
68
+ });
69
+ if (dataExtensionSchema) {
70
+ upsertSchema(dataExtensionSchema);
71
+ }
72
+ const successMessage = enableArchive && fieldName ? container.translate('cairo.customFields.archive.success.toast.enabled', {
73
+ selectedField: fieldName
74
+ }) : container.translate('cairo.customFields.archive.success.toast');
75
+ const action = enableArchive ? {
76
+ text: container.translate('cairo.customFields.archive.success.toast.CTA'),
77
+ uiType: 'LINK',
78
+ onClick: () => openArchivedPanel == null ? void 0 : openArchivedPanel()
79
+ } : undefined;
80
+ this.showFieldOperationToast({
81
+ type: 'SUCCESS',
82
+ operation: 'archive',
83
+ message: successMessage,
84
+ action
85
+ });
86
+ } catch (e) {
87
+ this.showFieldOperationToast({
88
+ type: 'ERROR',
89
+ operation: 'archive',
90
+ message: container.translate('cairo.customFields.archive.error.toast', {
91
+ selectedField: fieldName
92
+ }),
93
+ onRetryClick: () => {
94
+ biReporter.reportArchiveTryAgain();
95
+ this.archiveField({
96
+ id,
97
+ origin,
98
+ reportBi
99
+ });
100
+ }
101
+ });
102
+ biReporter.reportArchiveFieldFailed({
103
+ formValues: fieldValues,
104
+ origin
105
+ });
106
+ }
107
+ }
108
+ async restoreField({
109
+ id,
110
+ origin,
111
+ reportBi
112
+ }) {
113
+ if (!id) {
114
+ return;
115
+ }
116
+ const {
117
+ dataExtensionService,
118
+ userSchema,
119
+ fqdnString,
120
+ extractFieldValuesFromSchema,
121
+ upsertSchema,
122
+ container
123
+ } = this.context;
124
+ const fieldValues = extractFieldValuesFromSchema(id);
125
+ const fieldName = (fieldValues == null ? void 0 : fieldValues.name) || '';
126
+ const biReporter = new _DataExtensionStateBIReporter.DataExtensionStateBIReporter({
127
+ reportBi
128
+ });
129
+ try {
130
+ const {
131
+ dataExtensionSchema
132
+ } = await dataExtensionService.restoreCustomField({
133
+ schema: userSchema,
134
+ fqdn: fqdnString,
135
+ id
136
+ });
137
+ if (dataExtensionSchema) {
138
+ upsertSchema(dataExtensionSchema);
139
+ }
140
+ this.showFieldOperationToast({
141
+ type: 'SUCCESS',
142
+ operation: 'restore',
143
+ message: container.translate('cairo.customFields.restored.success.toast', {
144
+ selectedField: fieldName
145
+ })
146
+ });
147
+ } catch (e) {
148
+ this.showFieldOperationToast({
149
+ type: 'ERROR',
150
+ operation: 'restore',
151
+ message: container.translate('cairo.customFields.restore.error.toast', {
152
+ selectedField: fieldName
153
+ }),
154
+ onRetryClick: () => {
155
+ biReporter.reportRestoreTryAgain();
156
+ this.restoreField({
157
+ id,
158
+ origin,
159
+ reportBi
160
+ });
161
+ }
162
+ });
163
+ biReporter.reportRestoreFieldFailed({
164
+ formValues: fieldValues,
165
+ origin
166
+ });
167
+ }
168
+ }
169
+ async deleteField({
170
+ id,
171
+ origin,
172
+ reportBi
173
+ }) {
174
+ var _userSchema$jsonSchem;
175
+ if (!id) {
176
+ return;
177
+ }
178
+ const {
179
+ dataExtensionService,
180
+ userSchema,
181
+ fqdnString,
182
+ extractFieldValuesFromSchema,
183
+ upsertSchema,
184
+ container
185
+ } = this.context;
186
+ const fieldValues = extractFieldValuesFromSchema(id);
187
+ const fieldName = (fieldValues == null ? void 0 : fieldValues.name) || '';
188
+
189
+ // Validate field is archived
190
+ const field = userSchema == null || (_userSchema$jsonSchem = userSchema.jsonSchema) == null || (_userSchema$jsonSchem = _userSchema$jsonSchem.properties) == null ? void 0 : _userSchema$jsonSchem[id];
191
+ if (field && !field['x-wix-archived']) {
192
+ this.showFieldOperationToast({
193
+ type: 'ERROR',
194
+ operation: 'delete',
195
+ message: `${fieldName || 'Field'} must be archived before it can be deleted.`,
196
+ biName: 'cairo-delete-custom-field-not-archived-error-toast'
197
+ });
198
+ return;
199
+ }
200
+ try {
201
+ const {
202
+ dataExtensionSchema
203
+ } = await dataExtensionService.deleteCustomField({
204
+ schema: userSchema,
205
+ fqdn: fqdnString,
206
+ id
207
+ });
208
+ if (dataExtensionSchema) {
209
+ upsertSchema(dataExtensionSchema);
210
+ }
211
+ this.showFieldOperationToast({
212
+ type: 'SUCCESS',
213
+ operation: 'delete',
214
+ message: container.translate('cairo.customFields.deleted.success.toast', {
215
+ selectedField: fieldName
216
+ })
217
+ });
218
+ } catch (e) {
219
+ this.showFieldOperationToast({
220
+ type: 'ERROR',
221
+ operation: 'delete',
222
+ message: container.translate('cairo.customFields.delete.error.toast', {
223
+ selectedField: fieldName
224
+ }),
225
+ onRetryClick: () => this.deleteField({
226
+ id,
227
+ origin,
228
+ reportBi
229
+ })
230
+ });
231
+ }
232
+ }
233
+ }
234
+ exports.DataExtensionFieldOperationsService = DataExtensionFieldOperationsService;
235
+ //# sourceMappingURL=DataExtensionFieldOperationsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_DataExtensionStateBIReporter","require","DataExtensionFieldOperationsService","constructor","context","showFieldOperationToast","type","operation","message","action","onRetryClick","biName","container","retryAction","uiType","text","translate","onClick","removeToastOnClick","showToast","toLowerCase","archiveField","id","origin","reportBi","dataExtensionService","userSchema","fqdnString","extractFieldValuesFromSchema","upsertSchema","enableArchive","openArchivedPanel","fieldValues","fieldName","name","biReporter","DataExtensionStateBIReporter","dataExtensionSchema","archiveCustomField","schema","fqdn","successMessage","selectedField","undefined","e","reportArchiveTryAgain","reportArchiveFieldFailed","formValues","restoreField","restoreCustomField","reportRestoreTryAgain","reportRestoreFieldFailed","deleteField","_userSchema$jsonSchem","field","jsonSchema","properties","deleteCustomField","exports"],"sources":["../../../src/services/DataExtensionFieldOperationsService.ts"],"sourcesContent":["import type { DataExtensionSchema } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport type { CustomFieldForm, WixPatternsContainer } from '../state';\nimport type { DataExtensionSchemaService, ReportBI } from '.';\nimport { DataExtensionStateBIReporter } from '../state/DataExtensionStateBIReporter';\nimport { ToastAction } from '../model';\n\nexport interface FieldOperationParams {\n id?: string;\n origin: string;\n reportBi: ReportBI;\n}\n\nexport interface FieldOperationContext {\n container: WixPatternsContainer;\n dataExtensionService: DataExtensionSchemaService;\n userSchema?: DataExtensionSchema;\n fqdnString: string;\n enableArchive?: boolean;\n extractFieldValuesFromSchema: (\n fieldId: string,\n ) => CustomFieldForm | undefined;\n upsertSchema: (schema: DataExtensionSchema) => void;\n openArchivedPanel?: () => void;\n}\n\n/**\n * Service for handling archive, restore, and delete operations on custom fields.\n * This service is lazily loaded to reduce bundle size for consumers who don't use these features.\n */\nexport class DataExtensionFieldOperationsService {\n constructor(private readonly context: FieldOperationContext) {}\n\n private showFieldOperationToast({\n type,\n operation,\n message,\n action,\n onRetryClick,\n biName,\n }: {\n type: 'SUCCESS' | 'ERROR';\n operation: 'archive' | 'restore' | 'delete';\n message: string;\n action?: ToastAction;\n onRetryClick?: () => void;\n biName?: string;\n }) {\n const { container } = this.context;\n const retryAction = {\n uiType: 'LINK' as const,\n text: container.translate('cairo.toast.retry'),\n onClick: onRetryClick,\n removeToastOnClick: true,\n };\n\n container.showToast?.({\n message,\n action: type !== 'SUCCESS' && onRetryClick ? retryAction : action,\n type,\n biName:\n biName || `cairo-${operation}-custom-field-${type.toLowerCase()}-toast`,\n });\n }\n\n async archiveField({ id, origin, reportBi }: FieldOperationParams) {\n if (!id) {\n return;\n }\n\n const {\n dataExtensionService,\n userSchema,\n fqdnString,\n extractFieldValuesFromSchema,\n upsertSchema,\n container,\n enableArchive,\n openArchivedPanel,\n } = this.context;\n\n const fieldValues = extractFieldValuesFromSchema(id);\n const fieldName = fieldValues?.name || '';\n const biReporter = new DataExtensionStateBIReporter({ reportBi });\n\n try {\n const { dataExtensionSchema } =\n await dataExtensionService.archiveCustomField({\n schema: userSchema,\n fqdn: fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n upsertSchema(dataExtensionSchema);\n }\n\n const successMessage =\n enableArchive && fieldName\n ? container.translate(\n 'cairo.customFields.archive.success.toast.enabled',\n { selectedField: fieldName },\n )\n : container.translate('cairo.customFields.archive.success.toast');\n\n const action = enableArchive\n ? {\n text: container.translate(\n 'cairo.customFields.archive.success.toast.CTA',\n ),\n uiType: 'LINK' as const,\n onClick: () => openArchivedPanel?.(),\n }\n : undefined;\n\n this.showFieldOperationToast({\n type: 'SUCCESS',\n operation: 'archive',\n message: successMessage,\n action,\n });\n } catch (e) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'archive',\n message: container.translate('cairo.customFields.archive.error.toast', {\n selectedField: fieldName,\n }),\n onRetryClick: () => {\n biReporter.reportArchiveTryAgain();\n this.archiveField({ id, origin, reportBi });\n },\n });\n biReporter.reportArchiveFieldFailed({ formValues: fieldValues, origin });\n }\n }\n\n async restoreField({ id, origin, reportBi }: FieldOperationParams) {\n if (!id) {\n return;\n }\n\n const {\n dataExtensionService,\n userSchema,\n fqdnString,\n extractFieldValuesFromSchema,\n upsertSchema,\n container,\n } = this.context;\n\n const fieldValues = extractFieldValuesFromSchema(id);\n const fieldName = fieldValues?.name || '';\n const biReporter = new DataExtensionStateBIReporter({ reportBi });\n\n try {\n const { dataExtensionSchema } =\n await dataExtensionService.restoreCustomField({\n schema: userSchema,\n fqdn: fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n upsertSchema(dataExtensionSchema);\n }\n\n this.showFieldOperationToast({\n type: 'SUCCESS',\n operation: 'restore',\n message: container.translate(\n 'cairo.customFields.restored.success.toast',\n { selectedField: fieldName },\n ),\n });\n } catch (e) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'restore',\n message: container.translate('cairo.customFields.restore.error.toast', {\n selectedField: fieldName,\n }),\n onRetryClick: () => {\n biReporter.reportRestoreTryAgain();\n this.restoreField({ id, origin, reportBi });\n },\n });\n biReporter.reportRestoreFieldFailed({ formValues: fieldValues, origin });\n }\n }\n\n async deleteField({ id, origin, reportBi }: FieldOperationParams) {\n if (!id) {\n return;\n }\n\n const {\n dataExtensionService,\n userSchema,\n fqdnString,\n extractFieldValuesFromSchema,\n upsertSchema,\n container,\n } = this.context;\n\n const fieldValues = extractFieldValuesFromSchema(id);\n const fieldName = fieldValues?.name || '';\n\n // Validate field is archived\n const field = userSchema?.jsonSchema?.properties?.[id];\n if (field && !field['x-wix-archived']) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'delete',\n message: `${\n fieldName || 'Field'\n } must be archived before it can be deleted.`,\n biName: 'cairo-delete-custom-field-not-archived-error-toast',\n });\n return;\n }\n\n try {\n const { dataExtensionSchema } =\n await dataExtensionService.deleteCustomField({\n schema: userSchema,\n fqdn: fqdnString,\n id,\n });\n\n if (dataExtensionSchema) {\n upsertSchema(dataExtensionSchema);\n }\n\n this.showFieldOperationToast({\n type: 'SUCCESS',\n operation: 'delete',\n message: container.translate(\n 'cairo.customFields.deleted.success.toast',\n { selectedField: fieldName },\n ),\n });\n } catch (e) {\n this.showFieldOperationToast({\n type: 'ERROR',\n operation: 'delete',\n message: container.translate('cairo.customFields.delete.error.toast', {\n selectedField: fieldName,\n }),\n onRetryClick: () => this.deleteField({ id, origin, reportBi }),\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
7
7
  var _http = require("@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http");
8
8
  var _updateDataExtensionSchemaErrors = require("./updateDataExtensionSchemaErrors");
9
9
  var _createDataExtensionSchemaErrors = require("./createDataExtensionSchemaErrors");
10
+ var _deleteUserDefinedFieldsErrors = require("./deleteUserDefinedFieldsErrors");
10
11
  // server types
11
12
 
12
13
  // client types
@@ -204,6 +205,47 @@ class DataExtensionSchemaService {
204
205
  };
205
206
  return this._updateDataExtensionSchema(schema);
206
207
  }
208
+ restoreCustomField(params) {
209
+ var _params$schema6, _params$schema7;
210
+ const {
211
+ userFieldsNamespace
212
+ } = this;
213
+ const {
214
+ id,
215
+ fqdn
216
+ } = params;
217
+ const schema = {
218
+ fqdn,
219
+ namespace: userFieldsNamespace,
220
+ ...params.schema,
221
+ jsonSchema: {
222
+ properties: {
223
+ ...((_params$schema6 = params.schema) == null || (_params$schema6 = _params$schema6.jsonSchema) == null ? void 0 : _params$schema6.properties),
224
+ [id]: {
225
+ ...((_params$schema7 = params.schema) == null || (_params$schema7 = _params$schema7.jsonSchema) == null ? void 0 : _params$schema7.properties[id]),
226
+ 'x-wix-archived': false
227
+ }
228
+ }
229
+ }
230
+ };
231
+ return this._updateDataExtensionSchema(schema);
232
+ }
233
+ deleteCustomField(params) {
234
+ var _params$schema8, _params$schema$jsonSc;
235
+ const {
236
+ id
237
+ } = params;
238
+ if (!((_params$schema8 = params.schema) != null && _params$schema8.id)) {
239
+ throw new Error('Schema ID is required to delete a custom field');
240
+ }
241
+
242
+ // Check if the field is archived before attempting deletion
243
+ const field = (_params$schema$jsonSc = params.schema.jsonSchema) == null || (_params$schema$jsonSc = _params$schema$jsonSc.properties) == null ? void 0 : _params$schema$jsonSc[id];
244
+ if (field && !field['x-wix-archived']) {
245
+ throw new Error('Field must be archived before it can be deleted. Please archive the field first.');
246
+ }
247
+ return this._deleteUserDefinedFields(params.schema.id, [id]);
248
+ }
207
249
  async fetchSchemas(fqdn) {
208
250
  const {
209
251
  httpClient,
@@ -238,6 +280,18 @@ class DataExtensionSchemaService {
238
280
  translate: this.translate
239
281
  })).then(res => res.data);
240
282
  }
283
+ async _deleteUserDefinedFields(dataExtensionSchemaId, fieldsToDelete) {
284
+ const {
285
+ httpClient,
286
+ errorHandler
287
+ } = this;
288
+ return errorHandler.withErrorHandler(() => httpClient.request((0, _http.deleteUserDefinedFields)({
289
+ dataExtensionSchemaId,
290
+ fieldsToDelete
291
+ })), (0, _deleteUserDefinedFieldsErrors.deleteUserDefinedFieldsErrors)({
292
+ translate: this.translate
293
+ })).then(res => res.data);
294
+ }
241
295
  }
242
296
  exports.DataExtensionSchemaService = DataExtensionSchemaService;
243
297
  //# sourceMappingURL=dataExtensionService.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_http","require","_updateDataExtensionSchemaErrors","_createDataExtensionSchemaErrors","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","_field$items","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","translate","errorHandler","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","containsPii","fqdn","permissions","read","write","filterable","namespace","enabled","_updateDataExtensionSchema","_createDataExtensionSchema","archiveCustomField","_params$schema4","_params$schema5","fetchSchemas","res","withErrorHandler","request","listDataExtensionSchemas","namespaces","fields","data","createDataExtensionSchema","dataExtensionSchema","createDataExtensionSchemaErrors","then","updateDataExtensionSchema","updateDataExtensionSchemaErrors","exports"],"sources":["../../../../src/services/DataExtensionService/dataExtensionService.ts"],"sourcesContent":["import type {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n listDataExtensionSchemas,\n updateDataExtensionSchema,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm, WixPatternsContainer } from '../../state';\nimport { PatternsErrorHandler, WixPatternsEssentials } from '../../model';\nimport { updateDataExtensionSchemaErrors } from './updateDataExtensionSchemaErrors';\nimport { createDataExtensionSchemaErrors } from './createDataExtensionSchemaErrors';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler: PatternsErrorHandler;\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array'\n | 'object';\n\nexport type DataExtensionPermission =\n | 'apps'\n | 'owning-app'\n | 'users'\n | 'users-of-users';\n\ninterface DataExtensionFieldItems\n extends Partial<Omit<DataExtensionField, 'type' | 'maxLength'>> {\n type: Omit<DataExtensionType, 'array'>;\n maxLength: number;\n}\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | 'uri' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-filterable'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-object-type'?: string;\n 'x-wix-permissions': {\n read: DataExtensionPermission[];\n write: DataExtensionPermission[];\n };\n properties?: Record<string, any>;\n items?: DataExtensionFieldItems;\n 'x-wix-pii'?: { enabled: boolean };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'url'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown'\n | 'files'\n | 'multiSelect';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFieldsDataMap {\n [key: string]: any;\n}\n\nexport interface ExtendedFields {\n _type?: 'ExtendedFields';\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: ExtendedFieldsDataMap | undefined;\n [key: string]: ExtendedFieldsDataMap | undefined;\n };\n}\n\nexport type CustomFieldOwner = 'user' | 'app';\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n filterable?: boolean;\n owner: CustomFieldOwner;\n properties?: Record<string, string>;\n namespace: string;\n permissions?: {\n read?: DataExtensionPermission[];\n write?: DataExtensionPermission[];\n };\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n filterable?: boolean;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler;\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'url':\n return {\n type: 'string',\n format: 'uri',\n maxLength: 256,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType | undefined {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'uri':\n return 'url';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array': {\n if (field.items?.['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'multiSelect';\n }\n case 'object': {\n if (field['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'dropdown';\n }\n default:\n return;\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n this.translate = params.translate;\n this.errorHandler = params.errorHandler;\n }\n addCustomField(params: AddFieldParams) {\n const { userFieldsNamespace } = this;\n const {\n form: {\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const filterable = params.filterable ? { 'x-wix-filterable': true } : {};\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...(containsPii ? { 'x-wix-pii': { enabled: true } } : {}),\n ...type,\n 'x-wix-permissions': permissions,\n ...filterable,\n },\n },\n },\n };\n\n return params.schema?.id\n ? this._updateDataExtensionSchema(schema)\n : this._createDataExtensionSchema(schema);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n return this._updateDataExtensionSchema(schema);\n }\n\n async fetchSchemas(fqdn: string) {\n const { httpClient, errorHandler } = this;\n\n const res = await errorHandler.withErrorHandler(\n () =>\n httpClient.request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: ['ARCHIVED' as RequestedField],\n }),\n ),\n {},\n );\n\n return res.data;\n }\n\n private async _createDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n createDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n createDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n\n private async _updateDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n updateDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n updateDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_http","require","_updateDataExtensionSchemaErrors","_createDataExtensionSchemaErrors","_deleteUserDefinedFieldsErrors","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","_field$items","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","translate","errorHandler","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","containsPii","fqdn","permissions","read","write","filterable","namespace","enabled","_updateDataExtensionSchema","_createDataExtensionSchema","archiveCustomField","_params$schema4","_params$schema5","restoreCustomField","_params$schema6","_params$schema7","deleteCustomField","_params$schema8","_params$schema$jsonSc","_deleteUserDefinedFields","fetchSchemas","res","withErrorHandler","request","listDataExtensionSchemas","namespaces","fields","data","createDataExtensionSchema","dataExtensionSchema","createDataExtensionSchemaErrors","then","updateDataExtensionSchema","updateDataExtensionSchemaErrors","dataExtensionSchemaId","fieldsToDelete","deleteUserDefinedFields","deleteUserDefinedFieldsErrors","exports"],"sources":["../../../../src/services/DataExtensionService/dataExtensionService.ts"],"sourcesContent":["import type {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n listDataExtensionSchemas,\n updateDataExtensionSchema,\n deleteUserDefinedFields,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm, WixPatternsContainer } from '../../state';\nimport { PatternsErrorHandler, WixPatternsEssentials } from '../../model';\nimport { updateDataExtensionSchemaErrors } from './updateDataExtensionSchemaErrors';\nimport { createDataExtensionSchemaErrors } from './createDataExtensionSchemaErrors';\nimport { deleteUserDefinedFieldsErrors } from './deleteUserDefinedFieldsErrors';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler: PatternsErrorHandler;\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array'\n | 'object';\n\nexport type DataExtensionPermission =\n | 'apps'\n | 'owning-app'\n | 'users'\n | 'users-of-users';\n\ninterface DataExtensionFieldItems\n extends Partial<Omit<DataExtensionField, 'type' | 'maxLength'>> {\n type: Omit<DataExtensionType, 'array'>;\n maxLength: number;\n}\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | 'uri' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-filterable'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-object-type'?: string;\n 'x-wix-permissions': {\n read: DataExtensionPermission[];\n write: DataExtensionPermission[];\n };\n properties?: Record<string, any>;\n items?: DataExtensionFieldItems;\n 'x-wix-pii'?: { enabled: boolean };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'url'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown'\n | 'files'\n | 'multiSelect';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFieldsDataMap {\n [key: string]: any;\n}\n\nexport interface ExtendedFields {\n _type?: 'ExtendedFields';\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: ExtendedFieldsDataMap | undefined;\n [key: string]: ExtendedFieldsDataMap | undefined;\n };\n}\n\nexport type CustomFieldOwner = 'user' | 'app';\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n filterable?: boolean;\n owner: CustomFieldOwner;\n properties?: Record<string, string>;\n namespace: string;\n permissions?: {\n read?: DataExtensionPermission[];\n write?: DataExtensionPermission[];\n };\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n filterable?: boolean;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly translate: WixPatternsContainer['translate'];\n readonly errorHandler;\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'url':\n return {\n type: 'string',\n format: 'uri',\n maxLength: 256,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType | undefined {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'uri':\n return 'url';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array': {\n if (field.items?.['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'multiSelect';\n }\n case 'object': {\n if (field['x-wix-object-type'] === 'FILE/V1') {\n return 'files';\n }\n return 'dropdown';\n }\n default:\n return;\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n this.translate = params.translate;\n this.errorHandler = params.errorHandler;\n }\n addCustomField(params: AddFieldParams) {\n const { userFieldsNamespace } = this;\n const {\n form: {\n key,\n name,\n readApps,\n readUsers,\n writeApps,\n writeUsers,\n containsPii,\n },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const filterable = params.filterable ? { 'x-wix-filterable': true } : {};\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...(containsPii ? { 'x-wix-pii': { enabled: true } } : {}),\n ...type,\n 'x-wix-permissions': permissions,\n ...filterable,\n },\n },\n },\n };\n\n return params.schema?.id\n ? this._updateDataExtensionSchema(schema)\n : this._createDataExtensionSchema(schema);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n return this._updateDataExtensionSchema(schema);\n }\n\n restoreCustomField(params: ArchiveFieldParams) {\n const { userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': false,\n },\n },\n },\n };\n return this._updateDataExtensionSchema(schema);\n }\n\n deleteCustomField(params: ArchiveFieldParams) {\n const { id } = params;\n\n if (!params.schema?.id) {\n throw new Error('Schema ID is required to delete a custom field');\n }\n\n // Check if the field is archived before attempting deletion\n const field = params.schema.jsonSchema?.properties?.[id];\n if (field && !field['x-wix-archived']) {\n throw new Error(\n 'Field must be archived before it can be deleted. Please archive the field first.',\n );\n }\n\n return this._deleteUserDefinedFields(params.schema.id, [id]);\n }\n\n async fetchSchemas(fqdn: string) {\n const { httpClient, errorHandler } = this;\n\n const res = await errorHandler.withErrorHandler(\n () =>\n httpClient.request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: ['ARCHIVED' as RequestedField],\n }),\n ),\n {},\n );\n\n return res.data;\n }\n\n private async _createDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n createDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n createDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n\n private async _updateDataExtensionSchema(schema: DataExtensionSchema) {\n const { httpClient, errorHandler } = this;\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n updateDataExtensionSchema({ dataExtensionSchema: schema }),\n ),\n updateDataExtensionSchemaErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n\n private async _deleteUserDefinedFields(\n dataExtensionSchemaId: string,\n fieldsToDelete: string[],\n ) {\n const { httpClient, errorHandler } = this;\n return errorHandler\n .withErrorHandler(\n () =>\n httpClient.request(\n deleteUserDefinedFields({\n dataExtensionSchemaId,\n fieldsToDelete,\n }),\n ),\n deleteUserDefinedFieldsErrors({\n translate: this.translate,\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.deleteUserDefinedFieldsErrors = void 0;
5
+ const deleteUserDefinedFieldsErrors = ({
6
+ translate: t
7
+ }) => {
8
+ return {
9
+ INVALID_NAMESPACE: () => ({
10
+ message: t('cairo.customFields.updateDataExtension.invalid-namespace.error'),
11
+ action: {
12
+ text: t('cairo.error.contactSupport.cta'),
13
+ onClick: () => {}
14
+ }
15
+ }),
16
+ FQDN_NOT_FOUND: () => ({
17
+ message: t('cairo.customFields.updateDataExtension.fqdn-not-found.error'),
18
+ action: {
19
+ text: t('cairo.error.contactSupport.cta'),
20
+ onClick: () => {}
21
+ }
22
+ }),
23
+ REMOVING_FIELDS_IS_DISALLOWED: () => ({
24
+ message: t('cairo.customFields.updateDataExtension.removing-fields-not-allowed.error'),
25
+ action: {
26
+ text: t('cairo.error.contactSupport.cta'),
27
+ onClick: () => {}
28
+ }
29
+ })
30
+ };
31
+ };
32
+ exports.deleteUserDefinedFieldsErrors = deleteUserDefinedFieldsErrors;
33
+ //# sourceMappingURL=deleteUserDefinedFieldsErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["deleteUserDefinedFieldsErrors","translate","t","INVALID_NAMESPACE","message","action","text","onClick","FQDN_NOT_FOUND","REMOVING_FIELDS_IS_DISALLOWED","exports"],"sources":["../../../../src/services/DataExtensionService/deleteUserDefinedFieldsErrors.ts"],"sourcesContent":["import { Translate } from '../translations';\nimport type { errorHandler } from '@wix/essentials';\nimport type { deleteUserDefinedFields } from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\n\nexport const deleteUserDefinedFieldsErrors = ({\n translate: t,\n}: {\n translate: Translate;\n}): errorHandler.ErrorCodesMap<typeof deleteUserDefinedFields> => {\n return {\n INVALID_NAMESPACE: () => ({\n message: t(\n 'cairo.customFields.updateDataExtension.invalid-namespace.error',\n ),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {},\n },\n }),\n FQDN_NOT_FOUND: () => ({\n message: t('cairo.customFields.updateDataExtension.fqdn-not-found.error'),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {},\n },\n }),\n REMOVING_FIELDS_IS_DISALLOWED: () => ({\n message: t(\n 'cairo.customFields.updateDataExtension.removing-fields-not-allowed.error',\n ),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {},\n },\n }),\n };\n};\n"],"mappings":";;;;AAIO,MAAMA,6BAA6B,GAAGA,CAAC;EAC5CC,SAAS,EAAEC;AAGb,CAAC,KAAiE;EAChE,OAAO;IACLC,iBAAiB,EAAEA,CAAA,MAAO;MACxBC,OAAO,EAAEF,CAAC,CACR,gEACF,CAAC;MACDG,MAAM,EAAE;QACNC,IAAI,EAAEJ,CAAC,CAAC,gCAAgC,CAAC;QACzCK,OAAO,EAAEA,CAAA,KAAM,CAAC;MAClB;IACF,CAAC,CAAC;IACFC,cAAc,EAAEA,CAAA,MAAO;MACrBJ,OAAO,EAAEF,CAAC,CAAC,6DAA6D,CAAC;MACzEG,MAAM,EAAE;QACNC,IAAI,EAAEJ,CAAC,CAAC,gCAAgC,CAAC;QACzCK,OAAO,EAAEA,CAAA,KAAM,CAAC;MAClB;IACF,CAAC,CAAC;IACFE,6BAA6B,EAAEA,CAAA,MAAO;MACpCL,OAAO,EAAEF,CAAC,CACR,0EACF,CAAC;MACDG,MAAM,EAAE;QACNC,IAAI,EAAEJ,CAAC,CAAC,gCAAgC,CAAC;QACzCK,OAAO,EAAEA,CAAA,KAAM,CAAC;MAClB;IACF,CAAC;EACH,CAAC;AACH,CAAC;AAACG,OAAA,CAAAV,6BAAA,GAAAA,6BAAA","ignoreList":[]}