@wix/wix-data-items-common 1.0.303 → 1.0.304

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/api/ApiClient.js +18 -0
  2. package/dist/cjs/api/ApiClient.js.map +1 -1
  3. package/dist/cjs/api/WixDataApi.js +80 -0
  4. package/dist/cjs/api/WixDataApi.js.map +1 -1
  5. package/dist/cjs/api/WixDataPatch.js.map +1 -1
  6. package/dist/cjs/api/impl/WixDataPatchImpl.js +27 -1
  7. package/dist/cjs/api/impl/WixDataPatchImpl.js.map +1 -1
  8. package/dist/cjs/api/index.js +7 -1
  9. package/dist/cjs/api/index.js.map +1 -1
  10. package/dist/cjs/api/types.js.map +1 -1
  11. package/dist/cjs/types/api.js.map +1 -1
  12. package/dist/cjs/types/data-item-types.js +9 -1
  13. package/dist/cjs/types/data-item-types.js.map +1 -1
  14. package/dist/esm/api/ApiClient.js +18 -0
  15. package/dist/esm/api/ApiClient.js.map +1 -1
  16. package/dist/esm/api/WixDataApi.js +70 -1
  17. package/dist/esm/api/WixDataApi.js.map +1 -1
  18. package/dist/esm/api/impl/WixDataPatchImpl.js +26 -0
  19. package/dist/esm/api/impl/WixDataPatchImpl.js.map +1 -1
  20. package/dist/esm/api/index.js.map +1 -1
  21. package/dist/esm/types/data-item-types.js +8 -0
  22. package/dist/esm/types/data-item-types.js.map +1 -1
  23. package/dist/types/api/ApiClient.d.ts +4 -1
  24. package/dist/types/api/ApiClient.d.ts.map +1 -1
  25. package/dist/types/api/WixDataApi.d.ts +5 -2
  26. package/dist/types/api/WixDataApi.d.ts.map +1 -1
  27. package/dist/types/api/WixDataPatch.d.ts +67 -1
  28. package/dist/types/api/WixDataPatch.d.ts.map +1 -1
  29. package/dist/types/api/impl/WixDataPatchImpl.d.ts +25 -2
  30. package/dist/types/api/impl/WixDataPatchImpl.d.ts.map +1 -1
  31. package/dist/types/api/index.d.ts +2 -2
  32. package/dist/types/api/index.d.ts.map +1 -1
  33. package/dist/types/api/types.d.ts +14 -0
  34. package/dist/types/api/types.d.ts.map +1 -1
  35. package/dist/types/types/api.d.ts +4 -1
  36. package/dist/types/types/api.d.ts.map +1 -1
  37. package/dist/types/types/data-item-types.d.ts +73 -0
  38. package/dist/types/types/data-item-types.d.ts.map +1 -1
  39. package/package.json +2 -2
