@wix/wix-data-items-common 1.0.282 → 1.0.284

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.
@@ -68,7 +68,8 @@ class WixDataApi {
68
68
  dataCollectionId: collectionName,
69
69
  dataItemId: itemId,
70
70
  ...toReadOptions(options),
71
- fields: options == null ? void 0 : options.fields
71
+ fields: options == null ? void 0 : options.fields,
72
+ referencedItemOptions: options == null ? void 0 : options.referencedItemOptions
72
73
  }).catch(recover(ItemDoesNotExistCode, {}));
73
74
  return dataItem ? toDataItem(dataItem) : null;
74
75
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","apiTypes","_interopRequireWildcard","_utils","_common","_WixDataQueryImpl","_WixDataResultImpl","_WixDataAggregateImpl","_ApiClient","_WixDataPatchImpl","_WixDataSearchImpl","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createFilter","filter","anyFilter","getFilterModel","model","_e","filterTree","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","itemId","dataItem","getDataItem","dataItemId","toReadOptions","fields","catch","recover","ItemDoesNotExistCode","toDataItem","item","warnAboutBrokenFields","insertDataItem","id","_id","data","toInsertOptions","saveDataItem","toSaveOptions","updateDataItem","toUpdateOptions","removeDataItem","toRemoveOptions","fieldModification","action","ACTION","SET_FIELD","fieldPath","setFieldOptions","value","actionOptions","REMOVE_FIELD","INCREMENT_FIELD","incrementFieldOptions","APPEND_TO_ARRAY","appendToArrayOptions","REMOVE_FROM_ARRAY","removeFromArrayOptions","Error","WixDataPatchImpl","onRun","_args","patchParams","fieldModifications","map","toFieldModificationApi","result","patchDataItem","patch","toPatchOptions","itemIds","WixDataBulkPatchImpl","results","bulkPatchDataItems","patches","toBulkResult","ensureValidQuery","invalidArgs","length","wdeValidationError","messages","queryValidations","queryInvalid","WixDataSearchImpl","params","invalidArguments","validateAndReturn","expression","queryText","fetch","cursorOrOffset","request","search","sort","toSort","orderBy","projectedFields","fuzzy","isFuzzy","mode","searchMode","toPaging","limitNumber","referencedItemOptions","included","dataItems","pagingMetadata","searchDataItems","items","paging","skipNumber","WixDataResultImpl","cursor","limit","isNonEmptyString","queryDataItems","query","WixDataAggregateImpl","validationErrors","aggregateValidations","aggregateInvalid","returnTotalCount","toOperation","field","itemFieldName","undefined","aggregateDataItems","isOffset","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","unwrapAggregationId","pipeline","aggregatePipelineDataItems","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","bulkInsertOptions","appId","runBulkSave","overrideExisting","bulkUpdateOptions","bulkUpdateDataItems","toBulkUpdateOptions","current","queryReferencedDataItems","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","referringItemId","referringItemFieldName","order","SortOrder","ASC","DESC","skip","refsOrAttr","leftOrOpts","right","refs","opts","argc","rights","asArray","relationshipName","left","references","bulkInsertDataItemReferences","dataItemReferences","referencedItemId","referenceParameters","replaceDataItemReferences","newReferencedItemIds","referenceRemoveParameters","bulkRemoveDataItemReferences","isReferenced","isReferencedDataItem","consistentRead","ApiClient","wixData","filterBuilder","queryRequest","executeDirectQuery","WixDataQueryImpl","onCount","totalCount","countDataItems","onDistinct","_toSort$find","fieldName","find","distinctValues","queryDistinctValues","onFind","randomSortOptions","sortMode","SortMode","RANDOM","randomOptions","seed","_request$paging","_request$cursorPaging","_request$paging2","_request$cursorPaging2","_options$referencedIt","cursorPaging","offset","s","inc","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","fn","exports","arguments","suppressHooks","draftsOptions","showDrafts","conditionOptions","condition","includeReferencedItems","includeReferences","res","appOptions","entries","every","kv","language","publishPluginOptions","includeDraftItems","fieldOrder","providerOrValue","code","error","_details","details","applicationError","Promise","resolve","reject","hasFieldWithDollar","hasField","key","startsWith","hasFieldWithDot","includes","console","warn","errors","flatMap","_r$itemMetadata","_r$itemMetadata2","itemMetadata","success","BulkError","description","originalIndex","_r$itemMetadata3","inserted","BulkActionType","INSERT","updated","UPDATE","PATCH","removed","DELETE","skipped","insertedItemIds","_r$itemMetadata4","updatedItemIds","_r$itemMetadata5","removedItemIds","_r$itemMetadata6","isObject","rest","keys","notEmpty","xOrXs","isArray","commonApiValidator"],"sources":["../../../src/api/WixDataApi.ts"],"sourcesContent":["import {\n apiValidator as commonApiValidator,\n messages,\n BulkError,\n wdeValidationError,\n} from '../errors'\nimport { HttpApiClientFactory } from '../types'\nimport * as apiTypes from '../types/data-item-types'\n\nimport { hasField, isObject, isArray } from '../utils'\nimport { filterBuilder } from './common'\nimport {\n Provider,\n WixDataAggregateOptions,\n WixDataBulkResult,\n WixDataItem,\n WixDataItemOrId,\n WixDataOptions,\n WixDataPatchOptions,\n WixDataInsertOptions,\n WixDataRemoveOptions,\n WixDataQueryReferencedOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WixDataReference,\n WixDataUpdateOptions,\n WixDataBulkUpdateOptions,\n WixDataSaveOptions,\n WixDataQueryRequest,\n WixDataDirectQueryOptions,\n} from './types'\nimport { QueryParams, WixDataQueryImpl } from './impl/WixDataQueryImpl'\nimport { WixDataQuery } from './WixDataQuery'\nimport { WixDataResultImpl, PageFetcher } from './impl/WixDataResultImpl'\nimport { WixDataAggregateImpl } from './impl/WixDataAggregateImpl'\nimport { ApiClient } from './ApiClient'\nimport {\n WixDataPatch,\n FieldModification,\n WixDataBulkPatch,\n} from './WixDataPatch'\nimport { WixDataAggregate } from './WixDataAggregate'\nimport { WixDataFilter } from './WixDataFilter'\nimport { WixDataResult } from './WixDataResult'\nimport { WixDataBulkPatchImpl, WixDataPatchImpl } from './impl/WixDataPatchImpl'\nimport { WixDataSearch } from './WixDataSearch'\nimport { WixDataSearchImpl } from './impl/WixDataSearchImpl'\n\nfunction createFilter(filter: WixDataFilter): Record<string, any> {\n if (filter == null) {\n return {}\n }\n const anyFilter = filter as any\n if (typeof anyFilter.getFilterModel === 'function') {\n try {\n const model = anyFilter.getFilterModel()\n if (model != null) {\n return model\n }\n } catch (_e) {\n // fall back below\n }\n }\n if (anyFilter.filterTree != null) {\n return anyFilter.filterTree as Record<string, any>\n }\n return {}\n}\n\ntype ProvidedOpt<T> = T | undefined | Provider<T | undefined>\ntype TraceWith = (\n label: string,\n opts?: object\n) => <T>(fn: () => Promise<T>) => Promise<T>\n\nexport class WixDataApi {\n private client: ApiClient\n\n constructor(\n clientFactory: HttpApiClientFactory<any>,\n allowGet: boolean,\n private readonly environment?: apiTypes.Environment,\n private readonly gridAppId?: ProvidedOpt<string>,\n private readonly tracer?: TraceWith\n ) {\n this.client = new ApiClient(clientFactory, allowGet)\n }\n\n get wixData(): WixDataApi {\n return this\n }\n\n get filter(): WixDataFilter {\n return filterBuilder()\n }\n\n // NOTE sort method for builder is not implemented\n\n truncate = withArgs(\n async (\n args,\n collectionName: string,\n options?: WixDataOptions\n ): Promise<void> => {\n await apiValidator()\n .arity('truncate', args, 1, 2)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n return this.trace('truncate', { collectionName })(async (env) => {\n await this.client.truncateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toOptions(options),\n })\n })\n }\n )\n\n // --- single-item methods ---\n\n get = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('get', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('get', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .getDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toReadOptions(options),\n fields: options?.fields,\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n insert = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataUpdateOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('insert', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n warnAboutBrokenFields(item)\n\n return this.trace('insert', { collectionName })(async (env) => {\n const { dataItem } = await this.client.insertDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toInsertOptions(options),\n })\n\n return toDataItem(dataItem!)\n })\n }\n )\n\n save = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataSaveOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('save', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('save', { collectionName })(async (env) => {\n const { dataItem } = await this.client.saveDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toSaveOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n update = withArgs(\n async (\n args,\n collectionName: string,\n item: WixDataItem,\n options?: WixDataUpdateOptions\n ) => {\n await apiValidator()\n .arity('update', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('update', { collectionName })(async (env) => {\n const { dataItem } = await this.client.updateDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n remove = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataRemoveOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('remove', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('remove', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .removeDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toRemoveOptions(options),\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n private toFieldModificationApi = (fieldModification: FieldModification) => {\n switch (fieldModification.action) {\n case 'SET_FIELD':\n return {\n action: apiTypes.ACTION.SET_FIELD,\n fieldPath: fieldModification.fieldPath,\n setFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FIELD':\n return {\n action: apiTypes.ACTION.REMOVE_FIELD,\n fieldPath: fieldModification.fieldPath,\n }\n case 'INCREMENT_FIELD':\n return {\n action: apiTypes.ACTION.INCREMENT_FIELD,\n fieldPath: fieldModification.fieldPath,\n incrementFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'APPEND_TO_ARRAY':\n return {\n action: apiTypes.ACTION.APPEND_TO_ARRAY,\n fieldPath: fieldModification.fieldPath,\n appendToArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FROM_ARRAY':\n return {\n action: apiTypes.ACTION.REMOVE_FROM_ARRAY,\n fieldPath: fieldModification.fieldPath,\n removeFromArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n default:\n throw new Error('Invalid patch action')\n }\n }\n\n patch = (collectionName: string, itemId: string): WixDataPatch => {\n return new WixDataPatchImpl({\n collectionName,\n itemId,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('patch', { collectionName })(async (env) => {\n const result = await this.client.patchDataItem({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patch: {\n dataItemId: patchParams.itemId,\n fieldModifications,\n },\n ...toPatchOptions(options),\n })\n\n return result.dataItem ? toDataItem(result.dataItem) : null\n })\n },\n })\n }\n\n bulkPatch = (collectionName: string, itemIds: string[]): WixDataBulkPatch => {\n return new WixDataBulkPatchImpl({\n collectionName,\n itemIds,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('bulkPatch', { collectionName })(async (env) => {\n const { results } = await this.client.bulkPatchDataItems({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patches: patchParams.itemIds.map((itemId) => ({\n dataItemId: itemId,\n fieldModifications,\n })),\n ...toPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n },\n })\n }\n\n // --- query, count, distinct ---\n\n /**\n * Returns a query builder for the specified collection.\n * @param collectionName - Name of the collection to query.\n * @returns A `WixDataQuery` builder object.\n */\n query(collectionName: string): WixDataQuery\n\n /**\n * Executes a query directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection to query.\n * @param queryRequest - Query parameters including filter, sort, paging, and fields.\n * @param options - Additional options including referencedItemOptions.\n * @returns Promise that resolves to the query results.\n */\n query<Item extends WixDataItem = WixDataItem>(\n collectionName: string,\n queryRequest: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): Promise<WixDataResult<Item>>\n\n query<Item extends WixDataItem = WixDataItem>(\n collectionName: string,\n queryRequest?: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): WixDataQuery | Promise<WixDataResult<Item>> {\n // Direct query execution mode\n if (queryRequest !== undefined) {\n return this.executeDirectQuery<Item>(\n collectionName,\n queryRequest,\n options\n )\n }\n\n // Builder mode\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataQueryImpl({\n collectionName,\n onCount: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('count', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n return this.trace('count', { collectionName })(async (env) => {\n const { totalCount } = await this.client.countDataItems({\n ...env,\n dataCollectionId: collectionName,\n filter: params.filterTree,\n ...toReadOptions(options),\n })\n return totalCount!\n })\n },\n onDistinct: async (args, params, field, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('distinct', args, 1, 2)\n .fieldName(field)\n .options(options)\n .validateAndReturn(),\n ])\n\n const order = toSort(params.orderBy).find(\n (o) => o.fieldName === field\n )?.order\n\n const fetch: PageFetcher<any> = (cursorOrOffset, returnTotalCount) =>\n this.trace('distinct', { collectionName, field })(async (env) => {\n const { distinctValues, pagingMetadata } =\n await this.client.queryDistinctValues({\n ...env,\n dataCollectionId: collectionName,\n ...toReadOptions(options),\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n fieldName: field,\n filter: params.filterTree,\n order,\n returnTotalCount,\n }\n : {}),\n })\n return [distinctValues!, pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n onFind: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('find', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n fields: params.projectedFields,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n }\n : {}),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n ...(params.randomSortOptions\n ? {\n sortMode: apiTypes.SortMode.RANDOM,\n randomOptions: { seed: params.randomSortOptions.seed },\n }\n : {}),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n private async executeDirectQuery<Item extends WixDataItem = WixDataItem>(\n collectionName: string,\n request: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): Promise<WixDataResult<Item>> {\n const validationErrors = apiValidator()\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn()\n\n if (validationErrors.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, validationErrors)\n )\n }\n\n const limit = request.paging?.limit ?? request.cursorPaging?.limit\n const offset = request.paging?.offset ?? 0\n const cursor = request.cursorPaging?.cursor\n const sort: QueryParams['orderBy'] = (request.sort ?? []).map((s) => ({\n [s.fieldName]: s.order === 'DESC' ? 'desc' : 'asc',\n }))\n const referencedItemOptions = options?.referencedItemOptions?.map(\n (inc) => ({\n fieldName: inc.fieldName,\n limit: inc.limit,\n })\n )\n\n const fetch: PageFetcher<Item> = (cursorOrOffset, returnTotalCount) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } = await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n fields: request.fields,\n ...toPaging(limit, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n filter: request.filter,\n sort: toSort(sort),\n }\n : {}),\n },\n referencedItemOptions,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n })\n return [dataItems!.map(toDataItem) as Item[], pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n cursor ?? offset,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl<Item>(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: offset,\n })\n }\n\n search = (collectionName: string): WixDataSearch => {\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataSearchImpl({\n collectionName,\n onRun: async (\n params,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ])\n\n const expression = params.queryText\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('search', { collectionName, expression })(async (env) => {\n const request: apiTypes.SearchDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n search: {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n fields: params.projectedFields,\n search: {\n expression: params.queryText,\n fuzzy: params.isFuzzy,\n mode: params.searchMode,\n },\n ...toPaging(params.limitNumber, cursorOrOffset),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n }\n\n const { dataItems, pagingMetadata } =\n await this.client.searchDataItems(request)\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(params.skipNumber)\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n // NOTE find method is not implemented\n\n fetch = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('fetch', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n ...toPaging(limit, cursorOrOffset),\n },\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(cursor)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n collectionName,\n skipNumber: 0,\n })\n }\n )\n\n // --- aggregate ---\n\n aggregate = (collectionName: string): WixDataAggregate => {\n return new WixDataAggregateImpl({\n collectionName,\n onRun: async (args, params, options) => {\n const validationErrors = [\n ...params.invalidArguments,\n ...apiValidator()\n .arity('run', args, 0, 1)\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ]\n\n if (validationErrors.length > 0) {\n throw wdeValidationError(\n messages.aggregateValidations.aggregateInvalid(\n collectionName,\n validationErrors\n )\n )\n }\n\n const fetch: PageFetcher<Record<string, any>> = (\n cursorOrOffset,\n returnTotalCount\n ) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const toOperation = (field?: string) =>\n field ? { itemFieldName: field } : undefined\n\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset)\n ? {\n initialFilter: params.filterTree,\n aggregation: {\n groupingFields: params.groupBy,\n operations: params.aggregates.map((a) => ({\n resultFieldName: a.name,\n average: toOperation(a.avg),\n min: toOperation(a.min),\n max: toOperation(a.max),\n sum: toOperation(a.sum),\n itemCount: a.count ? {} : undefined,\n })),\n },\n finalFilter: params.havingTree,\n sort: toSort(params.orderBy),\n returnTotalCount,\n }\n : {}),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n fetchAggregate = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ) => {\n await apiValidator()\n .arity('fetchAggregate', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher<Record<string, any>> = (cursorOrOffset) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(limit, cursorOrOffset),\n ...toReadOptions(options),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor, true)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n skipNumber: 0,\n collectionName,\n })\n }\n )\n\n aggregatePipeline = withArgs(\n async (\n args,\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<apiTypes.AggregatePipelineDataItemsResponse> => {\n await apiValidator()\n .arity('aggregatePipeline', args, 2, 3)\n .collectionName(collectionName)\n .validateAndReject()\n\n return this.trace('aggregatePipeline', { collectionName })(\n async (env) => {\n const request: apiTypes.AggregatePipelineDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n pipeline,\n ...options,\n }\n\n return this.client.aggregatePipelineDataItems(request)\n }\n )\n }\n )\n\n // --- bulk methods ---\n\n bulkRemove = withArgs(\n async (\n args,\n collectionName: string,\n itemIds: string[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkRemove', args, 2, 3)\n .collectionName(collectionName)\n .itemIds(itemIds, collectionName)\n .bulkRemoveOptions(options)\n .validateAndReject()\n\n return this.trace('bulkRemove', { collectionName })(async (env) => {\n const { results } = await this.client.bulkRemoveDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItemIds: itemIds,\n ...toRemoveOptions(options as any),\n })\n // Non-existing items are skipped and not reported as errors.\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n }\n )\n\n private async runBulkSave(\n env: { environment?: apiTypes.Environment; appId?: string },\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions,\n overrideExisting: boolean = true\n ): Promise<WixDataBulkResult> {\n const request: apiTypes.BulkInsertDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toOptions(options),\n }\n const { results } = await (overrideExisting\n ? this.client.bulkSaveDataItems(request)\n : this.client.bulkInsertDataItems(request))\n const ignoreCodes = overrideExisting ? [] : ['WDE0074']\n return toBulkResult(items, results!, ignoreCodes)\n }\n\n bulkInsert = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions & { overrideExisting?: boolean }\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkInsert', args, 2, 3)\n .items(items, collectionName)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .validateAndReject()\n\n return this.trace('bulkInsert', { collectionName, options })(\n async (appId) =>\n this.runBulkSave(\n appId,\n collectionName,\n items,\n options,\n options?.overrideExisting ?? false\n )\n )\n }\n )\n\n bulkSave = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkSave', args, 2, 3)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkSave', { collectionName })(async (env) =>\n this.runBulkSave(env, collectionName, items, options)\n )\n }\n )\n\n bulkUpdate = withArgs(\n async (\n args,\n collectionName: string,\n items: WixDataItem[],\n options?: WixDataBulkUpdateOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkUpdate', args, 2, 3)\n .bulkUpdateOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkUpdate', { collectionName })(async (env) => {\n const { results } = await this.client.bulkUpdateDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toBulkUpdateOptions(options),\n })\n // Non-existing items are skipped and not reported as errors.\n return toBulkResult(items, results!, ['WDE0073'])\n })\n }\n )\n\n // --- references ---\n\n fetchReferenced = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataResult<WixDataItem | string>> => {\n await apiValidator()\n .arity('fetchReferenced', args, 2, 4)\n .isNonEmptyString(cursor, 'cursor')\n .collectionName(collectionName)\n .validateAndReject()\n\n const fetch: PageFetcher<WixDataItem | string> = (current) =>\n this.trace('fetchReferenced', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(limit, current),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor)\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: 0,\n })\n }\n )\n\n queryReferenced = withArgs(\n async (\n args,\n collectionName: string,\n holdingItem: WixDataItemOrId,\n relationshipAttribute: string,\n options?: WixDataQueryReferencedOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('queryReferenced', args, 3, 4)\n .collectionName(collectionName)\n .referenceParameter(holdingItem)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n const id = itemId(holdingItem)\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('queryReferenced', {\n collectionName,\n itemId: id,\n options,\n relationshipAttribute,\n })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(options?.limit ?? 50, cursorOrOffset),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n ...(isOffset(cursorOrOffset)\n ? {\n referringItemId: id,\n referringItemFieldName: relationshipAttribute,\n order:\n options?.order === 'asc'\n ? apiTypes.SortOrder.ASC\n : options?.order === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined,\n returnTotalCount,\n }\n : {}),\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n options?.skip ?? 0,\n options?.returnTotalCount\n )\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: options?.limit ?? 50,\n skipNumber: options?.skip ?? 0,\n })\n }\n )\n\n insertReference: {\n // overload with array of references\n (\n collectionName: string,\n refs: WixDataReference[],\n options?: WixDataOptions\n ): Promise<void>\n // overload with separate left and right(s)\n (\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void>\n } = withArgs(\n async (\n args,\n collectionName: string,\n refsOrAttr: any,\n leftOrOpts?: any,\n right?: any,\n options?: any\n ) => {\n let refs: WixDataReference[]\n let opts: WixDataOptions\n let argc: [number, number]\n\n if (typeof refsOrAttr === 'string') {\n const rights: WixDataItemOrId[] = asArray(right)\n refs = rights.map((r) => ({\n relationshipName: refsOrAttr,\n left: leftOrOpts as WixDataItemOrId,\n right: r,\n }))\n opts = options\n argc = [4, 5]\n } else {\n refs = refsOrAttr\n opts = leftOrOpts\n argc = [2, 3]\n }\n await apiValidator()\n .arity('insertReference', args, ...argc)\n .collectionName(collectionName)\n .references(refs)\n .options(opts)\n .validateAndReject()\n\n await this.trace('insertReference', { collectionName })(async (env) =>\n this.client.bulkInsertDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: refs.map((r) => ({\n referringItemFieldName: r.relationshipName,\n referringItemId: itemId(r.left),\n referencedItemId: itemId(r.right),\n })),\n ...toOptions(opts),\n })\n )\n }\n )\n\n replaceReferences = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void> => {\n const rights = asArray(right)\n await apiValidator()\n .arity('replaceReferences', args, 4, 5)\n .collectionName(collectionName)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .referenceParameter(left)\n .referenceParameters(rights)\n .options(options)\n .validateAndReject()\n\n await this.trace('replaceReferences', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.replaceDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n newReferencedItemIds: rights.map(itemId),\n ...toOptions(options),\n })\n )\n }\n )\n\n removeReference = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ) => {\n const rights = asArray(right)\n await apiValidator()\n .arity('removeReference', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceRemoveParameters(rights)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n await this.trace('removeReference', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.bulkRemoveDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: rights.map((r) => ({\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(r),\n })),\n ...toOptions(options),\n })\n )\n }\n )\n\n isReferenced = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId,\n options?: WixDataReadOptions\n ): Promise<boolean> => {\n await apiValidator()\n .arity('isReferenced', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceParameter(right)\n .options(options)\n .validateAndReject()\n\n return this.trace('isReferenced', {\n collectionName,\n relationshipAttribute,\n })(async (env) => {\n const { isReferenced } = await this.client.isReferencedDataItem({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(right),\n ...toReadOptions(options),\n consistentRead: options?.consistentRead,\n })\n return isReferenced!\n })\n }\n )\n\n private trace(\n action: string,\n opts: object\n ): <R>(\n fn: (env: {\n environment?: apiTypes.Environment\n appId?: string\n }) => Promise<R>\n ) => Promise<R> {\n return async (fn) => {\n const gridAppId = await get(this.gridAppId)\n const env = { appId: gridAppId, environment: this.environment }\n if (this.tracer) {\n return this.tracer(`WixDataApi.${action}`, {\n ...opts,\n gridAppId,\n environment: this.environment,\n })(() => fn(env))\n }\n return fn(env)\n }\n }\n}\n\nfunction withArgs<Args extends any[], R>(\n fn: (all: IArguments, ...args: Args) => R\n): (...args: Args) => R {\n return function (...args) {\n return fn(arguments, ...args)\n }\n}\n\nfunction toPatchOptions(options?: WixDataPatchOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n ...draftsOptions(options?.showDrafts),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toInsertOptions(options?: WixDataInsertOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n }\n}\n\nfunction toSaveOptions(options?: WixDataSaveOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n }\n}\n\nfunction toUpdateOptions(options?: WixDataUpdateOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toBulkUpdateOptions(options?: WixDataBulkUpdateOptions) {\n return {\n ...toOptions(options),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toOptions(opts?: WixDataOptions) {\n if (!opts) {\n return undefined\n }\n const res = {\n suppressHooks: opts.suppressHooks,\n appOptions: opts.appOptions,\n ...draftsOptions(opts?.showDrafts),\n }\n if (Object.entries(res).every((kv) => kv[1] === undefined)) {\n return undefined\n }\n return res\n}\n\nfunction toReadOptions(options?: WixDataReadOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n appOptions: options?.appOptions,\n ...draftsOptions(options?.showDrafts),\n consistentRead: options?.consistentRead,\n language: options?.language,\n }\n}\n\nfunction conditionOptions(condition?: WixDataFilter) {\n return condition != undefined\n ? {\n condition: {\n filter: createFilter(condition),\n },\n }\n : { condition: undefined }\n}\n\nfunction toRemoveOptions(options?: WixDataRemoveOptions) {\n return {\n ...toOptions(options),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction draftsOptions(showDrafts?: boolean) {\n return showDrafts !== undefined\n ? { publishPluginOptions: { includeDraftItems: showDrafts } }\n : {}\n}\n\nfunction toDataItem(item: apiTypes.DataItem): WixDataItem {\n return item.data as WixDataItem\n}\n\nfunction toPaging(limit: number | undefined, cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'string'\n ? {\n cursorPaging: {\n limit,\n cursor: cursorOrOffset,\n },\n }\n : limit !== undefined || cursorOrOffset > 0\n ? {\n paging: {\n limit,\n offset: cursorOrOffset,\n },\n }\n : {}\n}\n\nfunction toSort(orderBy: QueryParams['orderBy']): apiTypes.Sorting[] {\n return orderBy.map((fieldOrder) => {\n const [[fieldName, sort]] = Object.entries(fieldOrder)\n const order =\n sort === 'asc'\n ? apiTypes.SortOrder.ASC\n : sort === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined\n return { fieldName, order }\n })\n}\n\nasync function get<T>(providerOrValue: T | Provider<T>): Promise<T> {\n if (typeof (providerOrValue as any)?.get === 'function') {\n return (providerOrValue as Provider<T>).get()\n }\n return providerOrValue as T\n}\n\nfunction recover<T>(code: string, value: T): (error: unknown) => Promise<T> {\n return (error) => {\n if (\n error instanceof Error &&\n (error as any)?.details?.applicationError?.code === code\n ) {\n return Promise.resolve(value)\n }\n return Promise.reject(error)\n }\n}\n\nfunction warnAboutBrokenFields(item: Partial<WixDataItem>) {\n const hasFieldWithDollar = hasField(item, (key) => key.startsWith('$'))\n const hasFieldWithDot = hasField(item, (key) => key.includes('.'))\n if (hasFieldWithDollar) {\n console.error(\n \"Data inserted contains field name prefixed with symbol '$'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n if (hasFieldWithDot) {\n console.warn(\n \"Data inserted contains field name containing symbol '.'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n}\n\nfunction toBulkResult(\n request: any[],\n results: apiTypes.BulkDataItemResult[],\n ignoreCodes: string[] = []\n): WixDataBulkResult {\n const errors = results.flatMap((r) => {\n if (r.itemMetadata?.success || !r.itemMetadata?.error) {\n return []\n }\n if (ignoreCodes.includes(r.itemMetadata.error.code ?? '')) {\n return []\n }\n return [\n new BulkError(\n r.itemMetadata.error.description!,\n r.itemMetadata.error.code!,\n request[r.itemMetadata.originalIndex!],\n 'BulkError',\n r.itemMetadata.originalIndex!\n ),\n ]\n })\n const success = results.filter((r) => r.itemMetadata?.success)\n const inserted = success.filter(\n (r) => r.action === apiTypes.BulkActionType.INSERT\n )\n const updated = success.filter(\n (r) =>\n r.action === apiTypes.BulkActionType.UPDATE ||\n r.action === apiTypes.BulkActionType.PATCH\n )\n const removed = success.filter(\n (r) => r.action === apiTypes.BulkActionType.DELETE\n )\n return {\n inserted: inserted.length,\n updated: updated.length,\n removed: removed.length,\n skipped: request.length - errors.length - success.length,\n errors,\n insertedItemIds: inserted.map((r) => r.itemMetadata?.id!),\n updatedItemIds: updated.map((r) => r.itemMetadata?.id!),\n removedItemIds: removed.map((r) => r.itemMetadata?.id!),\n }\n}\n\nfunction unwrapAggregationId(\n items: Record<string, any>[]\n): Record<string, any>[] {\n // When grouping by one field WixDataService returns value on _id field directly, DataItemService wraps it in an object, i.e.\n // grouping by surname returns {_id: 'Simpson'} in WixDataService vs {_id: {surname: 'Simpson'}} in DataItemService\n // When grouping by more fields, values are kept wrapped.\n return items.map((item) => {\n const id = item._id\n if (isObject(id)) {\n const [key, ...rest] = Object.keys(id)\n if (rest.length === 0) {\n item._id = id[key]\n return item\n }\n }\n return item\n })\n}\n\nfunction onlyReferencedItems(\n results: apiTypes.ReferencedResult[]\n): WixDataItem[] {\n return results\n .map((result) => result.dataItem)\n .filter(notEmpty)\n .map(toDataItem)\n}\n\nfunction notEmpty<T>(value: T | null | undefined): value is T {\n return value != null\n}\n\nfunction itemId(item: WixDataItemOrId): string {\n return typeof item === 'string' ? item : item._id\n}\n\nfunction asArray<T>(xOrXs: T | T[]): T[] {\n return isArray(xOrXs) ? (xOrXs as T[]) : [xOrXs as T]\n}\n\nfunction isOffset(cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'number'\n}\n\nconst ItemDoesNotExistCode = 'WDE0073'\n\nfunction apiValidator() {\n return commonApiValidator(wdeValidationError)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","apiTypes","_interopRequireWildcard","_utils","_common","_WixDataQueryImpl","_WixDataResultImpl","_WixDataAggregateImpl","_ApiClient","_WixDataPatchImpl","_WixDataSearchImpl","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createFilter","filter","anyFilter","getFilterModel","model","_e","filterTree","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","itemId","dataItem","getDataItem","dataItemId","toReadOptions","fields","referencedItemOptions","catch","recover","ItemDoesNotExistCode","toDataItem","item","warnAboutBrokenFields","insertDataItem","id","_id","data","toInsertOptions","saveDataItem","toSaveOptions","updateDataItem","toUpdateOptions","removeDataItem","toRemoveOptions","fieldModification","action","ACTION","SET_FIELD","fieldPath","setFieldOptions","value","actionOptions","REMOVE_FIELD","INCREMENT_FIELD","incrementFieldOptions","APPEND_TO_ARRAY","appendToArrayOptions","REMOVE_FROM_ARRAY","removeFromArrayOptions","Error","WixDataPatchImpl","onRun","_args","patchParams","fieldModifications","map","toFieldModificationApi","result","patchDataItem","patch","toPatchOptions","itemIds","WixDataBulkPatchImpl","results","bulkPatchDataItems","patches","toBulkResult","ensureValidQuery","invalidArgs","length","wdeValidationError","messages","queryValidations","queryInvalid","WixDataSearchImpl","params","invalidArguments","validateAndReturn","expression","queryText","fetch","cursorOrOffset","request","search","sort","toSort","orderBy","projectedFields","fuzzy","isFuzzy","mode","searchMode","toPaging","limitNumber","included","dataItems","pagingMetadata","searchDataItems","items","paging","skipNumber","WixDataResultImpl","cursor","limit","isNonEmptyString","queryDataItems","query","WixDataAggregateImpl","validationErrors","aggregateValidations","aggregateInvalid","returnTotalCount","toOperation","field","itemFieldName","undefined","aggregateDataItems","isOffset","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","unwrapAggregationId","pipeline","aggregatePipelineDataItems","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","bulkInsertOptions","appId","runBulkSave","overrideExisting","bulkUpdateOptions","bulkUpdateDataItems","toBulkUpdateOptions","current","queryReferencedDataItems","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","referringItemId","referringItemFieldName","order","SortOrder","ASC","DESC","skip","refsOrAttr","leftOrOpts","right","refs","opts","argc","rights","asArray","relationshipName","left","references","bulkInsertDataItemReferences","dataItemReferences","referencedItemId","referenceParameters","replaceDataItemReferences","newReferencedItemIds","referenceRemoveParameters","bulkRemoveDataItemReferences","isReferenced","isReferencedDataItem","consistentRead","ApiClient","wixData","filterBuilder","queryRequest","executeDirectQuery","WixDataQueryImpl","onCount","totalCount","countDataItems","onDistinct","_toSort$find","fieldName","find","distinctValues","queryDistinctValues","onFind","randomSortOptions","sortMode","SortMode","RANDOM","randomOptions","seed","_request$paging","_request$cursorPaging","_request$paging2","_request$cursorPaging2","_options$referencedIt","cursorPaging","offset","s","inc","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","fn","exports","arguments","suppressHooks","draftsOptions","showDrafts","conditionOptions","condition","includeReferencedItems","includeReferences","res","appOptions","entries","every","kv","language","publishPluginOptions","includeDraftItems","fieldOrder","providerOrValue","code","error","_details","details","applicationError","Promise","resolve","reject","hasFieldWithDollar","hasField","key","startsWith","hasFieldWithDot","includes","console","warn","errors","flatMap","_r$itemMetadata","_r$itemMetadata2","itemMetadata","success","BulkError","description","originalIndex","_r$itemMetadata3","inserted","BulkActionType","INSERT","updated","UPDATE","PATCH","removed","DELETE","skipped","insertedItemIds","_r$itemMetadata4","updatedItemIds","_r$itemMetadata5","removedItemIds","_r$itemMetadata6","isObject","rest","keys","notEmpty","xOrXs","isArray","commonApiValidator"],"sources":["../../../src/api/WixDataApi.ts"],"sourcesContent":["import {\n apiValidator as commonApiValidator,\n messages,\n BulkError,\n wdeValidationError,\n} from '../errors'\nimport { HttpApiClientFactory } from '../types'\nimport * as apiTypes from '../types/data-item-types'\n\nimport { hasField, isObject, isArray } from '../utils'\nimport { filterBuilder } from './common'\nimport {\n Provider,\n WixDataAggregateOptions,\n WixDataBulkResult,\n WixDataItem,\n WixDataItemOrId,\n WixDataOptions,\n WixDataPatchOptions,\n WixDataInsertOptions,\n WixDataRemoveOptions,\n WixDataQueryReferencedOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WixDataReference,\n WixDataUpdateOptions,\n WixDataBulkUpdateOptions,\n WixDataSaveOptions,\n WixDataQueryRequest,\n WixDataDirectQueryOptions,\n} from './types'\nimport { QueryParams, WixDataQueryImpl } from './impl/WixDataQueryImpl'\nimport { WixDataQuery } from './WixDataQuery'\nimport { WixDataResultImpl, PageFetcher } from './impl/WixDataResultImpl'\nimport { WixDataAggregateImpl } from './impl/WixDataAggregateImpl'\nimport { ApiClient } from './ApiClient'\nimport {\n WixDataPatch,\n FieldModification,\n WixDataBulkPatch,\n} from './WixDataPatch'\nimport { WixDataAggregate } from './WixDataAggregate'\nimport { WixDataFilter } from './WixDataFilter'\nimport { WixDataResult } from './WixDataResult'\nimport { WixDataBulkPatchImpl, WixDataPatchImpl } from './impl/WixDataPatchImpl'\nimport { WixDataSearch } from './WixDataSearch'\nimport { WixDataSearchImpl } from './impl/WixDataSearchImpl'\n\nfunction createFilter(filter: WixDataFilter): Record<string, any> {\n if (filter == null) {\n return {}\n }\n const anyFilter = filter as any\n if (typeof anyFilter.getFilterModel === 'function') {\n try {\n const model = anyFilter.getFilterModel()\n if (model != null) {\n return model\n }\n } catch (_e) {\n // fall back below\n }\n }\n if (anyFilter.filterTree != null) {\n return anyFilter.filterTree as Record<string, any>\n }\n return {}\n}\n\ntype ProvidedOpt<T> = T | undefined | Provider<T | undefined>\ntype TraceWith = (\n label: string,\n opts?: object\n) => <T>(fn: () => Promise<T>) => Promise<T>\n\nexport class WixDataApi {\n private client: ApiClient\n\n constructor(\n clientFactory: HttpApiClientFactory<any>,\n allowGet: boolean,\n private readonly environment?: apiTypes.Environment,\n private readonly gridAppId?: ProvidedOpt<string>,\n private readonly tracer?: TraceWith\n ) {\n this.client = new ApiClient(clientFactory, allowGet)\n }\n\n get wixData(): WixDataApi {\n return this\n }\n\n get filter(): WixDataFilter {\n return filterBuilder()\n }\n\n // NOTE sort method for builder is not implemented\n\n truncate = withArgs(\n async (\n args,\n collectionName: string,\n options?: WixDataOptions\n ): Promise<void> => {\n await apiValidator()\n .arity('truncate', args, 1, 2)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n return this.trace('truncate', { collectionName })(async (env) => {\n await this.client.truncateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toOptions(options),\n })\n })\n }\n )\n\n // --- single-item methods ---\n\n get = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('get', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('get', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .getDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toReadOptions(options),\n fields: options?.fields,\n referencedItemOptions: options?.referencedItemOptions,\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n insert = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataUpdateOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('insert', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n warnAboutBrokenFields(item)\n\n return this.trace('insert', { collectionName })(async (env) => {\n const { dataItem } = await this.client.insertDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toInsertOptions(options),\n })\n\n return toDataItem(dataItem!)\n })\n }\n )\n\n save = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataSaveOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('save', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('save', { collectionName })(async (env) => {\n const { dataItem } = await this.client.saveDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toSaveOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n update = withArgs(\n async (\n args,\n collectionName: string,\n item: WixDataItem,\n options?: WixDataUpdateOptions\n ) => {\n await apiValidator()\n .arity('update', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('update', { collectionName })(async (env) => {\n const { dataItem } = await this.client.updateDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n remove = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataRemoveOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('remove', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('remove', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .removeDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toRemoveOptions(options),\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n private toFieldModificationApi = (fieldModification: FieldModification) => {\n switch (fieldModification.action) {\n case 'SET_FIELD':\n return {\n action: apiTypes.ACTION.SET_FIELD,\n fieldPath: fieldModification.fieldPath,\n setFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FIELD':\n return {\n action: apiTypes.ACTION.REMOVE_FIELD,\n fieldPath: fieldModification.fieldPath,\n }\n case 'INCREMENT_FIELD':\n return {\n action: apiTypes.ACTION.INCREMENT_FIELD,\n fieldPath: fieldModification.fieldPath,\n incrementFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'APPEND_TO_ARRAY':\n return {\n action: apiTypes.ACTION.APPEND_TO_ARRAY,\n fieldPath: fieldModification.fieldPath,\n appendToArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FROM_ARRAY':\n return {\n action: apiTypes.ACTION.REMOVE_FROM_ARRAY,\n fieldPath: fieldModification.fieldPath,\n removeFromArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n default:\n throw new Error('Invalid patch action')\n }\n }\n\n patch = (collectionName: string, itemId: string): WixDataPatch => {\n return new WixDataPatchImpl({\n collectionName,\n itemId,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('patch', { collectionName })(async (env) => {\n const result = await this.client.patchDataItem({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patch: {\n dataItemId: patchParams.itemId,\n fieldModifications,\n },\n ...toPatchOptions(options),\n })\n\n return result.dataItem ? toDataItem(result.dataItem) : null\n })\n },\n })\n }\n\n bulkPatch = (collectionName: string, itemIds: string[]): WixDataBulkPatch => {\n return new WixDataBulkPatchImpl({\n collectionName,\n itemIds,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('bulkPatch', { collectionName })(async (env) => {\n const { results } = await this.client.bulkPatchDataItems({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patches: patchParams.itemIds.map((itemId) => ({\n dataItemId: itemId,\n fieldModifications,\n })),\n ...toPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n },\n })\n }\n\n // --- query, count, distinct ---\n\n /**\n * Returns a query builder for the specified collection.\n * @param collectionName - Name of the collection to query.\n * @returns A `WixDataQuery` builder object.\n */\n query(collectionName: string): WixDataQuery\n\n /**\n * Executes a query directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection to query.\n * @param queryRequest - Query parameters including filter, sort, paging, and fields.\n * @param options - Additional options including referencedItemOptions.\n * @returns Promise that resolves to the query results.\n */\n query<Item extends WixDataItem = WixDataItem>(\n collectionName: string,\n queryRequest: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): Promise<WixDataResult<Item>>\n\n query<Item extends WixDataItem = WixDataItem>(\n collectionName: string,\n queryRequest?: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): WixDataQuery | Promise<WixDataResult<Item>> {\n // Direct query execution mode\n if (queryRequest !== undefined) {\n return this.executeDirectQuery<Item>(\n collectionName,\n queryRequest,\n options\n )\n }\n\n // Builder mode\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataQueryImpl({\n collectionName,\n onCount: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('count', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n return this.trace('count', { collectionName })(async (env) => {\n const { totalCount } = await this.client.countDataItems({\n ...env,\n dataCollectionId: collectionName,\n filter: params.filterTree,\n ...toReadOptions(options),\n })\n return totalCount!\n })\n },\n onDistinct: async (args, params, field, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('distinct', args, 1, 2)\n .fieldName(field)\n .options(options)\n .validateAndReturn(),\n ])\n\n const order = toSort(params.orderBy).find(\n (o) => o.fieldName === field\n )?.order\n\n const fetch: PageFetcher<any> = (cursorOrOffset, returnTotalCount) =>\n this.trace('distinct', { collectionName, field })(async (env) => {\n const { distinctValues, pagingMetadata } =\n await this.client.queryDistinctValues({\n ...env,\n dataCollectionId: collectionName,\n ...toReadOptions(options),\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n fieldName: field,\n filter: params.filterTree,\n order,\n returnTotalCount,\n }\n : {}),\n })\n return [distinctValues!, pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n onFind: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('find', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n fields: params.projectedFields,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n }\n : {}),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n ...(params.randomSortOptions\n ? {\n sortMode: apiTypes.SortMode.RANDOM,\n randomOptions: { seed: params.randomSortOptions.seed },\n }\n : {}),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n private async executeDirectQuery<Item extends WixDataItem = WixDataItem>(\n collectionName: string,\n request: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): Promise<WixDataResult<Item>> {\n const validationErrors = apiValidator()\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn()\n\n if (validationErrors.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, validationErrors)\n )\n }\n\n const limit = request.paging?.limit ?? request.cursorPaging?.limit\n const offset = request.paging?.offset ?? 0\n const cursor = request.cursorPaging?.cursor\n const sort: QueryParams['orderBy'] = (request.sort ?? []).map((s) => ({\n [s.fieldName]: s.order === 'DESC' ? 'desc' : 'asc',\n }))\n const referencedItemOptions = options?.referencedItemOptions?.map(\n (inc) => ({\n fieldName: inc.fieldName,\n limit: inc.limit,\n })\n )\n\n const fetch: PageFetcher<Item> = (cursorOrOffset, returnTotalCount) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } = await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n fields: request.fields,\n ...toPaging(limit, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n filter: request.filter,\n sort: toSort(sort),\n }\n : {}),\n },\n referencedItemOptions,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n })\n return [dataItems!.map(toDataItem) as Item[], pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n cursor ?? offset,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl<Item>(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: offset,\n })\n }\n\n search = (collectionName: string): WixDataSearch => {\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataSearchImpl({\n collectionName,\n onRun: async (\n params,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ])\n\n const expression = params.queryText\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('search', { collectionName, expression })(async (env) => {\n const request: apiTypes.SearchDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n search: {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n fields: params.projectedFields,\n search: {\n expression: params.queryText,\n fuzzy: params.isFuzzy,\n mode: params.searchMode,\n },\n ...toPaging(params.limitNumber, cursorOrOffset),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n }\n\n const { dataItems, pagingMetadata } =\n await this.client.searchDataItems(request)\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(params.skipNumber)\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n // NOTE find method is not implemented\n\n fetch = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('fetch', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n ...toPaging(limit, cursorOrOffset),\n },\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(cursor)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n collectionName,\n skipNumber: 0,\n })\n }\n )\n\n // --- aggregate ---\n\n aggregate = (collectionName: string): WixDataAggregate => {\n return new WixDataAggregateImpl({\n collectionName,\n onRun: async (args, params, options) => {\n const validationErrors = [\n ...params.invalidArguments,\n ...apiValidator()\n .arity('run', args, 0, 1)\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ]\n\n if (validationErrors.length > 0) {\n throw wdeValidationError(\n messages.aggregateValidations.aggregateInvalid(\n collectionName,\n validationErrors\n )\n )\n }\n\n const fetch: PageFetcher<Record<string, any>> = (\n cursorOrOffset,\n returnTotalCount\n ) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const toOperation = (field?: string) =>\n field ? { itemFieldName: field } : undefined\n\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset)\n ? {\n initialFilter: params.filterTree,\n aggregation: {\n groupingFields: params.groupBy,\n operations: params.aggregates.map((a) => ({\n resultFieldName: a.name,\n average: toOperation(a.avg),\n min: toOperation(a.min),\n max: toOperation(a.max),\n sum: toOperation(a.sum),\n itemCount: a.count ? {} : undefined,\n })),\n },\n finalFilter: params.havingTree,\n sort: toSort(params.orderBy),\n returnTotalCount,\n }\n : {}),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n fetchAggregate = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ) => {\n await apiValidator()\n .arity('fetchAggregate', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher<Record<string, any>> = (cursorOrOffset) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(limit, cursorOrOffset),\n ...toReadOptions(options),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor, true)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n skipNumber: 0,\n collectionName,\n })\n }\n )\n\n aggregatePipeline = withArgs(\n async (\n args,\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<apiTypes.AggregatePipelineDataItemsResponse> => {\n await apiValidator()\n .arity('aggregatePipeline', args, 2, 3)\n .collectionName(collectionName)\n .validateAndReject()\n\n return this.trace('aggregatePipeline', { collectionName })(\n async (env) => {\n const request: apiTypes.AggregatePipelineDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n pipeline,\n ...options,\n }\n\n return this.client.aggregatePipelineDataItems(request)\n }\n )\n }\n )\n\n // --- bulk methods ---\n\n bulkRemove = withArgs(\n async (\n args,\n collectionName: string,\n itemIds: string[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkRemove', args, 2, 3)\n .collectionName(collectionName)\n .itemIds(itemIds, collectionName)\n .bulkRemoveOptions(options)\n .validateAndReject()\n\n return this.trace('bulkRemove', { collectionName })(async (env) => {\n const { results } = await this.client.bulkRemoveDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItemIds: itemIds,\n ...toRemoveOptions(options as any),\n })\n // Non-existing items are skipped and not reported as errors.\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n }\n )\n\n private async runBulkSave(\n env: { environment?: apiTypes.Environment; appId?: string },\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions,\n overrideExisting: boolean = true\n ): Promise<WixDataBulkResult> {\n const request: apiTypes.BulkInsertDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toOptions(options),\n }\n const { results } = await (overrideExisting\n ? this.client.bulkSaveDataItems(request)\n : this.client.bulkInsertDataItems(request))\n const ignoreCodes = overrideExisting ? [] : ['WDE0074']\n return toBulkResult(items, results!, ignoreCodes)\n }\n\n bulkInsert = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions & { overrideExisting?: boolean }\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkInsert', args, 2, 3)\n .items(items, collectionName)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .validateAndReject()\n\n return this.trace('bulkInsert', { collectionName, options })(\n async (appId) =>\n this.runBulkSave(\n appId,\n collectionName,\n items,\n options,\n options?.overrideExisting ?? false\n )\n )\n }\n )\n\n bulkSave = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkSave', args, 2, 3)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkSave', { collectionName })(async (env) =>\n this.runBulkSave(env, collectionName, items, options)\n )\n }\n )\n\n bulkUpdate = withArgs(\n async (\n args,\n collectionName: string,\n items: WixDataItem[],\n options?: WixDataBulkUpdateOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkUpdate', args, 2, 3)\n .bulkUpdateOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkUpdate', { collectionName })(async (env) => {\n const { results } = await this.client.bulkUpdateDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toBulkUpdateOptions(options),\n })\n // Non-existing items are skipped and not reported as errors.\n return toBulkResult(items, results!, ['WDE0073'])\n })\n }\n )\n\n // --- references ---\n\n fetchReferenced = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataResult<WixDataItem | string>> => {\n await apiValidator()\n .arity('fetchReferenced', args, 2, 4)\n .isNonEmptyString(cursor, 'cursor')\n .collectionName(collectionName)\n .validateAndReject()\n\n const fetch: PageFetcher<WixDataItem | string> = (current) =>\n this.trace('fetchReferenced', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(limit, current),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor)\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: 0,\n })\n }\n )\n\n queryReferenced = withArgs(\n async (\n args,\n collectionName: string,\n holdingItem: WixDataItemOrId,\n relationshipAttribute: string,\n options?: WixDataQueryReferencedOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('queryReferenced', args, 3, 4)\n .collectionName(collectionName)\n .referenceParameter(holdingItem)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n const id = itemId(holdingItem)\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('queryReferenced', {\n collectionName,\n itemId: id,\n options,\n relationshipAttribute,\n })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(options?.limit ?? 50, cursorOrOffset),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n ...(isOffset(cursorOrOffset)\n ? {\n referringItemId: id,\n referringItemFieldName: relationshipAttribute,\n order:\n options?.order === 'asc'\n ? apiTypes.SortOrder.ASC\n : options?.order === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined,\n returnTotalCount,\n }\n : {}),\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n options?.skip ?? 0,\n options?.returnTotalCount\n )\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: options?.limit ?? 50,\n skipNumber: options?.skip ?? 0,\n })\n }\n )\n\n insertReference: {\n // overload with array of references\n (\n collectionName: string,\n refs: WixDataReference[],\n options?: WixDataOptions\n ): Promise<void>\n // overload with separate left and right(s)\n (\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void>\n } = withArgs(\n async (\n args,\n collectionName: string,\n refsOrAttr: any,\n leftOrOpts?: any,\n right?: any,\n options?: any\n ) => {\n let refs: WixDataReference[]\n let opts: WixDataOptions\n let argc: [number, number]\n\n if (typeof refsOrAttr === 'string') {\n const rights: WixDataItemOrId[] = asArray(right)\n refs = rights.map((r) => ({\n relationshipName: refsOrAttr,\n left: leftOrOpts as WixDataItemOrId,\n right: r,\n }))\n opts = options\n argc = [4, 5]\n } else {\n refs = refsOrAttr\n opts = leftOrOpts\n argc = [2, 3]\n }\n await apiValidator()\n .arity('insertReference', args, ...argc)\n .collectionName(collectionName)\n .references(refs)\n .options(opts)\n .validateAndReject()\n\n await this.trace('insertReference', { collectionName })(async (env) =>\n this.client.bulkInsertDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: refs.map((r) => ({\n referringItemFieldName: r.relationshipName,\n referringItemId: itemId(r.left),\n referencedItemId: itemId(r.right),\n })),\n ...toOptions(opts),\n })\n )\n }\n )\n\n replaceReferences = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void> => {\n const rights = asArray(right)\n await apiValidator()\n .arity('replaceReferences', args, 4, 5)\n .collectionName(collectionName)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .referenceParameter(left)\n .referenceParameters(rights)\n .options(options)\n .validateAndReject()\n\n await this.trace('replaceReferences', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.replaceDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n newReferencedItemIds: rights.map(itemId),\n ...toOptions(options),\n })\n )\n }\n )\n\n removeReference = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ) => {\n const rights = asArray(right)\n await apiValidator()\n .arity('removeReference', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceRemoveParameters(rights)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n await this.trace('removeReference', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.bulkRemoveDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: rights.map((r) => ({\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(r),\n })),\n ...toOptions(options),\n })\n )\n }\n )\n\n isReferenced = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId,\n options?: WixDataReadOptions\n ): Promise<boolean> => {\n await apiValidator()\n .arity('isReferenced', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceParameter(right)\n .options(options)\n .validateAndReject()\n\n return this.trace('isReferenced', {\n collectionName,\n relationshipAttribute,\n })(async (env) => {\n const { isReferenced } = await this.client.isReferencedDataItem({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(right),\n ...toReadOptions(options),\n consistentRead: options?.consistentRead,\n })\n return isReferenced!\n })\n }\n )\n\n private trace(\n action: string,\n opts: object\n ): <R>(\n fn: (env: {\n environment?: apiTypes.Environment\n appId?: string\n }) => Promise<R>\n ) => Promise<R> {\n return async (fn) => {\n const gridAppId = await get(this.gridAppId)\n const env = { appId: gridAppId, environment: this.environment }\n if (this.tracer) {\n return this.tracer(`WixDataApi.${action}`, {\n ...opts,\n gridAppId,\n environment: this.environment,\n })(() => fn(env))\n }\n return fn(env)\n }\n }\n}\n\nfunction withArgs<Args extends any[], R>(\n fn: (all: IArguments, ...args: Args) => R\n): (...args: Args) => R {\n return function (...args) {\n return fn(arguments, ...args)\n }\n}\n\nfunction toPatchOptions(options?: WixDataPatchOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n ...draftsOptions(options?.showDrafts),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toInsertOptions(options?: WixDataInsertOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n }\n}\n\nfunction toSaveOptions(options?: WixDataSaveOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n }\n}\n\nfunction toUpdateOptions(options?: WixDataUpdateOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toBulkUpdateOptions(options?: WixDataBulkUpdateOptions) {\n return {\n ...toOptions(options),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toOptions(opts?: WixDataOptions) {\n if (!opts) {\n return undefined\n }\n const res = {\n suppressHooks: opts.suppressHooks,\n appOptions: opts.appOptions,\n ...draftsOptions(opts?.showDrafts),\n }\n if (Object.entries(res).every((kv) => kv[1] === undefined)) {\n return undefined\n }\n return res\n}\n\nfunction toReadOptions(options?: WixDataReadOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n appOptions: options?.appOptions,\n ...draftsOptions(options?.showDrafts),\n consistentRead: options?.consistentRead,\n language: options?.language,\n }\n}\n\nfunction conditionOptions(condition?: WixDataFilter) {\n return condition != undefined\n ? {\n condition: {\n filter: createFilter(condition),\n },\n }\n : { condition: undefined }\n}\n\nfunction toRemoveOptions(options?: WixDataRemoveOptions) {\n return {\n ...toOptions(options),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction draftsOptions(showDrafts?: boolean) {\n return showDrafts !== undefined\n ? { publishPluginOptions: { includeDraftItems: showDrafts } }\n : {}\n}\n\nfunction toDataItem(item: apiTypes.DataItem): WixDataItem {\n return item.data as WixDataItem\n}\n\nfunction toPaging(limit: number | undefined, cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'string'\n ? {\n cursorPaging: {\n limit,\n cursor: cursorOrOffset,\n },\n }\n : limit !== undefined || cursorOrOffset > 0\n ? {\n paging: {\n limit,\n offset: cursorOrOffset,\n },\n }\n : {}\n}\n\nfunction toSort(orderBy: QueryParams['orderBy']): apiTypes.Sorting[] {\n return orderBy.map((fieldOrder) => {\n const [[fieldName, sort]] = Object.entries(fieldOrder)\n const order =\n sort === 'asc'\n ? apiTypes.SortOrder.ASC\n : sort === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined\n return { fieldName, order }\n })\n}\n\nasync function get<T>(providerOrValue: T | Provider<T>): Promise<T> {\n if (typeof (providerOrValue as any)?.get === 'function') {\n return (providerOrValue as Provider<T>).get()\n }\n return providerOrValue as T\n}\n\nfunction recover<T>(code: string, value: T): (error: unknown) => Promise<T> {\n return (error) => {\n if (\n error instanceof Error &&\n (error as any)?.details?.applicationError?.code === code\n ) {\n return Promise.resolve(value)\n }\n return Promise.reject(error)\n }\n}\n\nfunction warnAboutBrokenFields(item: Partial<WixDataItem>) {\n const hasFieldWithDollar = hasField(item, (key) => key.startsWith('$'))\n const hasFieldWithDot = hasField(item, (key) => key.includes('.'))\n if (hasFieldWithDollar) {\n console.error(\n \"Data inserted contains field name prefixed with symbol '$'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n if (hasFieldWithDot) {\n console.warn(\n \"Data inserted contains field name containing symbol '.'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n}\n\nfunction toBulkResult(\n request: any[],\n results: apiTypes.BulkDataItemResult[],\n ignoreCodes: string[] = []\n): WixDataBulkResult {\n const errors = results.flatMap((r) => {\n if (r.itemMetadata?.success || !r.itemMetadata?.error) {\n return []\n }\n if (ignoreCodes.includes(r.itemMetadata.error.code ?? '')) {\n return []\n }\n return [\n new BulkError(\n r.itemMetadata.error.description!,\n r.itemMetadata.error.code!,\n request[r.itemMetadata.originalIndex!],\n 'BulkError',\n r.itemMetadata.originalIndex!\n ),\n ]\n })\n const success = results.filter((r) => r.itemMetadata?.success)\n const inserted = success.filter(\n (r) => r.action === apiTypes.BulkActionType.INSERT\n )\n const updated = success.filter(\n (r) =>\n r.action === apiTypes.BulkActionType.UPDATE ||\n r.action === apiTypes.BulkActionType.PATCH\n )\n const removed = success.filter(\n (r) => r.action === apiTypes.BulkActionType.DELETE\n )\n return {\n inserted: inserted.length,\n updated: updated.length,\n removed: removed.length,\n skipped: request.length - errors.length - success.length,\n errors,\n insertedItemIds: inserted.map((r) => r.itemMetadata?.id!),\n updatedItemIds: updated.map((r) => r.itemMetadata?.id!),\n removedItemIds: removed.map((r) => r.itemMetadata?.id!),\n }\n}\n\nfunction unwrapAggregationId(\n items: Record<string, any>[]\n): Record<string, any>[] {\n // When grouping by one field WixDataService returns value on _id field directly, DataItemService wraps it in an object, i.e.\n // grouping by surname returns {_id: 'Simpson'} in WixDataService vs {_id: {surname: 'Simpson'}} in DataItemService\n // When grouping by more fields, values are kept wrapped.\n return items.map((item) => {\n const id = item._id\n if (isObject(id)) {\n const [key, ...rest] = Object.keys(id)\n if (rest.length === 0) {\n item._id = id[key]\n return item\n }\n }\n return item\n })\n}\n\nfunction onlyReferencedItems(\n results: apiTypes.ReferencedResult[]\n): WixDataItem[] {\n return results\n .map((result) => result.dataItem)\n .filter(notEmpty)\n .map(toDataItem)\n}\n\nfunction notEmpty<T>(value: T | null | undefined): value is T {\n return value != null\n}\n\nfunction itemId(item: WixDataItemOrId): string {\n return typeof item === 'string' ? item : item._id\n}\n\nfunction asArray<T>(xOrXs: T | T[]): T[] {\n return isArray(xOrXs) ? (xOrXs as T[]) : [xOrXs as T]\n}\n\nfunction isOffset(cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'number'\n}\n\nconst ItemDoesNotExistCode = 'WDE0073'\n\nfunction apiValidator() {\n return commonApiValidator(wdeValidationError)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -31,8 +31,8 @@ function parseHookError(error) {
31
31
  function parseValidationError(error) {
32
32
  var _error$details;
33
33
  const fieldViolations = ((_error$details = error.details) == null || (_error$details = _error$details.validationError) == null ? void 0 : _error$details.fieldViolations) ?? [];
34
- const violations = fieldViolations.map(v => `${v.field}: ${v.description}`);
35
- return (0, _errors.wixDataError)([error.message, ...violations].join('\n'), undefined, error.details);
34
+ const violationMessages = fieldViolations.map(v => `${v.field}: ${v.description}`);
35
+ return (0, _errors.wixDataValidationError)([error.message, ...violationMessages].join('\n'), undefined, error.details, fieldViolations);
36
36
  }
37
37
  function parseError(error) {
38
38
  var _details$applicationE, _error$details2;
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","isHttpError","error","_response","response","status","parseHookError","data","details","applicationError","errorData","jsErrorValue","value","name","message","code","description","result","Error","parseValidationError","_error$details","fieldViolations","validationError","violations","map","v","field","wixDataError","join","undefined","parseError","_details$applicationE","_error$details2","hookError"],"sources":["../../../src/api/errors.ts"],"sourcesContent":["import * as apiError from '../types/error'\nimport { wixDataError } from '../errors'\n\nexport function isHttpError(\n error: unknown\n): error is { response: { status: number; data: any } } {\n return !!(error as any).response?.status\n}\n\nexport function parseHookError(error: any) {\n const data = error.details.applicationError.data\n const errorData =\n data?.jsErrorValue || (!data?.value && error.details.applicationError) // fallback to use default hook error message data\n if (errorData) {\n const { name, message, code, description } = errorData\n const result = new Error(message || description)\n result.name = name || description\n // @ts-expect-error\n result.code = code\n return result\n }\n return data?.value\n}\n\nexport function parseValidationError(error: apiError.ServerError) {\n const fieldViolations = error.details?.validationError?.fieldViolations ?? []\n const violations = fieldViolations.map((v) => `${v.field}: ${v.description}`)\n\n return wixDataError(\n [error.message, ...violations].join('\\n'),\n undefined,\n error.details\n )\n}\n\nexport function parseError(error: apiError.ServerError): Error | null {\n const details = error.details ?? {}\n if (details.applicationError?.code === 'WDE0078') {\n const hookError = parseHookError(error)\n if (hookError) {\n return hookError\n }\n }\n if (details.applicationError) {\n return wixDataError(\n details.applicationError.description!,\n undefined,\n details\n )\n }\n if (error.details?.validationError) {\n return parseValidationError(error)\n }\n return null\n}\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEO,SAASC,WAAWA,CACzBC,KAAc,EACwC;EAAA,IAAAC,SAAA;EACtD,OAAO,CAAC,GAAAA,SAAA,GAAED,KAAK,CAASE,QAAQ,aAAvBD,SAAA,CAAyBE,MAAM;AAC1C;AAEO,SAASC,cAAcA,CAACJ,KAAU,EAAE;EACzC,MAAMK,IAAI,GAAGL,KAAK,CAACM,OAAO,CAACC,gBAAgB,CAACF,IAAI;EAChD,MAAMG,SAAS,GACb,CAAAH,IAAI,oBAAJA,IAAI,CAAEI,YAAY,KAAK,EAACJ,IAAI,YAAJA,IAAI,CAAEK,KAAK,KAAIV,KAAK,CAACM,OAAO,CAACC,gBAAiB,EAAC;EACzE,IAAIC,SAAS,EAAE;IACb,MAAM;MAAEG,IAAI;MAAEC,OAAO;MAAEC,IAAI;MAAEC;IAAY,CAAC,GAAGN,SAAS;IACtD,MAAMO,MAAM,GAAG,IAAIC,KAAK,CAACJ,OAAO,IAAIE,WAAW,CAAC;IAChDC,MAAM,CAACJ,IAAI,GAAGA,IAAI,IAAIG,WAAW;IACjC;IACAC,MAAM,CAACF,IAAI,GAAGA,IAAI;IAClB,OAAOE,MAAM;EACf;EACA,OAAOV,IAAI,oBAAJA,IAAI,CAAEK,KAAK;AACpB;AAEO,SAASO,oBAAoBA,CAACjB,KAA2B,EAAE;EAAA,IAAAkB,cAAA;EAChE,MAAMC,eAAe,GAAG,EAAAD,cAAA,GAAAlB,KAAK,CAACM,OAAO,cAAAY,cAAA,GAAbA,cAAA,CAAeE,eAAe,qBAA9BF,cAAA,CAAgCC,eAAe,KAAI,EAAE;EAC7E,MAAME,UAAU,GAAGF,eAAe,CAACG,GAAG,CAAEC,CAAC,IAAK,GAAGA,CAAC,CAACC,KAAK,KAAKD,CAAC,CAACT,WAAW,EAAE,CAAC;EAE7E,OAAO,IAAAW,oBAAY,EACjB,CAACzB,KAAK,CAACY,OAAO,EAAE,GAAGS,UAAU,CAAC,CAACK,IAAI,CAAC,IAAI,CAAC,EACzCC,SAAS,EACT3B,KAAK,CAACM,OACR,CAAC;AACH;AAEO,SAASsB,UAAUA,CAAC5B,KAA2B,EAAgB;EAAA,IAAA6B,qBAAA,EAAAC,eAAA;EACpE,MAAMxB,OAAO,GAAGN,KAAK,CAACM,OAAO,IAAI,CAAC,CAAC;EACnC,IAAI,EAAAuB,qBAAA,GAAAvB,OAAO,CAACC,gBAAgB,qBAAxBsB,qBAAA,CAA0BhB,IAAI,MAAK,SAAS,EAAE;IAChD,MAAMkB,SAAS,GAAG3B,cAAc,CAACJ,KAAK,CAAC;IACvC,IAAI+B,SAAS,EAAE;MACb,OAAOA,SAAS;IAClB;EACF;EACA,IAAIzB,OAAO,CAACC,gBAAgB,EAAE;IAC5B,OAAO,IAAAkB,oBAAY,EACjBnB,OAAO,CAACC,gBAAgB,CAACO,WAAW,EACpCa,SAAS,EACTrB,OACF,CAAC;EACH;EACA,KAAAwB,eAAA,GAAI9B,KAAK,CAACM,OAAO,aAAbwB,eAAA,CAAeV,eAAe,EAAE;IAClC,OAAOH,oBAAoB,CAACjB,KAAK,CAAC;EACpC;EACA,OAAO,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","isHttpError","error","_response","response","status","parseHookError","data","details","applicationError","errorData","jsErrorValue","value","name","message","code","description","result","Error","parseValidationError","_error$details","fieldViolations","validationError","violationMessages","map","v","field","wixDataValidationError","join","undefined","parseError","_details$applicationE","_error$details2","hookError","wixDataError"],"sources":["../../../src/api/errors.ts"],"sourcesContent":["import * as apiError from '../types/error'\nimport { wixDataError, wixDataValidationError } from '../errors'\n\nexport function isHttpError(\n error: unknown\n): error is { response: { status: number; data: any } } {\n return !!(error as any).response?.status\n}\n\nexport function parseHookError(error: any) {\n const data = error.details.applicationError.data\n const errorData =\n data?.jsErrorValue || (!data?.value && error.details.applicationError) // fallback to use default hook error message data\n if (errorData) {\n const { name, message, code, description } = errorData\n const result = new Error(message || description)\n result.name = name || description\n // @ts-expect-error\n result.code = code\n return result\n }\n return data?.value\n}\n\nexport function parseValidationError(error: apiError.ServerError) {\n const fieldViolations = error.details?.validationError?.fieldViolations ?? []\n const violationMessages = fieldViolations.map(\n (v) => `${v.field}: ${v.description}`\n )\n\n return wixDataValidationError(\n [error.message, ...violationMessages].join('\\n'),\n undefined,\n error.details,\n fieldViolations\n )\n}\n\nexport function parseError(error: apiError.ServerError): Error | null {\n const details = error.details ?? {}\n if (details.applicationError?.code === 'WDE0078') {\n const hookError = parseHookError(error)\n if (hookError) {\n return hookError\n }\n }\n if (details.applicationError) {\n return wixDataError(\n details.applicationError.description!,\n undefined,\n details\n )\n }\n if (error.details?.validationError) {\n return parseValidationError(error)\n }\n return null\n}\n"],"mappings":";;;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAEO,SAASC,WAAWA,CACzBC,KAAc,EACwC;EAAA,IAAAC,SAAA;EACtD,OAAO,CAAC,GAAAA,SAAA,GAAED,KAAK,CAASE,QAAQ,aAAvBD,SAAA,CAAyBE,MAAM;AAC1C;AAEO,SAASC,cAAcA,CAACJ,KAAU,EAAE;EACzC,MAAMK,IAAI,GAAGL,KAAK,CAACM,OAAO,CAACC,gBAAgB,CAACF,IAAI;EAChD,MAAMG,SAAS,GACb,CAAAH,IAAI,oBAAJA,IAAI,CAAEI,YAAY,KAAK,EAACJ,IAAI,YAAJA,IAAI,CAAEK,KAAK,KAAIV,KAAK,CAACM,OAAO,CAACC,gBAAiB,EAAC;EACzE,IAAIC,SAAS,EAAE;IACb,MAAM;MAAEG,IAAI;MAAEC,OAAO;MAAEC,IAAI;MAAEC;IAAY,CAAC,GAAGN,SAAS;IACtD,MAAMO,MAAM,GAAG,IAAIC,KAAK,CAACJ,OAAO,IAAIE,WAAW,CAAC;IAChDC,MAAM,CAACJ,IAAI,GAAGA,IAAI,IAAIG,WAAW;IACjC;IACAC,MAAM,CAACF,IAAI,GAAGA,IAAI;IAClB,OAAOE,MAAM;EACf;EACA,OAAOV,IAAI,oBAAJA,IAAI,CAAEK,KAAK;AACpB;AAEO,SAASO,oBAAoBA,CAACjB,KAA2B,EAAE;EAAA,IAAAkB,cAAA;EAChE,MAAMC,eAAe,GAAG,EAAAD,cAAA,GAAAlB,KAAK,CAACM,OAAO,cAAAY,cAAA,GAAbA,cAAA,CAAeE,eAAe,qBAA9BF,cAAA,CAAgCC,eAAe,KAAI,EAAE;EAC7E,MAAME,iBAAiB,GAAGF,eAAe,CAACG,GAAG,CAC1CC,CAAC,IAAK,GAAGA,CAAC,CAACC,KAAK,KAAKD,CAAC,CAACT,WAAW,EACrC,CAAC;EAED,OAAO,IAAAW,8BAAsB,EAC3B,CAACzB,KAAK,CAACY,OAAO,EAAE,GAAGS,iBAAiB,CAAC,CAACK,IAAI,CAAC,IAAI,CAAC,EAChDC,SAAS,EACT3B,KAAK,CAACM,OAAO,EACba,eACF,CAAC;AACH;AAEO,SAASS,UAAUA,CAAC5B,KAA2B,EAAgB;EAAA,IAAA6B,qBAAA,EAAAC,eAAA;EACpE,MAAMxB,OAAO,GAAGN,KAAK,CAACM,OAAO,IAAI,CAAC,CAAC;EACnC,IAAI,EAAAuB,qBAAA,GAAAvB,OAAO,CAACC,gBAAgB,qBAAxBsB,qBAAA,CAA0BhB,IAAI,MAAK,SAAS,EAAE;IAChD,MAAMkB,SAAS,GAAG3B,cAAc,CAACJ,KAAK,CAAC;IACvC,IAAI+B,SAAS,EAAE;MACb,OAAOA,SAAS;IAClB;EACF;EACA,IAAIzB,OAAO,CAACC,gBAAgB,EAAE;IAC5B,OAAO,IAAAyB,oBAAY,EACjB1B,OAAO,CAACC,gBAAgB,CAACO,WAAW,EACpCa,SAAS,EACTrB,OACF,CAAC;EACH;EACA,KAAAwB,eAAA,GAAI9B,KAAK,CAACM,OAAO,aAAbwB,eAAA,CAAeV,eAAe,EAAE;IAClC,OAAOH,oBAAoB,CAACjB,KAAK,CAAC;EACpC;EACA,OAAO,IAAI;AACb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/api/types.ts"],"sourcesContent":["import type { QueryRequest as SDKQueryRequest, QuerySpec } from '@wix/sdk-types'\nimport { WixDataFilter } from './WixDataFilter'\n\nexport interface BaseOptions {\n /**\n * Prevents hooks from running for the operation. Can only be used in the [backend code of a Wix site](https://dev.wix.com/docs/develop-websites/articles/coding-with-velo/backend-code/about-the-site-backend).\n *\n * Default: `false`.\n */\n suppressHooks?: boolean\n\n /**\n * When `true`, operations include draft items. Read operations include draft items in their response, and write operations modify draft items.\n *\n * Default: `false`.\n */\n showDrafts?: boolean\n}\n\nexport interface WithAppOptions {\n /**\n * Options for [querying Wix app collections](https://dev.wix.com/docs/develop-websites/articles/wix-apps/wix-app-collections/querying-wix-app-collections).\n */\n appOptions?: Record<string, any>\n}\n\nexport interface WixDataRemoveOptions extends WixDataOptions {\n /**\n * If provided, item will be updated only if condition is met.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataBulkPatchOptions extends WixDataOptions {\n /**\n * If provided, only items matching condition will be patched.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataOptions extends BaseOptions, WithAppOptions {}\n\nexport interface WixDataReadOptions extends WixDataOptions, WithAppOptions {\n /**\n * Language to translate result text into, in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\n * If provided, the result text is returned in the specified language. If not provided, the result text is not translated.\n *\n * > **Note:** Translation for the specified language must be enabled for the collection in [Wix Multilingual](https://www.wix.com/app-market/wix-multilingual).\n *\n */\n language?: string\n\n /**\n * When `true`, reads data from the primary database instance. This decreases performance but ensures data retrieved is\n * up-to-date even immediately after an update. Learn more about [Wix Data and eventual consistency](https://dev.wix.com/docs/sdk/backend-modules/data/eventual-consistency).\n */\n consistentRead?: boolean\n}\n\nexport interface WixDataReadWithProjectionOptions\n extends WixDataReadOptions,\n ProjectionOptions {}\n\nexport interface WixDataSaveOptions extends WixDataOptions {\n /**\n * If true, referenced items are included.\n * @internal\n */\n includeReferences?: boolean\n}\n\nexport interface WixDataInsertOptions extends WixDataOptions {\n /**\n * If true, referenced items are included.\n * @internal\n */\n includeReferences?: boolean\n}\n\nexport interface WixDataUpdateOptions extends WixDataOptions {\n /**\n * If true, referenced items are included.\n * @internal\n */\n includeReferences?: boolean\n /**\n * If provided, item will be updated only if condition is met.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataBulkUpdateOptions extends WixDataOptions {\n /**\n * If provided, only items matching condition will be updated.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataBulkRemoveOptions extends WixDataOptions {\n /**\n * If provided, only items matching condition will be removed.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataPatchOptions extends BaseOptions {\n /**\n * If provided, item will be patched only if condition is met.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataAggregateOptions extends WixDataQueryOptions {}\n\n/**\n * WixData query specification.\n * Since WixData collections are dynamic, we allow any string field.\n * @internal\n */\nexport interface WixDataQuerySpec extends QuerySpec {\n wql: [\n {\n fields: string[]\n sort: 'BOTH'\n }\n ]\n paging: 'offset'\n}\n\n/**\n * Request object for direct query execution.\n * Extends the SDK's QueryRequest with WixData-specific fields.\n * Use this with `wixData.query(collectionName, queryRequest)` for one-shot queries.\n * @internal\n */\nexport interface WixDataQueryRequest\n extends Omit<SDKQueryRequest<WixDataItem, WixDataQuerySpec>, 'filter'> {\n /**\n * Filter object. Supports operators like `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`,\n * `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`.\n *\n * Example:\n * ```js\n * { status: 'active', age: { $gt: 25 } }\n * ```\n */\n filter?: Record<string, any>\n\n /**\n * Cursor-based paging. Use this as an alternative to offset paging.\n *\n * Example:\n * ```js\n * { limit: 10, cursor: 'abc123' }\n * ```\n */\n cursorPaging?: {\n /** Maximum number of items to return. */\n limit?: number\n /** Cursor token pointing to a page of results. */\n cursor?: string\n }\n}\n\nexport interface WixDataQueryOptions extends WixDataReadOptions {\n /**\n * When `true`, the query results include a `totalCount` and `totalPages` properties containing the totals of items\n * matching query. Requesting total count slows down the query.\n *\n * Default: `false`\n */\n returnTotalCount?: boolean\n}\n\n/**\n * Options for direct query execution.\n * @internal\n */\nexport interface WixDataDirectQueryOptions extends WixDataQueryOptions {\n /**\n * Properties for which to include referenced items in the query's results.\n * Each option specifies a field name and optional limit.\n */\n referencedItemOptions?: { fieldName: string; limit?: number }[]\n}\n\nexport interface WixDataQueryReferencedOptions\n extends WixDataQueryOptions,\n ProjectionOptions {\n /**\n * Order of the returned referenced items. Sorted by the date each item was referenced.\n *\n * Default: `asc`\n */\n order?: 'asc' | 'desc'\n\n /**\n * Number of items to skip in the current sort order.\n *\n * Default: `0`\n */\n skip?: number\n\n /**\n * Number of items to load.\n *\n * Default: `50`\n */\n limit?: number\n}\n\ninterface ProjectionOptions {\n /**\n * Lists of fields to return in a result.\n */\n fields?: string[]\n}\n\nexport interface WixDataItem {\n /**\n * Data item ID.\n */\n _id: string\n\n /**\n * Date and time the item was added to the collection.\n * @readonly\n */\n _createdDate?: Date\n\n /**\n * Date and time the item was last modified. When the item is first inserted, `_createdDate` and `_updatedDate` have\n * the same value.\n * @readonly\n */\n _updatedDate?: Date\n\n /**\n * ID of the user who created the item. Can be modified with site owner permissions.\n */\n _owner?: string\n\n /**\n * Data item contents.\n */\n [key: string]: any\n}\n\nexport type WixDataItemOrId = WixDataItem | string\nexport type Comparable = string | number | Date\n\nexport interface WixDataReference {\n relationshipName: string\n left: WixDataItemOrId\n right: WixDataItemOrId\n}\n\nexport interface Provider<T> {\n get(): T | Promise<T>\n}\n\nexport interface WixDataBulkError extends Error {\n /**\n * Description of the error.\n */\n message: string\n\n /**\n * Error code.\n */\n code: string\n\n /**\n * Index of the item within the request array. Allows for correlation between request and response items.\n */\n originalIndex: number\n\n /**\n * Failed item (or ID in case of `bulkRemove()`).\n */\n item: WixDataItem | string\n}\n\nexport interface WixDataBulkResult {\n /**\n * Number of inserted items.\n */\n inserted: number\n\n /**\n * Number of updated items.\n */\n updated: number\n\n /**\n * Number of removed items.\n */\n removed: number\n\n /**\n * Number of skipped items.\n */\n skipped: number\n\n /**\n * List of errors.\n */\n errors: WixDataBulkError[]\n\n /**\n * List of IDs of inserted items.\n */\n insertedItemIds: string[]\n\n /**\n * List of IDs of updated items.\n */\n updatedItemIds: string[]\n\n /**\n * List of IDs of removed items.\n */\n removedItemIds: string[]\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/api/types.ts"],"sourcesContent":["import type { QueryRequest as SDKQueryRequest, QuerySpec } from '@wix/sdk-types'\nimport { WixDataFilter } from './WixDataFilter'\n\nexport interface BaseOptions {\n /**\n * Prevents hooks from running for the operation. Can only be used in the [backend code of a Wix site](https://dev.wix.com/docs/develop-websites/articles/coding-with-velo/backend-code/about-the-site-backend).\n *\n * Default: `false`.\n */\n suppressHooks?: boolean\n\n /**\n * When `true`, operations include draft items. Read operations include draft items in their response, and write operations modify draft items.\n *\n * Default: `false`.\n */\n showDrafts?: boolean\n}\n\nexport interface WithAppOptions {\n /**\n * Options for [querying Wix app collections](https://dev.wix.com/docs/develop-websites/articles/wix-apps/wix-app-collections/querying-wix-app-collections).\n */\n appOptions?: Record<string, any>\n}\n\n/**\n * Options for including referenced items in results.\n */\nexport interface ReferencedItemsOptions {\n /**\n * Properties for which to include referenced items in the results.\n * Each option specifies a field name and optional limit.\n */\n referencedItemOptions?: { fieldName: string; limit?: number }[]\n}\n\nexport interface WixDataRemoveOptions extends WixDataOptions {\n /**\n * If provided, item will be updated only if condition is met.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataBulkPatchOptions extends WixDataOptions {\n /**\n * If provided, only items matching condition will be patched.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataOptions extends BaseOptions, WithAppOptions {}\n\nexport interface WixDataReadOptions extends WixDataOptions, WithAppOptions {\n /**\n * Language to translate result text into, in [IETF BCP 47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) format.\n * If provided, the result text is returned in the specified language. If not provided, the result text is not translated.\n *\n * > **Note:** Translation for the specified language must be enabled for the collection in [Wix Multilingual](https://www.wix.com/app-market/wix-multilingual).\n *\n */\n language?: string\n\n /**\n * When `true`, reads data from the primary database instance. This decreases performance but ensures data retrieved is\n * up-to-date even immediately after an update. Learn more about [Wix Data and eventual consistency](https://dev.wix.com/docs/sdk/backend-modules/data/eventual-consistency).\n */\n consistentRead?: boolean\n}\n\nexport interface WixDataReadWithProjectionOptions\n extends WixDataReadOptions,\n ProjectionOptions,\n ReferencedItemsOptions {}\n\nexport interface WixDataSaveOptions extends WixDataOptions {\n /**\n * If true, referenced items are included.\n * @internal\n */\n includeReferences?: boolean\n}\n\nexport interface WixDataInsertOptions extends WixDataOptions {\n /**\n * If true, referenced items are included.\n * @internal\n */\n includeReferences?: boolean\n}\n\nexport interface WixDataUpdateOptions extends WixDataOptions {\n /**\n * If true, referenced items are included.\n * @internal\n */\n includeReferences?: boolean\n /**\n * If provided, item will be updated only if condition is met.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataBulkUpdateOptions extends WixDataOptions {\n /**\n * If provided, only items matching condition will be updated.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataBulkRemoveOptions extends WixDataOptions {\n /**\n * If provided, only items matching condition will be removed.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataPatchOptions extends BaseOptions {\n /**\n * If provided, item will be patched only if condition is met.\n */\n condition?: WixDataFilter\n}\n\nexport interface WixDataAggregateOptions extends WixDataQueryOptions {}\n\n/**\n * WixData query specification.\n * Since WixData collections are dynamic, we allow any string field.\n * @internal\n */\nexport interface WixDataQuerySpec extends QuerySpec {\n wql: [\n {\n fields: string[]\n sort: 'BOTH'\n }\n ]\n paging: 'offset'\n}\n\n/**\n * Request object for direct query execution.\n * Extends the SDK's QueryRequest with WixData-specific fields.\n * Use this with `wixData.query(collectionName, queryRequest)` for one-shot queries.\n * @internal\n */\nexport interface WixDataQueryRequest\n extends Omit<SDKQueryRequest<WixDataItem, WixDataQuerySpec>, 'filter'> {\n /**\n * Filter object. Supports operators like `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`,\n * `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`.\n *\n * Example:\n * ```js\n * { status: 'active', age: { $gt: 25 } }\n * ```\n */\n filter?: Record<string, any>\n\n /**\n * Cursor-based paging. Use this as an alternative to offset paging.\n *\n * Example:\n * ```js\n * { limit: 10, cursor: 'abc123' }\n * ```\n */\n cursorPaging?: {\n /** Maximum number of items to return. */\n limit?: number\n /** Cursor token pointing to a page of results. */\n cursor?: string\n }\n}\n\nexport interface WixDataQueryOptions extends WixDataReadOptions {\n /**\n * When `true`, the query results include a `totalCount` and `totalPages` properties containing the totals of items\n * matching query. Requesting total count slows down the query.\n *\n * Default: `false`\n */\n returnTotalCount?: boolean\n}\n\n/**\n * Options for direct query execution.\n * @internal\n */\nexport interface WixDataDirectQueryOptions\n extends WixDataQueryOptions,\n ReferencedItemsOptions {}\n\nexport interface WixDataQueryReferencedOptions\n extends WixDataQueryOptions,\n ProjectionOptions {\n /**\n * Order of the returned referenced items. Sorted by the date each item was referenced.\n *\n * Default: `asc`\n */\n order?: 'asc' | 'desc'\n\n /**\n * Number of items to skip in the current sort order.\n *\n * Default: `0`\n */\n skip?: number\n\n /**\n * Number of items to load.\n *\n * Default: `50`\n */\n limit?: number\n}\n\ninterface ProjectionOptions {\n /**\n * Lists of fields to return in a result.\n */\n fields?: string[]\n}\n\nexport interface WixDataItem {\n /**\n * Data item ID.\n */\n _id: string\n\n /**\n * Date and time the item was added to the collection.\n * @readonly\n */\n _createdDate?: Date\n\n /**\n * Date and time the item was last modified. When the item is first inserted, `_createdDate` and `_updatedDate` have\n * the same value.\n * @readonly\n */\n _updatedDate?: Date\n\n /**\n * ID of the user who created the item. Can be modified with site owner permissions.\n */\n _owner?: string\n\n /**\n * Data item contents.\n */\n [key: string]: any\n}\n\nexport type WixDataItemOrId = WixDataItem | string\nexport type Comparable = string | number | Date\n\nexport interface WixDataReference {\n relationshipName: string\n left: WixDataItemOrId\n right: WixDataItemOrId\n}\n\nexport interface Provider<T> {\n get(): T | Promise<T>\n}\n\nexport interface WixDataBulkError extends Error {\n /**\n * Description of the error.\n */\n message: string\n\n /**\n * Error code.\n */\n code: string\n\n /**\n * Index of the item within the request array. Allows for correlation between request and response items.\n */\n originalIndex: number\n\n /**\n * Failed item (or ID in case of `bulkRemove()`).\n */\n item: WixDataItem | string\n}\n\nexport interface WixDataBulkResult {\n /**\n * Number of inserted items.\n */\n inserted: number\n\n /**\n * Number of updated items.\n */\n updated: number\n\n /**\n * Number of removed items.\n */\n removed: number\n\n /**\n * Number of skipped items.\n */\n skipped: number\n\n /**\n * List of errors.\n */\n errors: WixDataBulkError[]\n\n /**\n * List of IDs of inserted items.\n */\n insertedItemIds: string[]\n\n /**\n * List of IDs of updated items.\n */\n updatedItemIds: string[]\n\n /**\n * List of IDs of removed items.\n */\n removedItemIds: string[]\n}\n"],"mappings":"","ignoreList":[]}
@@ -2,10 +2,11 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.messages = exports.codes = exports.BulkError = void 0;
5
+ exports.messages = exports.codes = exports.WixDataValidationError = exports.BulkError = void 0;
6
6
  exports.validationError = validationError;
7
7
  exports.wdeValidationError = wdeValidationError;
8
8
  exports.wixDataError = wixDataError;
9
+ exports.wixDataValidationError = wixDataValidationError;
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _utils = require("../utils");
11
12
  // When adding new messages, update Support article with error code and explanation about the error.
@@ -166,4 +167,23 @@ class BulkError extends Error {
166
167
  }
167
168
  }
168
169
  exports.BulkError = BulkError;
170
+ class WixDataValidationError extends Error {
171
+ constructor(message, code, details, violations = []) {
172
+ super(message);
173
+ (0, _defineProperty2.default)(this, "name", 'Error');
174
+ (0, _defineProperty2.default)(this, "code", void 0);
175
+ (0, _defineProperty2.default)(this, "details", void 0);
176
+ (0, _defineProperty2.default)(this, "violations", void 0);
177
+ this.code = code;
178
+ this.details = details;
179
+ this.violations = violations;
180
+ if (Error.captureStackTrace) {
181
+ Error.captureStackTrace(this, WixDataValidationError);
182
+ }
183
+ }
184
+ }
185
+ exports.WixDataValidationError = WixDataValidationError;
186
+ function wixDataValidationError(message, code, details, violations = []) {
187
+ return new WixDataValidationError(message, code, details, violations);
188
+ }
169
189
  //# sourceMappingURL=errors.js.map