@@ -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","_options$includeField","dataItem","getDataItem","dataItemId","toReadOptions","fields","includeReferences","includeFieldGroups","length","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","cursor","limit","isNonEmptyString","fetch","cursorOrOffset","dataItems","pagingMetadata","queryDataItems","query","toPaging","items","paging","WixDataResultImpl","limitNumber","skipNumber","aggregateDataItems","unwrapAggregationId","pipeline","request","aggregatePipelineDataItems","fieldName","_options$paging","_options$cursorPaging","_options$paging2","_options$cursorPaging2","cursorPaging","offset","returnTotalCount","field","distinctValues","queryDistinctValues","isOffset","order","readOptions","totalCount","countDataItems","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","bulkInsertOptions","appId","runBulkSave","overrideExisting","bulkUpdateOptions","bulkUpdateDataItems","toBulkUpdateOptions","current","queryReferencedDataItems","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","referringItemId","referringItemFieldName","SortOrder","ASC","DESC","undefined","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","ensureValidQuery","invalidArgs","wdeValidationError","messages","queryValidations","queryInvalid","WixDataQueryImpl","onCount","params","invalidArguments","validateAndReturn","onDistinct","_toSort$find","toSort","orderBy","find","onFind","projectedFields","sort","included","randomSortOptions","sortMode","SortMode","RANDOM","randomOptions","seed","fieldGroups","_request$paging","_request$cursorPaging","_request$paging2","_request$cursorPaging2","_options$includeRefer","validationErrors","s","inc","_options$includeField2","search","searchRequest","executeDirectSearch","WixDataSearchImpl","expression","queryText","fuzzy","isFuzzy","mode","searchMode","searchDataItems","_request$paging3","_request$cursorPaging3","_request$paging4","_request$cursorPaging4","_options$includeRefer2","_request$sort","aggregate","aggregatePipeline","WixDataAggregateImpl","aggregateValidations","aggregateInvalid","toOperation","itemFieldName","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","saveReferences","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","fn","exports","arguments","suppressHooks","draftsOptions","showDrafts","conditionOptions","condition","includeReferencedItems","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","_r$itemMetadata$error","itemMetadata","success","fieldViolations","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 WixDataCountOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WithIncludeFieldGroupsOption,\n WixDataReference,\n WixDataUpdateOptions,\n WixDataBulkUpdateOptions,\n WixDataSaveOptions,\n WixDataQueryRequest,\n WixDataDirectQueryOptions,\n WixDataDistinctOptions,\n WixDataSearchRequest,\n WixDataDirectSearchOptions,\n WixDataBulkInsertOptions,\n WixDataBulkSaveOptions,\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 & WithIncludeFieldGroupsOption\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 includeReferences: options?.includeReferences,\n ...(options?.includeFieldGroups?.length\n ? { includeFieldGroups: options.includeFieldGroups }\n : {}),\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 includeReferences.\n * @returns Promise that resolves to the query results.\n */\n query<Item = WixDataItem>(\n collectionName: string,\n queryRequest: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): Promise<WixDataResult<Item>>\n\n query<Item = 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 includeReferences: 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 ...(params.fieldGroups.length > 0\n ? { includeFieldGroups: params.fieldGroups }\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 = 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 includeReferences = options?.includeReferences?.map((inc) => ({\n field: inc.field,\n limit: inc.limit,\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 includeReferences,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n ...(options?.includeFieldGroups?.length\n ? { includeFieldGroups: options.includeFieldGroups }\n : {}),\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 /**\n * Returns a search builder for the specified collection.\n * @param collectionName - Name of the collection to search.\n * @returns A `WixDataSearch` builder object.\n */\n search(collectionName: string): WixDataSearch\n\n /**\n * Executes a search directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection to search.\n * @param searchRequest - Search parameters including expression, filter, sort, and paging.\n * @param options - Additional options including referencedItemOptions.\n * @returns Promise that resolves to the search results.\n */\n search(\n collectionName: string,\n searchRequest: WixDataSearchRequest,\n options?: WixDataDirectSearchOptions\n ): Promise<WixDataResult>\n\n search(\n collectionName: string,\n searchRequest?: WixDataSearchRequest,\n options?: WixDataDirectSearchOptions\n ): WixDataSearch | Promise<WixDataResult> {\n if (searchRequest !== undefined) {\n return this.executeDirectSearch(collectionName, searchRequest, options)\n }\n\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 includeReferences: 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 private async executeDirectSearch(\n collectionName: string,\n request: WixDataSearchRequest,\n options?: WixDataDirectSearchOptions\n ): Promise<WixDataResult> {\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 includeReferences = options?.includeReferences?.map((inc) => ({\n field: inc.field,\n limit: inc.limit,\n }))\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('search', { collectionName, search: request.search })(\n async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.searchDataItems({\n ...env,\n dataCollectionId: collectionName,\n search: {\n fields: request.fields,\n filter: request.filter,\n sort: request.sort?.map((s) => ({\n fieldName: s.fieldName,\n order: s.order as any,\n })),\n search: request.search as apiTypes.SearchDetails,\n ...toPaging(limit, cursorOrOffset),\n },\n includeReferences,\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n }\n )\n\n const [items, paging] = await fetch(cursor ?? offset)\n\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: offset,\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\n /**\n * Executes an aggregation pipeline directly on a data collection.\n * @internal\n * @param collectionName - Name of the collection to run the aggregation on.\n * @param pipeline - Aggregation pipeline with stages and paging.\n * @param options - Options for running the aggregation.\n * @returns Promise that resolves to the aggregation results.\n */\n aggregate(\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<apiTypes.AggregatePipelineDataItemsResponse>\n\n aggregate(\n collectionName: string,\n pipeline?: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): WixDataAggregate | Promise<apiTypes.AggregatePipelineDataItemsResponse> {\n if (pipeline !== undefined) {\n return this.aggregatePipeline(collectionName, pipeline, options)\n }\n\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 distinct = withArgs(\n async (\n args,\n collectionName: string,\n fieldName: string,\n options?: WixDataDistinctOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('distinct', args, 2, 3)\n .collectionName(collectionName)\n .fieldName(fieldName)\n .options(options)\n .validateAndReject()\n\n const limit = options?.paging?.limit ?? options?.cursorPaging?.limit\n const offset = options?.paging?.offset ?? 0\n const cursor = options?.cursorPaging?.cursor\n\n const fetch: PageFetcher<any> = (cursorOrOffset, returnTotalCount) =>\n this.trace('distinct', { collectionName, field: fieldName })(\n async (env) => {\n const { distinctValues, pagingMetadata } =\n await this.client.queryDistinctValues({\n ...env,\n dataCollectionId: collectionName,\n ...toReadOptions(options),\n ...toPaging(limit, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n fieldName,\n filter: options?.filter,\n order: options?.order,\n returnTotalCount,\n }\n : {}),\n })\n return [distinctValues!, pagingMetadata!]\n }\n )\n\n const [items, paging] = await fetch(\n cursor ?? offset,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: offset,\n })\n }\n )\n\n /** @internal */\n count = withArgs(\n async (\n args,\n collectionName: string,\n options?: WixDataCountOptions\n ): Promise<number> => {\n await apiValidator()\n .arity('count', args, 1, 2)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n const { filter, ...readOptions } = options ?? {}\n\n return this.trace('count', { collectionName })(async (env) => {\n const { totalCount } = await this.client.countDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...(filter ? { filter } : {}),\n ...toReadOptions(readOptions),\n })\n return totalCount!\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?: WixDataBulkSaveOptions,\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 saveReferences: options?.saveReferences,\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?: WixDataBulkInsertOptions & { 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?: WixDataBulkSaveOptions\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 saveReferences: options?.saveReferences,\n }\n}\n\nfunction toSaveOptions(options?: WixDataSaveOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n saveReferences: options?.saveReferences,\n }\n}\n\nfunction toUpdateOptions(options?: WixDataUpdateOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n saveReferences: options?.saveReferences,\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toBulkUpdateOptions(options?: WixDataBulkUpdateOptions) {\n return {\n ...toOptions(options),\n saveReferences: options?.saveReferences,\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 const fieldViolations = r.itemMetadata.error.data?.fieldViolations\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 fieldViolations\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","createExplicitFilter","wdeValidationError","messages","filterMustBeAnObject","isObject","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","itemId","_options$includeField","dataItem","getDataItem","dataItemId","toReadOptions","fields","includeReferences","includeFieldGroups","length","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","apiFilter","WixDataPatchByFilterImpl","jobId","asyncPatchDataItemsByFilter","toAsyncByFilterOptions","asyncRemoveDataItemsByFilter","isNonEmptyString","status","successCount","getAsyncJobStatus","cursor","limit","fetch","cursorOrOffset","dataItems","pagingMetadata","queryDataItems","query","toPaging","items","paging","WixDataResultImpl","limitNumber","skipNumber","aggregateDataItems","unwrapAggregationId","pipeline","request","aggregatePipelineDataItems","fieldName","_options$paging","_options$cursorPaging","_options$paging2","_options$cursorPaging2","cursorPaging","offset","returnTotalCount","field","distinctValues","queryDistinctValues","isOffset","order","readOptions","totalCount","countDataItems","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","bulkInsertOptions","appId","runBulkSave","overrideExisting","bulkUpdateOptions","bulkUpdateDataItems","toBulkUpdateOptions","current","queryReferencedDataItems","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","referringItemId","referringItemFieldName","SortOrder","ASC","DESC","undefined","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","ensureValidQuery","invalidArgs","queryValidations","queryInvalid","WixDataQueryImpl","onCount","params","invalidArguments","validateAndReturn","onDistinct","_toSort$find","toSort","orderBy","find","onFind","projectedFields","sort","included","randomSortOptions","sortMode","SortMode","RANDOM","randomOptions","seed","fieldGroups","_request$paging","_request$cursorPaging","_request$paging2","_request$cursorPaging2","_options$includeRefer","validationErrors","s","inc","_options$includeField2","search","searchRequest","executeDirectSearch","WixDataSearchImpl","expression","queryText","fuzzy","isFuzzy","mode","searchMode","searchDataItems","_request$paging3","_request$cursorPaging3","_request$paging4","_request$cursorPaging4","_options$includeRefer2","_request$sort","aggregate","aggregatePipeline","WixDataAggregateImpl","aggregateValidations","aggregateInvalid","toOperation","itemFieldName","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","saveReferences","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","fn","exports","arguments","suppressHooks","draftsOptions","showDrafts","conditionOptions","condition","includeReferencedItems","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","_r$itemMetadata$error","itemMetadata","success","fieldViolations","BulkError","description","originalIndex","_r$itemMetadata3","inserted","BulkActionType","INSERT","updated","UPDATE","PATCH","removed","DELETE","skipped","insertedItemIds","_r$itemMetadata4","updatedItemIds","_r$itemMetadata5","removedItemIds","_r$itemMetadata6","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 WixDataCountOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WithIncludeFieldGroupsOption,\n WixDataReference,\n WixDataUpdateOptions,\n WixDataBulkUpdateOptions,\n WixDataSaveOptions,\n WixDataQueryRequest,\n WixDataDirectQueryOptions,\n WixDataDistinctOptions,\n WixDataSearchRequest,\n WixDataDirectSearchOptions,\n WixDataBulkInsertOptions,\n WixDataBulkSaveOptions,\n WixDataAsyncByFilterOptions,\n WixDataAsyncJob,\n WixDataAsyncJobStatus,\n WixDataFilterInput,\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 WixDataPatchByFilter,\n} from './WixDataPatch'\nimport { WixDataAggregate } from './WixDataAggregate'\nimport { WixDataFilter } from './WixDataFilter'\nimport { WixDataResult } from './WixDataResult'\nimport {\n WixDataBulkPatchImpl,\n WixDataPatchByFilterImpl,\n WixDataPatchImpl,\n} 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\nfunction createExplicitFilter(filter: WixDataFilterInput): Record<string, any> {\n if (filter == null) {\n throw wdeValidationError(messages.filterMustBeAnObject())\n }\n\n const anyFilter = filter as any\n if (typeof anyFilter.getFilterModel === 'function') {\n return anyFilter.getFilterModel() ?? {}\n }\n if (anyFilter.filterTree != null) {\n return anyFilter.filterTree as Record<string, any>\n }\n if (isObject(filter)) {\n return filter as Record<string, any>\n }\n\n throw wdeValidationError(messages.filterMustBeAnObject())\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 & WithIncludeFieldGroupsOption\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 includeReferences: options?.includeReferences,\n ...(options?.includeFieldGroups?.length\n ? { includeFieldGroups: options.includeFieldGroups }\n : {}),\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 asyncPatchByFilter = (\n collectionName: string,\n filter: WixDataFilterInput\n ): WixDataPatchByFilter => {\n const apiFilter = createExplicitFilter(filter)\n\n return new WixDataPatchByFilterImpl({\n collectionName,\n filter: apiFilter,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('asyncPatchByFilter', { collectionName })(\n async (env) => {\n const { jobId } = await this.client.asyncPatchDataItemsByFilter({\n ...env,\n dataCollectionId: patchParams.collectionName,\n filter: patchParams.filter,\n fieldModifications,\n ...toAsyncByFilterOptions(options),\n })\n\n return { jobId: jobId! }\n }\n )\n },\n })\n }\n\n asyncRemoveByFilter = withArgs(\n async (\n args,\n collectionName: string,\n filter: WixDataFilterInput,\n options?: WixDataAsyncByFilterOptions\n ): Promise<WixDataAsyncJob> => {\n await apiValidator()\n .arity('asyncRemoveByFilter', args, 2, 3)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n const apiFilter = createExplicitFilter(filter)\n\n return this.trace('asyncRemoveByFilter', { collectionName })(\n async (env) => {\n const { jobId } = await this.client.asyncRemoveDataItemsByFilter({\n ...env,\n dataCollectionId: collectionName,\n filter: apiFilter,\n ...toAsyncByFilterOptions(options),\n })\n\n return { jobId: jobId! }\n }\n )\n }\n )\n\n getAsyncJobStatus = withArgs(\n async (args, jobId: string): Promise<WixDataAsyncJobStatus> => {\n await apiValidator()\n .arity('getAsyncJobStatus', args, 1, 1)\n .isNonEmptyString(jobId, 'jobId')\n .validateAndReject()\n\n const { status, successCount } = await this.client.getAsyncJobStatus({\n jobId,\n })\n\n return { status, successCount }\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 includeReferences.\n * @returns Promise that resolves to the query results.\n */\n query<Item = WixDataItem>(\n collectionName: string,\n queryRequest: WixDataQueryRequest,\n options?: WixDataDirectQueryOptions\n ): Promise<WixDataResult<Item>>\n\n query<Item = 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 includeReferences: 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 ...(params.fieldGroups.length > 0\n ? { includeFieldGroups: params.fieldGroups }\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 = 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 includeReferences = options?.includeReferences?.map((inc) => ({\n field: inc.field,\n limit: inc.limit,\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 includeReferences,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n ...(options?.includeFieldGroups?.length\n ? { includeFieldGroups: options.includeFieldGroups }\n : {}),\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 /**\n * Returns a search builder for the specified collection.\n * @param collectionName - Name of the collection to search.\n * @returns A `WixDataSearch` builder object.\n */\n search(collectionName: string): WixDataSearch\n\n /**\n * Executes a search directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection to search.\n * @param searchRequest - Search parameters including expression, filter, sort, and paging.\n * @param options - Additional options including referencedItemOptions.\n * @returns Promise that resolves to the search results.\n */\n search(\n collectionName: string,\n searchRequest: WixDataSearchRequest,\n options?: WixDataDirectSearchOptions\n ): Promise<WixDataResult>\n\n search(\n collectionName: string,\n searchRequest?: WixDataSearchRequest,\n options?: WixDataDirectSearchOptions\n ): WixDataSearch | Promise<WixDataResult> {\n if (searchRequest !== undefined) {\n return this.executeDirectSearch(collectionName, searchRequest, options)\n }\n\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 includeReferences: 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 private async executeDirectSearch(\n collectionName: string,\n request: WixDataSearchRequest,\n options?: WixDataDirectSearchOptions\n ): Promise<WixDataResult> {\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 includeReferences = options?.includeReferences?.map((inc) => ({\n field: inc.field,\n limit: inc.limit,\n }))\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('search', { collectionName, search: request.search })(\n async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.searchDataItems({\n ...env,\n dataCollectionId: collectionName,\n search: {\n fields: request.fields,\n filter: request.filter,\n sort: request.sort?.map((s) => ({\n fieldName: s.fieldName,\n order: s.order as any,\n })),\n search: request.search as apiTypes.SearchDetails,\n ...toPaging(limit, cursorOrOffset),\n },\n includeReferences,\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n }\n )\n\n const [items, paging] = await fetch(cursor ?? offset)\n\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: offset,\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\n /**\n * Executes an aggregation pipeline directly on a data collection.\n * @internal\n * @param collectionName - Name of the collection to run the aggregation on.\n * @param pipeline - Aggregation pipeline with stages and paging.\n * @param options - Options for running the aggregation.\n * @returns Promise that resolves to the aggregation results.\n */\n aggregate(\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<apiTypes.AggregatePipelineDataItemsResponse>\n\n aggregate(\n collectionName: string,\n pipeline?: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): WixDataAggregate | Promise<apiTypes.AggregatePipelineDataItemsResponse> {\n if (pipeline !== undefined) {\n return this.aggregatePipeline(collectionName, pipeline, options)\n }\n\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 distinct = withArgs(\n async (\n args,\n collectionName: string,\n fieldName: string,\n options?: WixDataDistinctOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('distinct', args, 2, 3)\n .collectionName(collectionName)\n .fieldName(fieldName)\n .options(options)\n .validateAndReject()\n\n const limit = options?.paging?.limit ?? options?.cursorPaging?.limit\n const offset = options?.paging?.offset ?? 0\n const cursor = options?.cursorPaging?.cursor\n\n const fetch: PageFetcher<any> = (cursorOrOffset, returnTotalCount) =>\n this.trace('distinct', { collectionName, field: fieldName })(\n async (env) => {\n const { distinctValues, pagingMetadata } =\n await this.client.queryDistinctValues({\n ...env,\n dataCollectionId: collectionName,\n ...toReadOptions(options),\n ...toPaging(limit, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n fieldName,\n filter: options?.filter,\n order: options?.order,\n returnTotalCount,\n }\n : {}),\n })\n return [distinctValues!, pagingMetadata!]\n }\n )\n\n const [items, paging] = await fetch(\n cursor ?? offset,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: offset,\n })\n }\n )\n\n /** @internal */\n count = withArgs(\n async (\n args,\n collectionName: string,\n options?: WixDataCountOptions\n ): Promise<number> => {\n await apiValidator()\n .arity('count', args, 1, 2)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n const { filter, ...readOptions } = options ?? {}\n\n return this.trace('count', { collectionName })(async (env) => {\n const { totalCount } = await this.client.countDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...(filter ? { filter } : {}),\n ...toReadOptions(readOptions),\n })\n return totalCount!\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?: WixDataBulkSaveOptions,\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 saveReferences: options?.saveReferences,\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?: WixDataBulkInsertOptions & { 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?: WixDataBulkSaveOptions\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 toAsyncByFilterOptions(options?: WixDataAsyncByFilterOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n ...draftsOptions(options?.showDrafts),\n }\n}\n\nfunction toInsertOptions(options?: WixDataInsertOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n saveReferences: options?.saveReferences,\n }\n}\n\nfunction toSaveOptions(options?: WixDataSaveOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n saveReferences: options?.saveReferences,\n }\n}\n\nfunction toUpdateOptions(options?: WixDataUpdateOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\n saveReferences: options?.saveReferences,\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toBulkUpdateOptions(options?: WixDataBulkUpdateOptions) {\n return {\n ...toOptions(options),\n saveReferences: options?.saveReferences,\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 const fieldViolations = r.itemMetadata.error.data?.fieldViolations\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 fieldViolations\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 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/api/WixDataPatch.ts"],"sourcesContent":["import {\n WixDataItem,\n WixDataBulkResult,\n WixDataPatchOptions,\n WixDataBulkPatchOptions,\n} from './types'\n\nexport interface FieldModification {\n fieldPath: string\n action:\n | 'SET_FIELD'\n | 'REMOVE_FIELD'\n | 'INCREMENT_FIELD'\n | 'APPEND_TO_ARRAY'\n | 'REMOVE_FROM_ARRAY'\n actionOptions?: any\n}\n\n/**\n * @builder\n */\nexport interface WixDataBulkPatch {\n /**\n * Refines a patch operation to increment the specified field value by the specified parameter.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is incremented. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param by - Value by which to increment the specified field. To decrement, specify a negative value.\n * @requiredField by\n * @returns Updated patch object.\n */\n incrementField(field: string, by: number): WixDataBulkPatch\n\n /**\n * Refines a patch operation to set the specified field to the specified value.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is set. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to set for the specified field.\n * @requiredField value\n * @returns Updated patch object.\n */\n setField(field: string, value: any): WixDataBulkPatch\n\n /**\n * Refines a patch operation to append the specified value to the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to append the specified value to. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to append to the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n appendToArray(field: string, value: any): WixDataBulkPatch\n\n /**\n * Refines a patch operation to remove the first instance of the specified value from the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to remove the specified value from. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value whose first instance is removed from the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n removeFromArray(field: string, value: any): WixDataBulkPatch\n\n /**\n * Refines a patch operation to clear the specified field.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is cleared. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @returns Updated patch object.\n */\n removeField(field: string): WixDataBulkPatch\n\n /**\n * Runs the bulk patch operation and returns a Promise that resolves to information about the results.\n *\n * @public\n * @documentationMaturity preview\n * @returns Bulk operation results.\n */\n run(options?: WixDataBulkPatchOptions): Promise<WixDataBulkResult>\n}\n\n/**\n * @builder\n */\nexport interface WixDataPatch {\n /**\n * Refines a patch operation to increment the specified field value by the specified parameter.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is incremented. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param by - Value by which to increment the specified field. To decrement, specify a negative value.\n * @requiredField by\n * @returns Updated patch object.\n */\n incrementField(field: string, by: number): WixDataPatch\n\n /**\n * Refines a patch operation to set the specified field to the specified value.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is set. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to set for the specified field.\n * @requiredField value\n * @returns Updated patch object.\n */\n setField(field: string, value: any): WixDataPatch\n\n /**\n * Refines a patch operation to append the specified value to the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to append the specified value to. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to append to the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n appendToArray(field: string, value: any): WixDataPatch\n\n /**\n * Refines a patch operation to remove the first instance of the specified value from the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to remove the specified value from. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value whose first instance is removed from the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n removeFromArray(field: string, value: any): WixDataPatch\n\n /**\n * Refines a patch operation to clear the specified field.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is cleared. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @returns Updated patch object.\n */\n removeField(field: string): WixDataPatch\n\n /**\n * Runs the patch operation and returns a Promise that resolves to the patched item and operation metadata.\n *\n * @public\n * @documentationMaturity preview\n * @returns Modified data item.\n */\n\n run(options?: WixDataPatchOptions): Promise<WixDataItem | null>\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/api/WixDataPatch.ts"],"sourcesContent":["import {\n WixDataItem,\n WixDataBulkResult,\n WixDataPatchOptions,\n WixDataBulkPatchOptions,\n WixDataAsyncByFilterOptions,\n WixDataAsyncJob,\n} from './types'\n\nexport interface FieldModification {\n fieldPath: string\n action:\n | 'SET_FIELD'\n | 'REMOVE_FIELD'\n | 'INCREMENT_FIELD'\n | 'APPEND_TO_ARRAY'\n | 'REMOVE_FROM_ARRAY'\n actionOptions?: any\n}\n\n/**\n * @builder\n */\nexport interface WixDataBulkPatch {\n /**\n * Refines a patch operation to increment the specified field value by the specified parameter.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is incremented. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param by - Value by which to increment the specified field. To decrement, specify a negative value.\n * @requiredField by\n * @returns Updated patch object.\n */\n incrementField(field: string, by: number): WixDataBulkPatch\n\n /**\n * Refines a patch operation to set the specified field to the specified value.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is set. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to set for the specified field.\n * @requiredField value\n * @returns Updated patch object.\n */\n setField(field: string, value: any): WixDataBulkPatch\n\n /**\n * Refines a patch operation to append the specified value to the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to append the specified value to. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to append to the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n appendToArray(field: string, value: any): WixDataBulkPatch\n\n /**\n * Refines a patch operation to remove the first instance of the specified value from the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to remove the specified value from. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value whose first instance is removed from the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n removeFromArray(field: string, value: any): WixDataBulkPatch\n\n /**\n * Refines a patch operation to clear the specified field.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is cleared. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @returns Updated patch object.\n */\n removeField(field: string): WixDataBulkPatch\n\n /**\n * Runs the bulk patch operation and returns a Promise that resolves to information about the results.\n *\n * @public\n * @documentationMaturity preview\n * @returns Bulk operation results.\n */\n run(options?: WixDataBulkPatchOptions): Promise<WixDataBulkResult>\n}\n\n/**\n * @builder\n */\nexport interface WixDataPatchByFilter {\n /**\n * Refines a patch operation to increment the specified field value by the specified parameter.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is incremented. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param by - Value by which to increment the specified field. To decrement, specify a negative value.\n * @requiredField by\n * @returns Updated patch object.\n */\n incrementField(field: string, by: number): WixDataPatchByFilter\n\n /**\n * Refines a patch operation to set the specified field to the specified value.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is set. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to set for the specified field.\n * @requiredField value\n * @returns Updated patch object.\n */\n setField(field: string, value: any): WixDataPatchByFilter\n\n /**\n * Refines a patch operation to append the specified value to the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to append the specified value to. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to append to the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n appendToArray(field: string, value: any): WixDataPatchByFilter\n\n /**\n * Refines a patch operation to remove the first instance of the specified value from the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to remove the specified value from. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value whose first instance is removed from the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n removeFromArray(field: string, value: any): WixDataPatchByFilter\n\n /**\n * Refines a patch operation to clear the specified field.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is cleared. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @returns Updated patch object.\n */\n removeField(field: string): WixDataPatchByFilter\n\n /**\n * Starts the async patch operation and returns a Promise that resolves to the async job.\n *\n * @public\n * @documentationMaturity preview\n * @returns Async job information.\n */\n run(options?: WixDataAsyncByFilterOptions): Promise<WixDataAsyncJob>\n}\n\n/**\n * @builder\n */\nexport interface WixDataPatch {\n /**\n * Refines a patch operation to increment the specified field value by the specified parameter.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is incremented. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param by - Value by which to increment the specified field. To decrement, specify a negative value.\n * @requiredField by\n * @returns Updated patch object.\n */\n incrementField(field: string, by: number): WixDataPatch\n\n /**\n * Refines a patch operation to set the specified field to the specified value.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is set. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to set for the specified field.\n * @requiredField value\n * @returns Updated patch object.\n */\n setField(field: string, value: any): WixDataPatch\n\n /**\n * Refines a patch operation to append the specified value to the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to append the specified value to. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value to append to the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n appendToArray(field: string, value: any): WixDataPatch\n\n /**\n * Refines a patch operation to remove the first instance of the specified value from the specified array field.\n * @public\n * @documentationMaturity preview\n * @param field - Array field to remove the specified value from. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @param value - Value whose first instance is removed from the specified array field.\n * @requiredField value\n * @returns Updated patch object.\n */\n removeFromArray(field: string, value: any): WixDataPatch\n\n /**\n * Refines a patch operation to clear the specified field.\n * @public\n * @documentationMaturity preview\n * @param field - Field whose value is cleared. Nested fields can be specified using dot notation. For example: `address.street`.\n * @requiredField field\n * @returns Updated patch object.\n */\n removeField(field: string): WixDataPatch\n\n /**\n * Runs the patch operation and returns a Promise that resolves to the patched item and operation metadata.\n *\n * @public\n * @documentationMaturity preview\n * @returns Modified data item.\n */\n\n run(options?: WixDataPatchOptions): Promise<WixDataItem | null>\n}\n"],"mappings":"","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.WixDataPatchImpl = exports.WixDataBulkPatchImpl = void 0;
5
+ exports.WixDataPatchImpl = exports.WixDataPatchByFilterImpl = exports.WixDataBulkPatchImpl = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
7
  var _errors = require("../../errors");
8
8
  var _utils = require("../../utils");
@@ -125,6 +125,32 @@ class WixDataPatchImpl extends WixDataPatchBase {
125
125
  }
126
126
  }
127
127
  exports.WixDataPatchImpl = WixDataPatchImpl;
128
+ class WixDataPatchByFilterImpl extends WixDataPatchBase {
129
+ constructor(origin) {
130
+ super(origin);
131
+ (0, _defineProperty2.default)(this, "onRun", void 0);
132
+ (0, _defineProperty2.default)(this, "filter", void 0);
133
+ this.onRun = origin.onRun;
134
+ this.filter = origin.filter;
135
+ }
136
+ copy(params) {
137
+ return new WixDataPatchByFilterImpl({
138
+ ...this,
139
+ invalidArguments: params.invalidArguments ?? this.ownInvalidArguments,
140
+ fieldModifications: [...this.fieldModifications, ...[params.addFieldModification]],
141
+ onRun: this.onRun
142
+ });
143
+ }
144
+ run(options) {
145
+ return this.onRun(arguments, {
146
+ collectionName: this.collectionName,
147
+ filter: this.filter,
148
+ invalidArguments: this.ownInvalidArguments,
149
+ fieldModifications: this.fieldModifications
150
+ }, options);
151
+ }
152
+ }
153
+ exports.WixDataPatchByFilterImpl = WixDataPatchByFilterImpl;
128
154
  class PatchValidator extends _errors.AggregatingValidator {
129
155
  constructor(operatorName, previousInvalidArguments) {
130
156
  super(previousInvalidArguments);