@wix/wix-data-items-common 1.0.310 → 1.0.311
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/WixDataAggregateOptionsBuilder.js +1 -38
- package/dist/cjs/api/WixDataAggregateOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataApi.js.map +1 -1
- package/dist/cjs/api/WixDataBulkInsertOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataBulkInsertOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataBulkPatchOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataBulkPatchOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataBulkRemoveOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataBulkRemoveOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataBulkSaveOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataBulkSaveOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataBulkUpdateOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataBulkUpdateOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataInsertOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataInsertOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataPatch.js.map +1 -1
- package/dist/cjs/api/WixDataQueryReferencedItemsOptionsBuilder.js +0 -25
- package/dist/cjs/api/WixDataQueryReferencedItemsOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataRemoveOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataRemoveOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataSaveOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataSaveOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/WixDataUpdateOptionsBuilder.js +1 -13
- package/dist/cjs/api/WixDataUpdateOptionsBuilder.js.map +1 -1
- package/dist/cjs/api/types.js.map +1 -1
- package/dist/esm/api/WixDataAggregateOptionsBuilder.js +1 -30
- package/dist/esm/api/WixDataAggregateOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataApi.js.map +1 -1
- package/dist/esm/api/WixDataBulkInsertOptionsBuilder.js +0 -6
- package/dist/esm/api/WixDataBulkInsertOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataBulkPatchOptionsBuilder.js +0 -6
- package/dist/esm/api/WixDataBulkPatchOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataBulkRemoveOptionsBuilder.js +0 -6
- package/dist/esm/api/WixDataBulkRemoveOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataBulkSaveOptionsBuilder.js +0 -6
- package/dist/esm/api/WixDataBulkSaveOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataBulkUpdateOptionsBuilder.js +0 -6
- package/dist/esm/api/WixDataBulkUpdateOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataInsertOptionsBuilder.js +1 -9
- package/dist/esm/api/WixDataInsertOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataQueryReferencedItemsOptionsBuilder.js +0 -21
- package/dist/esm/api/WixDataQueryReferencedItemsOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataRemoveOptionsBuilder.js +1 -9
- package/dist/esm/api/WixDataRemoveOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataSaveOptionsBuilder.js +1 -9
- package/dist/esm/api/WixDataSaveOptionsBuilder.js.map +1 -1
- package/dist/esm/api/WixDataUpdateOptionsBuilder.js +1 -9
- package/dist/esm/api/WixDataUpdateOptionsBuilder.js.map +1 -1
- package/dist/types/api/WixDataAggregateOptionsBuilder.d.ts +0 -7
- package/dist/types/api/WixDataAggregateOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataApi.d.ts.map +1 -1
- package/dist/types/api/WixDataBulkInsertOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataBulkInsertOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataBulkPatchOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataBulkPatchOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataBulkRemoveOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataBulkRemoveOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataBulkSaveOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataBulkSaveOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataBulkUpdateOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataBulkUpdateOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataInsertOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataInsertOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataPatch.d.ts +28 -3
- package/dist/types/api/WixDataPatch.d.ts.map +1 -1
- package/dist/types/api/WixDataQueryReferencedItemsOptionsBuilder.d.ts +0 -6
- package/dist/types/api/WixDataQueryReferencedItemsOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataRemoveOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataRemoveOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataSaveOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataSaveOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/WixDataUpdateOptionsBuilder.d.ts +0 -1
- package/dist/types/api/WixDataUpdateOptionsBuilder.d.ts.map +1 -1
- package/dist/types/api/types.d.ts +333 -21
- package/dist/types/api/types.d.ts.map +1 -1
- 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","isObject","createExplicitFilter","wdeValidationError","messages","filterMustBeAnObject","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","fieldModification","action","ACTION","SET_FIELD","fieldPath","setFieldOptions","value","REMOVE_FIELD","INCREMENT_FIELD","incrementFieldOptions","APPEND_TO_ARRAY","appendToArrayOptions","REMOVE_FROM_ARRAY","removeFromArrayOptions","fieldModifications","apiFilter","apiFieldModifications","map","toFieldModificationApi","jobId","asyncPatchDataItemsByFilter","toAsyncPatchByFilterOptions","asyncRemoveDataItemsByFilter","toAsyncRemoveByFilterOptions","isNonEmptyString","status","successCount","getAsyncJobStatus","cursor","limit","fetch","cursorOrOffset","dataItems","pagingMetadata","queryDataItems","query","toPaging","toReadOptions","toDataItem","items","paging","WixDataResultImpl","limitNumber","skipNumber","results","aggregateDataItems","unwrapAggregationId","pipeline","request","aggregatePipelineDataItems","readOptions","totalCount","countDataItems","itemIds","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","toRemoveOptions","toBulkResult","current","queryReferencedDataItems","fields","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","id","itemId","returnTotalCount","isOffset","referringItemId","referringItemFieldName","order","SortOrder","ASC","DESC","undefined","skip","ApiClient","wixData","filterBuilder","arguments","_options$includeField","dataItem","getDataItem","dataItemId","includeReferences","includeFieldGroups","length","catch","recover","ItemDoesNotExistCode","insert","item","itemAsWixData","warnAboutBrokenFields","insertDataItem","_id","data","toInsertOptions","save","saveDataItem","toSaveOptions","update","updateDataItem","toUpdateOptions","remove","removeDataItem","patch","executeDirectPatch","WixDataPatchImpl","onRun","_args","patchParams","result","patchDataItem","toPatchOptions","bulkPatch","executeDirectBulkPatch","WixDataBulkPatchImpl","bulkPatchDataItems","patches","toBulkPatchOptions","queryRequest","executeDirectQuery","ensureValidQuery","invalidArgs","queryValidations","queryInvalid","WixDataQueryImpl","onCount","params","invalidArguments","validateAndReturn","onDistinct","field","_toSort$find","fieldName","toSort","orderBy","find","distinctValues","queryDistinctValues","onFind","projectedFields","sort","included","randomSortOptions","sortMode","SortMode","RANDOM","randomOptions","seed","fieldGroups","_request$paging","_request$cursorPaging","_request$paging2","_request$cursorPaging2","_options$includeRefer","validationErrors","cursorPaging","offset","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","executeDirectAggregate","WixDataAggregateImpl","aggregateValidations","aggregateInvalid","toOperation","itemFieldName","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","aggregatePipeline","distinct","_options$paging","_options$cursorPaging","_options$paging2","_options$cursorPaging2","values","runBulkSave","overrideExisting","saveReferences","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","bulkInsert","itemsAsWixData","bulkInsertOptions","appId","bulkSave","bulkUpdate","bulkUpdateOptions","bulkUpdateDataItems","toBulkUpdateOptions","queryReferencedItems","referringItem","referenceParameters","asArray","referringItemIds","toReferencedResults","insertReference","refsOrAttr","leftOrOpts","right","refs","opts","argc","rights","relationshipName","left","references","bulkInsertDataItemReferences","dataItemReferences","referencedItemId","replaceReferences","replaceDataItemReferences","newReferencedItemIds","removeReference","referenceRemoveParameters","bulkRemoveDataItemReferences","isReferenced","isReferencedDataItem","consistentRead","fn","exports","suppressHooks","draftsOptions","showDrafts","conditionOptions","condition","toAsyncOptions","includeReferencedItems","res","appOptions","entries","every","kv","language","publishPluginOptions","includeDraftItems","fieldOrder","providerOrValue","code","error","_details","Error","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","wireResult","unresolvedReference","referencedResult","unauthorized","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 BaseOptions,\n Provider,\n WixDataAggregateOptions,\n WixDataBulkResult,\n WixDataItem,\n WithId,\n WixDataItemOrId,\n WixDataOptions,\n WixDataInsertOptions,\n WixDataRemoveOptions,\n WixDataQueryReferencedOptions,\n WixDataQueryReferencedItemsOptions,\n WixDataCountOptions,\n WixDataIsReferencedOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WixDataGetOptions,\n WixDataReference,\n WixDataUpdateOptions,\n WixDataBulkUpdateOptions,\n WixDataBulkRemoveOptions,\n WixDataSaveOptions,\n WixDataQueryRequest,\n WixDataQueryOptions,\n WixDataDistinctOptions,\n WixDataSearchRequest,\n WixDataSearchOptions,\n WixDataBulkInsertOptions,\n WixDataBulkSaveOptions,\n WixDataAsyncRemoveByFilterOptions,\n WixDataAsyncRemoveByFilterResponse,\n WixDataAsyncPatchByFilterOptions,\n WixDataAsyncPatchByFilterResponse,\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 WixDataBulkPatch,\n WixDataBulkPatchOptions,\n WixDataPatchOptions,\n} from './WixDataPatch'\nimport { WixDataQueryResponse } from './WixDataQueryResponse'\nimport { WixDataSearchResponse } from './WixDataSearchResponse'\nimport { WixDataAggregateResponse } from './WixDataAggregateResponse'\nimport { WixDataDistinctResponse } from './WixDataDistinctResponse'\nimport { WixDataQueryReferencedItemsResponse } from './WixDataQueryReferencedItemsResponse'\nimport { FieldModification } from './FieldModification'\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: WixDataFilterInput): 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 if (isObject(filter)) {\n return filter 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>\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 async get<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n options?: WixDataGetOptions\n ): Promise<(Item & WixDataItem) | null> {\n await apiValidator()\n .arity('get', arguments, 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\n ? (toDataItem(dataItem) as unknown as Item & WixDataItem)\n : null\n })\n }\n\n async insert<Item extends Record<string, any>>(\n collectionName: string,\n item: Item,\n options?: WixDataUpdateOptions\n ): Promise<Item & WixDataItem> {\n const itemAsWixData = item as Partial<WixDataItem>\n await apiValidator()\n .arity('insert', arguments, 2, 3)\n .collectionName(collectionName)\n .item(itemAsWixData, collectionName, false)\n .options(options)\n .validateAndReject()\n\n warnAboutBrokenFields(itemAsWixData)\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: itemAsWixData._id,\n data: itemAsWixData,\n },\n ...toInsertOptions(options),\n })\n\n return toDataItem(dataItem!) as unknown as Item & WixDataItem\n })\n }\n\n async save<Item extends Record<string, any>>(\n collectionName: string,\n item: Item,\n options?: WixDataSaveOptions\n ): Promise<Item & WixDataItem> {\n const itemAsWixData = item as Partial<WixDataItem>\n await apiValidator()\n .arity('save', arguments, 2, 3)\n .collectionName(collectionName)\n .item(itemAsWixData, 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: itemAsWixData._id,\n data: itemAsWixData,\n },\n ...toSaveOptions(options),\n })\n return toDataItem(dataItem!) as unknown as Item & WixDataItem\n })\n }\n\n async update<Item extends WithId>(\n collectionName: string,\n item: Item,\n options?: WixDataUpdateOptions\n ): Promise<Item & WixDataItem> {\n await apiValidator()\n .arity('update', arguments, 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!) as unknown as Item & WixDataItem\n })\n }\n\n async remove<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n options?: WixDataRemoveOptions\n ): Promise<(Item & WixDataItem) | null> {\n await apiValidator()\n .arity('remove', arguments, 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\n ? (toDataItem(dataItem) as unknown as Item & WixDataItem)\n : null\n })\n }\n\n private toFieldModificationApi = (\n fieldModification: FieldModification\n ): apiTypes.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.value,\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.value,\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.value,\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.value,\n },\n }\n }\n }\n\n /**\n * Returns a patch builder for the specified collection and item.\n * @param collectionName - Name of the collection containing the item to patch.\n * @param itemId - ID of the item to patch.\n * @returns A `WixDataPatch` builder object.\n */\n patch(collectionName: string, itemId: string): WixDataPatch\n\n /**\n * Executes a patch directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection containing the item to patch.\n * @param itemId - ID of the item to patch.\n * @param fieldModifications - Field modifications to apply to the item.\n * @param options - Additional options for the patch operation.\n * @returns Promise that resolves to the patched item, or `null` if no item was returned.\n */\n patch<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n fieldModifications?: FieldModification[],\n options?: WixDataPatchOptions\n ): Promise<(Item & WixDataItem) | null>\n\n patch<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n fieldModifications?: FieldModification[],\n options?: WixDataPatchOptions\n ): WixDataPatch | Promise<(Item & WixDataItem) | null> {\n if (arguments.length >= 3) {\n return this.executeDirectPatch<Item>(\n collectionName,\n itemId,\n fieldModifications,\n options\n )\n }\n\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 private async executeDirectPatch<\n Item extends Record<string, any> = WixDataItem\n >(\n collectionName: string,\n itemId: string,\n fieldModifications: FieldModification[] | undefined,\n options?: WixDataPatchOptions\n ): Promise<(Item & WixDataItem) | null> {\n const apiFieldModifications = 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: collectionName,\n patch: {\n dataItemId: itemId,\n fieldModifications: apiFieldModifications,\n },\n ...toPatchOptions(options),\n })\n\n return result.dataItem\n ? (toDataItem(result.dataItem) as unknown as Item & WixDataItem)\n : null\n })\n }\n\n bulkPatch(collectionName: string, itemIds: string[]): WixDataBulkPatch\n\n /**\n * Executes a bulk patch directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection containing the items to patch.\n * @param itemIds - IDs of the items to patch.\n * @param fieldModifications - Field modifications to apply to the items.\n * @param options - Additional options for the bulk patch operation.\n * @returns Promise that resolves to bulk operation results.\n */\n bulkPatch(\n collectionName: string,\n itemIds: string[],\n fieldModifications?: FieldModification[],\n options?: WixDataBulkPatchOptions\n ): Promise<WixDataBulkResult>\n\n bulkPatch(\n collectionName: string,\n itemIds: string[],\n fieldModifications?: FieldModification[],\n options?: WixDataBulkPatchOptions\n ): WixDataBulkPatch | Promise<WixDataBulkResult> {\n if (arguments.length >= 3) {\n return this.executeDirectBulkPatch(\n collectionName,\n itemIds,\n fieldModifications,\n options\n )\n }\n\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 ...toBulkPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n },\n })\n }\n\n private async executeDirectBulkPatch(\n collectionName: string,\n itemIds: string[],\n fieldModifications: FieldModification[] | undefined,\n options?: WixDataBulkPatchOptions\n ): Promise<WixDataBulkResult> {\n const apiFieldModifications = 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: collectionName,\n patches: itemIds.map((itemId) => ({\n dataItemId: itemId,\n fieldModifications: apiFieldModifications,\n })),\n ...toBulkPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n }\n\n asyncPatchByFilter = withArgs(\n async (\n args,\n collectionName: string,\n filter: WixDataFilterInput,\n fieldModifications: FieldModification[],\n options?: WixDataAsyncPatchByFilterOptions\n ): Promise<WixDataAsyncPatchByFilterResponse> => {\n await apiValidator()\n .arity('asyncPatchByFilter', args, 3, 4)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n const apiFilter = createExplicitFilter(filter)\n const apiFieldModifications = 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: collectionName,\n filter: apiFilter,\n fieldModifications: apiFieldModifications,\n ...toAsyncPatchByFilterOptions(options),\n })\n\n return { jobId: jobId! }\n }\n )\n }\n )\n\n asyncRemoveByFilter = withArgs(\n async (\n args,\n collectionName: string,\n filter: WixDataFilterInput,\n options?: WixDataAsyncRemoveByFilterOptions\n ): Promise<WixDataAsyncRemoveByFilterResponse> => {\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 ...toAsyncRemoveByFilterOptions(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 extends Record<string, any> = WixDataItem>(\n collectionName: string,\n queryRequest: WixDataQueryRequest,\n options?: WixDataQueryOptions\n ): Promise<WixDataQueryResponse<Item & WixDataItem>>\n\n query<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n queryRequest?: WixDataQueryRequest,\n options?: WixDataQueryOptions\n ): WixDataQuery | Promise<WixDataQueryResponse<Item & WixDataItem>> {\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<\n Item extends Record<string, any> = WixDataItem\n >(\n collectionName: string,\n request: WixDataQueryRequest,\n options?: WixDataQueryOptions\n ): Promise<WixDataQueryResponse<Item & WixDataItem>> {\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 return 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, cursor ?? offset),\n ...(cursor === undefined\n ? {\n filter: request.filter,\n sort: toSort(sort),\n }\n : {}),\n },\n includeReferences,\n ...toReadOptions(options),\n ...(cursor === undefined\n ? { returnTotalCount: options?.returnTotalCount }\n : {}),\n ...(options?.includeFieldGroups?.length\n ? { includeFieldGroups: options.includeFieldGroups }\n : {}),\n })\n\n return {\n items: dataItems!.map(toDataItem) as unknown as (Item & WixDataItem)[],\n pagingMetadata: pagingMetadata!,\n }\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<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n searchRequest: WixDataSearchRequest,\n options?: WixDataSearchOptions\n ): Promise<WixDataSearchResponse<Item & WixDataItem>>\n\n search<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n searchRequest?: WixDataSearchRequest,\n options?: WixDataSearchOptions\n ): WixDataSearch | Promise<WixDataSearchResponse<Item & WixDataItem>> {\n if (searchRequest !== undefined) {\n return this.executeDirectSearch<Item & WixDataItem>(\n collectionName,\n searchRequest,\n options\n )\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 Item extends Record<string, any> = WixDataItem\n >(\n collectionName: string,\n request: WixDataSearchRequest,\n options?: WixDataSearchOptions\n ): Promise<WixDataSearchResponse<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 includeReferences = options?.includeReferences?.map((inc) => ({\n field: inc.field,\n limit: inc.limit,\n }))\n\n return this.trace('search', { collectionName, search: request.search })(\n async (env) => {\n const { dataItems, pagingMetadata } = await this.client.searchDataItems(\n {\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, cursor ?? offset),\n },\n includeReferences,\n ...toReadOptions(options),\n }\n )\n\n return {\n items: dataItems!.map(toDataItem) as unknown as Item[],\n pagingMetadata: pagingMetadata!,\n }\n }\n )\n }\n\n // NOTE find method is not implemented\n\n fetch = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('fetch', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n ...toPaging(limit, cursorOrOffset),\n },\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(cursor)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n collectionName,\n skipNumber: 0,\n })\n }\n )\n\n // --- aggregate ---\n\n aggregate(collectionName: string): WixDataAggregate\n\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<Result extends Record<string, any> = Record<string, any>>(\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<WixDataAggregateResponse<Result>>\n\n aggregate<Result extends Record<string, any> = Record<string, any>>(\n collectionName: string,\n pipeline?: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): WixDataAggregate | Promise<WixDataAggregateResponse<Result>> {\n if (pipeline !== undefined) {\n return this.executeDirectAggregate<Result>(\n collectionName,\n pipeline,\n options\n )\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 private async executeDirectAggregate<Result = Record<string, any>>(\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<WixDataAggregateResponse<Result>> {\n const { results, pagingMetadata } = await this.aggregatePipeline(\n collectionName,\n pipeline,\n options\n )\n\n return {\n results: results as Result[],\n pagingMetadata: pagingMetadata!,\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 async distinct<Value = any>(\n collectionName: string,\n fieldName: string,\n options?: WixDataDistinctOptions\n ): Promise<WixDataDistinctResponse<Value>> {\n await apiValidator()\n .arity('distinct', arguments, 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 return 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, cursor ?? offset),\n ...(cursor === undefined\n ? {\n fieldName,\n filter: options?.filter,\n order: options?.order,\n returnTotalCount: options?.returnTotalCount,\n }\n : {}),\n })\n\n return {\n values: distinctValues!,\n pagingMetadata: pagingMetadata!,\n }\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?: WixDataBulkRemoveOptions\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),\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 async bulkInsert<Item extends Record<string, any>>(\n collectionName: string,\n items: Item[],\n options?: WixDataBulkInsertOptions\n ): Promise<WixDataBulkResult> {\n const itemsAsWixData = items as Partial<WixDataItem>[]\n await apiValidator()\n .arity('bulkInsert', arguments, 2, 3)\n .items(itemsAsWixData, 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 itemsAsWixData,\n options,\n options?.overrideExisting ?? false\n )\n )\n }\n\n async bulkSave<Item extends Record<string, any>>(\n collectionName: string,\n items: Item[],\n options?: WixDataBulkSaveOptions\n ): Promise<WixDataBulkResult> {\n const itemsAsWixData = items as Partial<WixDataItem>[]\n await apiValidator()\n .arity('bulkSave', arguments, 2, 3)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .items(itemsAsWixData, collectionName)\n .validateAndReject()\n\n return this.trace('bulkSave', { collectionName })(async (env) =>\n this.runBulkSave(env, collectionName, itemsAsWixData, options)\n )\n }\n\n async bulkUpdate<Item extends WithId>(\n collectionName: string,\n items: Item[],\n options?: WixDataBulkUpdateOptions\n ): Promise<WixDataBulkResult> {\n await apiValidator()\n .arity('bulkUpdate', arguments, 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 // --- 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 async queryReferencedItems<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n referringItem: WixDataItemOrId | WixDataItemOrId[],\n referringItemFieldName: string,\n options?: WixDataQueryReferencedItemsOptions\n ): Promise<WixDataQueryReferencedItemsResponse<Item & WixDataItem>> {\n await apiValidator()\n .arity('queryReferencedItems', arguments, 3, 4)\n .collectionName(collectionName)\n .referenceParameters(asArray(referringItem))\n .isNonEmptyString(referringItemFieldName, 'referringItemFieldName')\n .options(options)\n .validateAndReject()\n\n const referringItemIds = asArray(referringItem).map(itemId)\n return this.trace('queryReferencedItems', {\n collectionName,\n referringItemIds,\n options,\n referringItemFieldName,\n })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n referringItemIds,\n referringItemFieldName,\n order: options?.order,\n paging: options?.paging,\n cursorPaging: options?.cursorPaging,\n fields: options?.fields,\n returnTotalCount: options?.returnTotalCount,\n })\n\n return {\n results: toReferencedResults(results ?? []),\n pagingMetadata: pagingMetadata!,\n }\n })\n }\n\n insertReference<\n ItemLeft extends WithId = WixDataItem,\n ItemRight extends WithId = WixDataItem\n >(\n collectionName: string,\n refs: WixDataReference<ItemLeft, ItemRight>[],\n options?: WixDataOptions\n ): Promise<void>\n insertReference<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight> | WixDataItemOrId<ItemRight>[],\n options?: WixDataOptions\n ): Promise<void>\n async insertReference(\n collectionName: string,\n refsOrAttr: any,\n leftOrOpts?: any,\n right?: any,\n options?: any\n ): Promise<void> {\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\n await apiValidator()\n .arity('insertReference', arguments, ...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 async replaceReferences<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight> | WixDataItemOrId<ItemRight>[],\n options?: WixDataOptions\n ): Promise<void> {\n const rights = asArray(right)\n await apiValidator()\n .arity('replaceReferences', arguments, 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 async removeReference<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight> | WixDataItemOrId<ItemRight>[],\n options?: WixDataOptions\n ): Promise<void> {\n const rights = asArray(right)\n await apiValidator()\n .arity('removeReference', arguments, 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 async isReferenced<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight>,\n options?: WixDataIsReferencedOptions\n ): Promise<boolean> {\n await apiValidator()\n .arity('isReferenced', arguments, 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 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 toBulkPatchOptions(options?: WixDataBulkPatchOptions) {\n return {\n ...toOptions(options),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toAsyncRemoveByFilterOptions(\n options?: WixDataAsyncRemoveByFilterOptions\n) {\n return toAsyncOptions(options)\n}\n\nfunction toAsyncPatchByFilterOptions(\n options?: WixDataAsyncPatchByFilterOptions\n) {\n return toAsyncOptions(options)\n}\n\nfunction toAsyncOptions(options?: BaseOptions) {\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?: WixDataFilterInput) {\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 toReferencedResults<Item extends Record<string, any> = WixDataItem>(\n results: apiTypes.ReferencedResult[]\n): WixDataQueryReferencedItemsResponse<Item>['results'] {\n return results.map((result) => {\n const wireResult = result as any\n const unresolvedReference = wireResult.unresolvedReference\n const referencedResult: WixDataQueryReferencedItemsResponse<Item>['results'][number] =\n {\n referringItemId:\n wireResult.referringItemId ?? unresolvedReference?.referringItemId,\n }\n\n if (result.dataItem) {\n referencedResult.item = toDataItem(result.dataItem) as unknown as Item\n } else {\n referencedResult.unresolvedReference = {\n referencedItemId: unresolvedReference?.referencedItemId,\n unauthorized: unresolvedReference?.unauthorized ?? false,\n }\n }\n\n return referencedResult\n })\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":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAOA,IAAAC,QAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAsCA,IAAAK,iBAAA,GAAAL,OAAA;AAEA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAgBA,IAAAS,iBAAA,GAAAT,OAAA;AAEA,IAAAU,kBAAA,GAAAV,OAAA;AAA4D,SAAAE,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE5D,SAASkB,YAAYA,CAACC,MAA0B,EAAuB;EACrE,IAAIA,MAAM,IAAI,IAAI,EAAE;IAClB,OAAO,CAAC,CAAC;EACX;EACA,MAAMC,SAAS,GAAGD,MAAa;EAC/B,IAAI,OAAOC,SAAS,CAACC,cAAc,KAAK,UAAU,EAAE;IAClD,IAAI;MACF,MAAMC,KAAK,GAAGF,SAAS,CAACC,cAAc,CAAC,CAAC;MACxC,IAAIC,KAAK,IAAI,IAAI,EAAE;QACjB,OAAOA,KAAK;MACd;IACF,CAAC,CAAC,OAAOC,EAAE,EAAE;MACX;IAAA;EAEJ;EACA,IAAIH,SAAS,CAACI,UAAU,IAAI,IAAI,EAAE;IAChC,OAAOJ,SAAS,CAACI,UAAU;EAC7B;EACA,IAAI,IAAAC,eAAQ,EAACN,MAAM,CAAC,EAAE;IACpB,OAAOA,MAAM;EACf;EACA,OAAO,CAAC,CAAC;AACX;AAEA,SAASO,oBAAoBA,CAACP,MAA0B,EAAuB;EAC7E,IAAIA,MAAM,IAAI,IAAI,EAAE;IAClB,MAAM,IAAAQ,0BAAkB,EAACC,gBAAQ,CAACC,oBAAoB,CAAC,CAAC,CAAC;EAC3D;EAEA,MAAMT,SAAS,GAAGD,MAAa;EAC/B,IAAI,OAAOC,SAAS,CAACC,cAAc,KAAK,UAAU,EAAE;IAClD,OAAOD,SAAS,CAACC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC;EACzC;EACA,IAAID,SAAS,CAACI,UAAU,IAAI,IAAI,EAAE;IAChC,OAAOJ,SAAS,CAACI,UAAU;EAC7B;EACA,IAAI,IAAAC,eAAQ,EAACN,MAAM,CAAC,EAAE;IACpB,OAAOA,MAAM;EACf;EAEA,MAAM,IAAAQ,0BAAkB,EAACC,gBAAQ,CAACC,oBAAoB,CAAC,CAAC,CAAC;AAC3D;AAOO,MAAMC,UAAU,CAAC;EAGtBC,WAAWA,CACTC,aAAwC,EACxCC,QAAiB,EACAC,WAAkC,EAClCC,SAA+B,EAC/BC,MAAkB,EACnC;IAAA,KAHiBF,WAAkC,GAAlCA,WAAkC;IAAA,KAClCC,SAA+B,GAA/BA,SAA+B;IAAA,KAC/BC,MAAkB,GAAlBA,MAAkB;IAAA,IAAAC,gBAAA,CAAA5B,OAAA;IAarC;IAAA,IAAA4B,gBAAA,CAAA5B,OAAA,oBAEW6B,QAAQ,CACjB,OACEC,IAAI,EACJC,cAAsB,EACtBC,OAAwB,KACN;MAClB,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,UAAU,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC7BC,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;MAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,UAAU,EAAE;QAAEL;MAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;QAC/D,MAAM,IAAI,CAACC,MAAM,CAACC,iBAAiB,CAAC;UAClC,GAAGF,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChC,GAAGU,SAAS,CAACT,OAAO;QACtB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CACF,CAAC;IAAA,IAAAJ,gBAAA,CAAA5B,OAAA,kCAwJC0C,iBAAoC,IACL;MAC/B,QAAQA,iBAAiB,CAACC,MAAM;QAC9B,KAAK,WAAW;UACd,OAAO;YACLA,MAAM,EAAE/D,QAAQ,CAACgE,MAAM,CAACC,SAAS;YACjCC,SAAS,EAAEJ,iBAAiB,CAACI,SAAS;YACtCC,eAAe,EAAE;cACfC,KAAK,EAAEN,iBAAiB,CAACM;YAC3B;UACF,CAAC;QACH,KAAK,cAAc;UACjB,OAAO;YACLL,MAAM,EAAE/D,QAAQ,CAACgE,MAAM,CAACK,YAAY;YACpCH,SAAS,EAAEJ,iBAAiB,CAACI;UAC/B,CAAC;QACH,KAAK,iBAAiB;UACpB,OAAO;YACLH,MAAM,EAAE/D,QAAQ,CAACgE,MAAM,CAACM,eAAe;YACvCJ,SAAS,EAAEJ,iBAAiB,CAACI,SAAS;YACtCK,qBAAqB,EAAE;cACrBH,KAAK,EAAEN,iBAAiB,CAACM;YAC3B;UACF,CAAC;QACH,KAAK,iBAAiB;UACpB,OAAO;YACLL,MAAM,EAAE/D,QAAQ,CAACgE,MAAM,CAACQ,eAAe;YACvCN,SAAS,EAAEJ,iBAAiB,CAACI,SAAS;YACtCO,oBAAoB,EAAE;cACpBL,KAAK,EAAEN,iBAAiB,CAACM;YAC3B;UACF,CAAC;QACH,KAAK,mBAAmB;UACtB,OAAO;YACLL,MAAM,EAAE/D,QAAQ,CAACgE,MAAM,CAACU,iBAAiB;YACzCR,SAAS,EAAEJ,iBAAiB,CAACI,SAAS;YACtCS,sBAAsB,EAAE;cACtBP,KAAK,EAAEN,iBAAiB,CAACM;YAC3B;UACF,CAAC;MACL;IACF,CAAC;IAAA,IAAApB,gBAAA,CAAA5B,OAAA,8BAkLoB6B,QAAQ,CAC3B,OACEC,IAAI,EACJC,cAAsB,EACtBrB,MAA0B,EAC1B8C,kBAAuC,EACvCxB,OAA0C,KACK;MAC/C,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,oBAAoB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACvCC,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;MAEtB,MAAMsB,SAAS,GAAGxC,oBAAoB,CAACP,MAAM,CAAC;MAC9C,MAAMgD,qBAAqB,GAAGF,kBAAkB,CAACG,GAAG,CAClD,IAAI,CAACC,sBACP,CAAC;MAED,OAAO,IAAI,CAACxB,KAAK,CAAC,oBAAoB,EAAE;QAAEL;MAAe,CAAC,CAAC,CACzD,MAAOM,GAAG,IAAK;QACb,MAAM;UAAEwB;QAAM,CAAC,GAAG,MAAM,IAAI,CAACvB,MAAM,CAACwB,2BAA2B,CAAC;UAC9D,GAAGzB,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChCrB,MAAM,EAAE+C,SAAS;UACjBD,kBAAkB,EAAEE,qBAAqB;UACzC,GAAGK,2BAA2B,CAAC/B,OAAO;QACxC,CAAC,CAAC;QAEF,OAAO;UAAE6B,KAAK,EAAEA;QAAO,CAAC;MAC1B,CACF,CAAC;IACH,CACF,CAAC;IAAA,IAAAjC,gBAAA,CAAA5B,OAAA,+BAEqB6B,QAAQ,CAC5B,OACEC,IAAI,EACJC,cAAsB,EACtBrB,MAA0B,EAC1BsB,OAA2C,KACK;MAChD,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,qBAAqB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACxCC,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;MAEtB,MAAMsB,SAAS,GAAGxC,oBAAoB,CAACP,MAAM,CAAC;MAE9C,OAAO,IAAI,CAAC0B,KAAK,CAAC,qBAAqB,EAAE;QAAEL;MAAe,CAAC,CAAC,CAC1D,MAAOM,GAAG,IAAK;QACb,MAAM;UAAEwB;QAAM,CAAC,GAAG,MAAM,IAAI,CAACvB,MAAM,CAAC0B,4BAA4B,CAAC;UAC/D,GAAG3B,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChCrB,MAAM,EAAE+C,SAAS;UACjB,GAAGQ,4BAA4B,CAACjC,OAAO;QACzC,CAAC,CAAC;QAEF,OAAO;UAAE6B,KAAK,EAAEA;QAAO,CAAC;MAC1B,CACF,CAAC;IACH,CACF,CAAC;IAAA,IAAAjC,gBAAA,CAAA5B,OAAA,6BAEmB6B,QAAQ,CAC1B,OAAOC,IAAI,EAAE+B,KAAa,KAAqC;MAC7D,MAAM5B,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,mBAAmB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACtCoC,gBAAgB,CAACL,KAAK,EAAE,OAAO,CAAC,CAChC1B,iBAAiB,CAAC,CAAC;MAEtB,MAAM;QAAEgC,MAAM;QAAEC;MAAa,CAAC,GAAG,MAAM,IAAI,CAAC9B,MAAM,CAAC+B,iBAAiB,CAAC;QACnER;MACF,CAAC,CAAC;MAEF,OAAO;QAAEM,MAAM;QAAEC;MAAa,CAAC;IACjC,CACF,CAAC;IAgXD;IAAA,IAAAxC,gBAAA,CAAA5B,OAAA,iBAEQ6B,QAAQ,CACd,OACEC,IAAI,EACJC,cAAsB,EACtBuC,MAAc,EACdC,KAAc,EACdvC,OAA4B,KACD;MAC3B,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,OAAO,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC1BC,cAAc,CAACA,cAAc,CAAC,CAC9BmC,gBAAgB,CAACI,MAAM,EAAE,QAAQ,CAAC,CAClCnC,iBAAiB,CAAC,CAAC;MAEtB,MAAMqC,KAAkB,GAAIC,cAAc,IACxC,IAAI,CAACrC,KAAK,CAAC,OAAO,EAAE;QAAEL;MAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;QACrD,MAAM;UAAEqC,SAAS;UAAEC;QAAe,CAAC,GACjC,MAAM,IAAI,CAACrC,MAAM,CAACsC,cAAc,CAAC;UAC/B,GAAGvC,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChC8C,KAAK,EAAE;YACL,GAAGC,QAAQ,CAACP,KAAK,EAAEE,cAAc;UACnC,CAAC;UACD,GAAGM,aAAa,CAAC/C,OAAO;QAC1B,CAAC,CAAC;QACJ,OAAO,CAAC0C,SAAS,CAAEf,GAAG,CAACqB,UAAU,CAAC,EAAEL,cAAc,CAAE;MACtD,CAAC,CAAC;MACJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CAACF,MAAM,CAAC;MAE3C,OAAO,IAAIa,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAE;QACjDY,WAAW,EAAEb,KAAK;QAClBxC,cAAc;QACdsD,UAAU,EAAE;MACd,CAAC,CAAC;IACJ,CACF,CAAC;IAAA,IAAAzD,gBAAA,CAAA5B,OAAA,0BAqGgB6B,QAAQ,CACvB,OACEC,IAAI,EACJC,cAAsB,EACtBuC,MAAc,EACdC,KAAc,EACdvC,OAA4B,KACzB;MACH,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,gBAAgB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACnCC,cAAc,CAACA,cAAc,CAAC,CAC9BmC,gBAAgB,CAACI,MAAM,EAAE,QAAQ,CAAC,CAClCnC,iBAAiB,CAAC,CAAC;MAEtB,MAAMqC,KAAuC,GAAIC,cAAc,IAC7D,IAAI,CAACrC,KAAK,CAAC,WAAW,EAAE;QAAEL;MAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;QACzD,MAAM;UAAEiD,OAAO;UAAEX;QAAe,CAAC,GAC/B,MAAM,IAAI,CAACrC,MAAM,CAACiD,kBAAkB,CAAC;UACnC,GAAGlD,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChC,GAAG+C,QAAQ,CAACP,KAAK,EAAEE,cAAc,CAAC;UAClC,GAAGM,aAAa,CAAC/C,OAAO;QAC1B,CAAC,CAAC;QACJ,OAAO,CAACwD,mBAAmB,CAACF,OAAQ,CAAC,EAAEX,cAAc,CAAE;MACzD,CAAC,CAAC;MAEJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CAACF,MAAM,EAAE,IAAI,CAAC;MAEjD,OAAO,IAAIa,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAE;QACjDY,WAAW,EAAEb,KAAK;QAClBc,UAAU,EAAE,CAAC;QACbtD;MACF,CAAC,CAAC;IACJ,CACF,CAAC;IAAA,IAAAH,gBAAA,CAAA5B,OAAA,6BAmBmB6B,QAAQ,CAC1B,OACEC,IAAI,EACJC,cAAsB,EACtB0D,QAAsC,EACtCzD,OAAiC,KACwB;MACzD,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,mBAAmB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACtCC,cAAc,CAACA,cAAc,CAAC,CAC9BI,iBAAiB,CAAC,CAAC;MAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,mBAAmB,EAAE;QAAEL;MAAe,CAAC,CAAC,CACxD,MAAOM,GAAG,IAAK;QACb,MAAMqD,OAAmD,GAAG;UAC1D,GAAGrD,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChC0D,QAAQ;UACR,GAAGzD;QACL,CAAC;QAED,OAAO,IAAI,CAACM,MAAM,CAACqD,0BAA0B,CAACD,OAAO,CAAC;MACxD,CACF,CAAC;IACH,CACF,CAAC;IA4CD;IAAA,IAAA9D,gBAAA,CAAA5B,OAAA,iBACQ6B,QAAQ,CACd,OACEC,IAAI,EACJC,cAAsB,EACtBC,OAA6B,KACT;MACpB,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,OAAO,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC1BC,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;MAEtB,MAAM;QAAEzB,MAAM;QAAE,GAAGkF;MAAY,CAAC,GAAG5D,OAAO,IAAI,CAAC,CAAC;MAEhD,OAAO,IAAI,CAACI,KAAK,CAAC,OAAO,EAAE;QAAEL;MAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;QAC5D,MAAM;UAAEwD;QAAW,CAAC,GAAG,MAAM,IAAI,CAACvD,MAAM,CAACwD,cAAc,CAAC;UACtD,GAAGzD,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChC,IAAIrB,MAAM,GAAG;YAAEA;UAAO,CAAC,GAAG,CAAC,CAAC,CAAC;UAC7B,GAAGqE,aAAa,CAACa,WAAW;QAC9B,CAAC,CAAC;QACF,OAAOC,UAAU;MACnB,CAAC,CAAC;IACJ,CACF,CAAC;IAED;IAAA,IAAAjE,gBAAA,CAAA5B,OAAA,sBAEa6B,QAAQ,CACnB,OACEC,IAAI,EACJC,cAAsB,EACtBgE,OAAiB,EACjB/D,OAAkC,KACH;MAC/B,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,YAAY,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC/BC,cAAc,CAACA,cAAc,CAAC,CAC9BgE,OAAO,CAACA,OAAO,EAAEhE,cAAc,CAAC,CAChCiE,iBAAiB,CAAChE,OAAO,CAAC,CAC1BG,iBAAiB,CAAC,CAAC;MAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,YAAY,EAAE;QAAEL;MAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;QACjE,MAAM;UAAEiD;QAAQ,CAAC,GAAG,MAAM,IAAI,CAAChD,MAAM,CAAC2D,mBAAmB,CAAC;UACxD,GAAG5D,GAAG;UACNG,gBAAgB,EAAET,cAAc;UAChCmE,WAAW,EAAEH,OAAO;UACpB,GAAGI,eAAe,CAACnE,OAAO;QAC5B,CAAC,CAAC;QACF;QACA,OAAOoE,YAAY,CAACL,OAAO,EAAET,OAAO,EAAG,CAAC,SAAS,CAAC,CAAC;MACrD,CAAC,CAAC;IACJ,CACF,CAAC;IAgGD;IAAA,IAAA1D,gBAAA,CAAA5B,OAAA,2BAEkB6B,QAAQ,CACxB,OACEC,IAAI,EACJC,cAAsB,EACtBuC,MAAc,EACdC,KAAc,EACdvC,OAA0C,KACO;MACjD,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,iBAAiB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACpCoC,gBAAgB,CAACI,MAAM,EAAE,QAAQ,CAAC,CAClCvC,cAAc,CAACA,cAAc,CAAC,CAC9BI,iBAAiB,CAAC,CAAC;MAEtB,MAAMqC,KAAwC,GAAI6B,OAAO,IACvD,IAAI,CAACjE,KAAK,CAAC,iBAAiB,EAAE;QAAEL;MAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;QAC/D,MAAM;UAAEiD,OAAO;UAAEX;QAAe,CAAC,GAC/B,MAAM,IAAI,CAACrC,MAAM,CAACgE,wBAAwB,CAAC;UACzC,GAAGjE,GAAG;UACN,GAAGyC,QAAQ,CAACP,KAAK,EAAE8B,OAAO,CAAC;UAC3B,GAAGtB,aAAa,CAAC/C,OAAO,CAAC;UACzBQ,gBAAgB,EAAET,cAAc;UAChCwE,MAAM,EAAEvE,OAAO,oBAAPA,OAAO,CAAEuE;QACnB,CAAC,CAAC;QACJ,OAAO,CAACC,mBAAmB,CAAClB,OAAQ,CAAC,EAAEX,cAAc,CAAE;MACzD,CAAC,CAAC;MAEJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CAACF,MAAM,CAAC;MAC3C,OAAO,IAAIa,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAE;QACjDzC,cAAc;QACdqD,WAAW,EAAEb,KAAK;QAClBc,UAAU,EAAE;MACd,CAAC,CAAC;IACJ,CACF,CAAC;IAAA,IAAAzD,gBAAA,CAAA5B,OAAA,2BAEiB6B,QAAQ,CACxB,OACEC,IAAI,EACJC,cAAsB,EACtB0E,WAA4B,EAC5BC,qBAA6B,EAC7B1E,OAAuC,KACZ;MAC3B,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,iBAAiB,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACpCC,cAAc,CAACA,cAAc,CAAC,CAC9B4E,kBAAkB,CAACF,WAAW,CAAC,CAC/BvC,gBAAgB,CAACwC,qBAAqB,EAAE,uBAAuB,CAAC,CAChE1E,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;MAEtB,MAAMyE,EAAE,GAAGC,MAAM,CAACJ,WAAW,CAAC;MAC9B,MAAMjC,KAAkB,GAAGA,CAACC,cAAc,EAAEqC,gBAAgB,KAC1D,IAAI,CAAC1E,KAAK,CAAC,iBAAiB,EAAE;QAC5BL,cAAc;QACd8E,MAAM,EAAED,EAAE;QACV5E,OAAO;QACP0E;MACF,CAAC,CAAC,CAAC,MAAOrE,GAAG,IAAK;QAChB,MAAM;UAAEiD,OAAO;UAAEX;QAAe,CAAC,GAC/B,MAAM,IAAI,CAACrC,MAAM,CAACgE,wBAAwB,CAAC;UACzC,GAAGjE,GAAG;UACN,GAAGyC,QAAQ,CAAC,CAAA9C,OAAO,oBAAPA,OAAO,CAAEuC,KAAK,KAAI,EAAE,EAAEE,cAAc,CAAC;UACjD,GAAGM,aAAa,CAAC/C,OAAO,CAAC;UACzBQ,gBAAgB,EAAET,cAAc;UAChCwE,MAAM,EAAEvE,OAAO,oBAAPA,OAAO,CAAEuE,MAAM;UACvB,IAAIQ,QAAQ,CAACtC,cAAc,CAAC,GACxB;YACEuC,eAAe,EAAEJ,EAAE;YACnBK,sBAAsB,EAAEP,qBAAqB;YAC7CQ,KAAK,EACH,CAAAlF,OAAO,oBAAPA,OAAO,CAAEkF,KAAK,MAAK,KAAK,GACpBtI,QAAQ,CAACuI,SAAS,CAACC,GAAG,GACtB,CAAApF,OAAO,oBAAPA,OAAO,CAAEkF,KAAK,MAAK,MAAM,GACzBtI,QAAQ,CAACuI,SAAS,CAACE,IAAI,GACvBC,SAAS;YACfR;UACF,CAAC,GACD,CAAC,CAAC;QACR,CAAC,CAAC;QACJ,OAAO,CAACN,mBAAmB,CAAClB,OAAQ,CAAC,EAAEX,cAAc,CAAE;MACzD,CAAC,CAAC;MAEJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CACjC,CAAAxC,OAAO,oBAAPA,OAAO,CAAEuF,IAAI,KAAI,CAAC,EAClBvF,OAAO,oBAAPA,OAAO,CAAE8E,gBACX,CAAC;MACD,OAAO,IAAI3B,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAE;QACjDzC,cAAc;QACdqD,WAAW,EAAE,CAAApD,OAAO,oBAAPA,OAAO,CAAEuC,KAAK,KAAI,EAAE;QACjCc,UAAU,EAAE,CAAArD,OAAO,oBAAPA,OAAO,CAAEuF,IAAI,KAAI;MAC/B,CAAC,CAAC;IACJ,CACF,CAAC;IA50CC,IAAI,CAACjF,MAAM,GAAG,IAAIkF,oBAAS,CAACjG,aAAa,EAAEC,QAAQ,CAAC;EACtD;EAEA,IAAIiG,OAAOA,CAAA,EAAe;IACxB,OAAO,IAAI;EACb;EAEA,IAAI/G,MAAMA,CAAA,EAAkB;IAC1B,OAAO,IAAAgH,qBAAa,EAAC,CAAC;EACxB;EA0BA;;EAEA,MAAMxH,GAAGA,CACP6B,cAAsB,EACtB8E,MAAc,EACd7E,OAA2B,EACW;IACtC,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,KAAK,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAC7B5F,cAAc,CAACA,cAAc,CAAC,CAC9B8E,MAAM,CAACA,MAAM,CAAC,CACd7E,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,KAAK,EAAE;MAAEL,cAAc;MAAE8E;IAAO,CAAC,CAAC,CAAC,MAAOxE,GAAG,IAAK;MAAA,IAAAuF,qBAAA;MAClE,MAAM;QAAEC;MAAS,CAAC,GAAG,MAAM,IAAI,CAACvF,MAAM,CACnCwF,WAAW,CAAC;QACX,GAAGzF,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChCgG,UAAU,EAAElB,MAAM;QAClB,GAAG9B,aAAa,CAAC/C,OAAO,CAAC;QACzBuE,MAAM,EAAEvE,OAAO,oBAAPA,OAAO,CAAEuE,MAAM;QACvByB,iBAAiB,EAAEhG,OAAO,oBAAPA,OAAO,CAAEgG,iBAAiB;QAC7C,IAAIhG,OAAO,aAAA4F,qBAAA,GAAP5F,OAAO,CAAEiG,kBAAkB,aAA3BL,qBAAA,CAA6BM,MAAM,GACnC;UAAED,kBAAkB,EAAEjG,OAAO,CAACiG;QAAmB,CAAC,GAClD,CAAC,CAAC;MACR,CAAC,CAAC,CACDE,KAAK,CACJC,OAAO,CAACC,oBAAoB,EAAE,CAAC,CAAiC,CAClE,CAAC;MAEH,OAAOR,QAAQ,GACV7C,UAAU,CAAC6C,QAAQ,CAAC,GACrB,IAAI;IACV,CAAC,CAAC;EACJ;EAEA,MAAMS,MAAMA,CACVvG,cAAsB,EACtBwG,IAAU,EACVvG,OAA8B,EACD;IAC7B,MAAMwG,aAAa,GAAGD,IAA4B;IAClD,MAAMtG,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,QAAQ,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAChC5F,cAAc,CAACA,cAAc,CAAC,CAC9BwG,IAAI,CAACC,aAAa,EAAEzG,cAAc,EAAE,KAAK,CAAC,CAC1CC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtBsG,qBAAqB,CAACD,aAAa,CAAC;IAEpC,OAAO,IAAI,CAACpG,KAAK,CAAC,QAAQ,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MAC7D,MAAM;QAAEwF;MAAS,CAAC,GAAG,MAAM,IAAI,CAACvF,MAAM,CAACoG,cAAc,CAAC;QACpD,GAAGrG,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChC8F,QAAQ,EAAE;UACRjB,EAAE,EAAE4B,aAAa,CAACG,GAAG;UACrBC,IAAI,EAAEJ;QACR,CAAC;QACD,GAAGK,eAAe,CAAC7G,OAAO;MAC5B,CAAC,CAAC;MAEF,OAAOgD,UAAU,CAAC6C,QAAS,CAAC;IAC9B,CAAC,CAAC;EACJ;EAEA,MAAMiB,IAAIA,CACR/G,cAAsB,EACtBwG,IAAU,EACVvG,OAA4B,EACC;IAC7B,MAAMwG,aAAa,GAAGD,IAA4B;IAClD,MAAMtG,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,MAAM,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAC9B5F,cAAc,CAACA,cAAc,CAAC,CAC9BwG,IAAI,CAACC,aAAa,EAAEzG,cAAc,EAAE,KAAK,CAAC,CAC1CC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,MAAM,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MAC3D,MAAM;QAAEwF;MAAS,CAAC,GAAG,MAAM,IAAI,CAACvF,MAAM,CAACyG,YAAY,CAAC;QAClD,GAAG1G,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChC8F,QAAQ,EAAE;UACRjB,EAAE,EAAE4B,aAAa,CAACG,GAAG;UACrBC,IAAI,EAAEJ;QACR,CAAC;QACD,GAAGQ,aAAa,CAAChH,OAAO;MAC1B,CAAC,CAAC;MACF,OAAOgD,UAAU,CAAC6C,QAAS,CAAC;IAC9B,CAAC,CAAC;EACJ;EAEA,MAAMoB,MAAMA,CACVlH,cAAsB,EACtBwG,IAAU,EACVvG,OAA8B,EACD;IAC7B,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,QAAQ,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAChC5F,cAAc,CAACA,cAAc,CAAC,CAC9BwG,IAAI,CAACA,IAAI,EAAExG,cAAc,EAAE,KAAK,CAAC,CACjCC,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,QAAQ,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MAC7D,MAAM;QAAEwF;MAAS,CAAC,GAAG,MAAM,IAAI,CAACvF,MAAM,CAAC4G,cAAc,CAAC;QACpD,GAAG7G,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChC8F,QAAQ,EAAE;UACRjB,EAAE,EAAE2B,IAAI,CAACI,GAAG;UACZC,IAAI,EAAEL;QACR,CAAC;QACD,GAAGY,eAAe,CAACnH,OAAO;MAC5B,CAAC,CAAC;MACF,OAAOgD,UAAU,CAAC6C,QAAS,CAAC;IAC9B,CAAC,CAAC;EACJ;EAEA,MAAMuB,MAAMA,CACVrH,cAAsB,EACtB8E,MAAc,EACd7E,OAA8B,EACQ;IACtC,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,QAAQ,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAChC5F,cAAc,CAACA,cAAc,CAAC,CAC9B8E,MAAM,CAACA,MAAM,CAAC,CACd7E,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,QAAQ,EAAE;MAAEL,cAAc;MAAE8E;IAAO,CAAC,CAAC,CAAC,MAAOxE,GAAG,IAAK;MACrE,MAAM;QAAEwF;MAAS,CAAC,GAAG,MAAM,IAAI,CAACvF,MAAM,CACnC+G,cAAc,CAAC;QACd,GAAGhH,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChCgG,UAAU,EAAElB,MAAM;QAClB,GAAGV,eAAe,CAACnE,OAAO;MAC5B,CAAC,CAAC,CACDmG,KAAK,CACJC,OAAO,CAACC,oBAAoB,EAAE,CAAC,CAAiC,CAClE,CAAC;MACH,OAAOR,QAAQ,GACV7C,UAAU,CAAC6C,QAAQ,CAAC,GACrB,IAAI;IACV,CAAC,CAAC;EACJ;;EA8CA;AACF;AACA;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAQEyB,KAAKA,CACHvH,cAAsB,EACtB8E,MAAc,EACdrD,kBAAwC,EACxCxB,OAA6B,EACwB;IACrD,IAAI2F,SAAS,CAACO,MAAM,IAAI,CAAC,EAAE;MACzB,OAAO,IAAI,CAACqB,kBAAkB,CAC5BxH,cAAc,EACd8E,MAAM,EACNrD,kBAAkB,EAClBxB,OACF,CAAC;IACH;IAEA,OAAO,IAAIwH,kCAAgB,CAAC;MAC1BzH,cAAc;MACd8E,MAAM;MACN4C,KAAK,EAAE,MAAAA,CAAOC,KAAK,EAAEC,WAAW,EAAE3H,OAAO,KAAK;QAC5C,MAAMwB,kBAAkB,GAAGmG,WAAW,CAACnG,kBAAkB,CAACG,GAAG,CAC3D,IAAI,CAACC,sBACP,CAAC;QAED,OAAO,IAAI,CAACxB,KAAK,CAAC,OAAO,EAAE;UAAEL;QAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;UAC5D,MAAMuH,MAAM,GAAG,MAAM,IAAI,CAACtH,MAAM,CAACuH,aAAa,CAAC;YAC7C,GAAGxH,GAAG;YACNG,gBAAgB,EAAEmH,WAAW,CAAC5H,cAAc;YAC5CuH,KAAK,EAAE;cACLvB,UAAU,EAAE4B,WAAW,CAAC9C,MAAM;cAC9BrD;YACF,CAAC;YACD,GAAGsG,cAAc,CAAC9H,OAAO;UAC3B,CAAC,CAAC;UAEF,OAAO4H,MAAM,CAAC/B,QAAQ,GAAG7C,UAAU,CAAC4E,MAAM,CAAC/B,QAAQ,CAAC,GAAG,IAAI;QAC7D,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,MAAc0B,kBAAkBA,CAG9BxH,cAAsB,EACtB8E,MAAc,EACdrD,kBAAmD,EACnDxB,OAA6B,EACS;IACtC,MAAM0B,qBAAqB,GAAGF,kBAAkB,oBAAlBA,kBAAkB,CAAEG,GAAG,CACnD,IAAI,CAACC,sBACP,CAAC;IAED,OAAO,IAAI,CAACxB,KAAK,CAAC,OAAO,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MAC5D,MAAMuH,MAAM,GAAG,MAAM,IAAI,CAACtH,MAAM,CAACuH,aAAa,CAAC;QAC7C,GAAGxH,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChCuH,KAAK,EAAE;UACLvB,UAAU,EAAElB,MAAM;UAClBrD,kBAAkB,EAAEE;QACtB,CAAC;QACD,GAAGoG,cAAc,CAAC9H,OAAO;MAC3B,CAAC,CAAC;MAEF,OAAO4H,MAAM,CAAC/B,QAAQ,GACjB7C,UAAU,CAAC4E,MAAM,CAAC/B,QAAQ,CAAC,GAC5B,IAAI;IACV,CAAC,CAAC;EACJ;;EAIA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAQEkC,SAASA,CACPhI,cAAsB,EACtBgE,OAAiB,EACjBvC,kBAAwC,EACxCxB,OAAiC,EACc;IAC/C,IAAI2F,SAAS,CAACO,MAAM,IAAI,CAAC,EAAE;MACzB,OAAO,IAAI,CAAC8B,sBAAsB,CAChCjI,cAAc,EACdgE,OAAO,EACPvC,kBAAkB,EAClBxB,OACF,CAAC;IACH;IAEA,OAAO,IAAIiI,sCAAoB,CAAC;MAC9BlI,cAAc;MACdgE,OAAO;MACP0D,KAAK,EAAE,MAAAA,CAAOC,KAAK,EAAEC,WAAW,EAAE3H,OAAO,KAAK;QAC5C,MAAMwB,kBAAkB,GAAGmG,WAAW,CAACnG,kBAAkB,CAACG,GAAG,CAC3D,IAAI,CAACC,sBACP,CAAC;QAED,OAAO,IAAI,CAACxB,KAAK,CAAC,WAAW,EAAE;UAAEL;QAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;UAChE,MAAM;YAAEiD;UAAQ,CAAC,GAAG,MAAM,IAAI,CAAChD,MAAM,CAAC4H,kBAAkB,CAAC;YACvD,GAAG7H,GAAG;YACNG,gBAAgB,EAAEmH,WAAW,CAAC5H,cAAc;YAC5CoI,OAAO,EAAER,WAAW,CAAC5D,OAAO,CAACpC,GAAG,CAAEkD,MAAM,KAAM;cAC5CkB,UAAU,EAAElB,MAAM;cAClBrD;YACF,CAAC,CAAC,CAAC;YACH,GAAG4G,kBAAkB,CAACpI,OAAO;UAC/B,CAAC,CAAC;UAEF,OAAOoE,YAAY,CAACL,OAAO,EAAET,OAAO,EAAG,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,MAAc0E,sBAAsBA,CAClCjI,cAAsB,EACtBgE,OAAiB,EACjBvC,kBAAmD,EACnDxB,OAAiC,EACL;IAC5B,MAAM0B,qBAAqB,GAAGF,kBAAkB,oBAAlBA,kBAAkB,CAAEG,GAAG,CACnD,IAAI,CAACC,sBACP,CAAC;IAED,OAAO,IAAI,CAACxB,KAAK,CAAC,WAAW,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MAChE,MAAM;QAAEiD;MAAQ,CAAC,GAAG,MAAM,IAAI,CAAChD,MAAM,CAAC4H,kBAAkB,CAAC;QACvD,GAAG7H,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChCoI,OAAO,EAAEpE,OAAO,CAACpC,GAAG,CAAEkD,MAAM,KAAM;UAChCkB,UAAU,EAAElB,MAAM;UAClBrD,kBAAkB,EAAEE;QACtB,CAAC,CAAC,CAAC;QACH,GAAG0G,kBAAkB,CAACpI,OAAO;MAC/B,CAAC,CAAC;MAEF,OAAOoE,YAAY,CAACL,OAAO,EAAET,OAAO,EAAG,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC,CAAC;EACJ;;EAkFA;;EAEA;AACF;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAOET,KAAKA,CACH9C,cAAsB,EACtBsI,YAAkC,EAClCrI,OAA6B,EACqC;IAClE;IACA,IAAIqI,YAAY,KAAK/C,SAAS,EAAE;MAC9B,OAAO,IAAI,CAACgD,kBAAkB,CAC5BvI,cAAc,EACdsI,YAAY,EACZrI,OACF,CAAC;IACH;;IAEA;IACA,MAAMuI,gBAAgB,GAAIC,WAAqB,IAAK;MAClD,IAAIA,WAAW,CAACtC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,IAAAhH,0BAAkB,EACtBC,gBAAQ,CAACsJ,gBAAgB,CAACC,YAAY,CAAC3I,cAAc,EAAEyI,WAAW,CACpE,CAAC;MACH;IACF,CAAC;IAED,OAAO,IAAIG,kCAAgB,CAAC;MAC1B5I,cAAc;MACd6I,OAAO,EAAE,MAAAA,CAAO9I,IAAI,EAAE+I,MAAM,EAAE7I,OAAO,KAAK;QACxCuI,gBAAgB,CAAC,CACf,GAAGM,MAAM,CAACC,gBAAgB,EAC1B,GAAG7I,YAAY,CAAC,CAAC,CACdF,cAAc,CAACA,cAAc,CAAC,CAC9BG,KAAK,CAAC,OAAO,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC1BE,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC,CACvB,CAAC;QAEF,OAAO,IAAI,CAAC3I,KAAK,CAAC,OAAO,EAAE;UAAEL;QAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;UAC5D,MAAM;YAAEwD;UAAW,CAAC,GAAG,MAAM,IAAI,CAACvD,MAAM,CAACwD,cAAc,CAAC;YACtD,GAAGzD,GAAG;YACNG,gBAAgB,EAAET,cAAc;YAChCrB,MAAM,EAAEmK,MAAM,CAAC9J,UAAU;YACzB,GAAGgE,aAAa,CAAC/C,OAAO;UAC1B,CAAC,CAAC;UACF,OAAO6D,UAAU;QACnB,CAAC,CAAC;MACJ,CAAC;MACDmF,UAAU,EAAE,MAAAA,CAAOlJ,IAAI,EAAE+I,MAAM,EAAEI,KAAK,EAAEjJ,OAAO,KAAK;QAAA,IAAAkJ,YAAA;QAClDX,gBAAgB,CAAC,CACf,GAAGM,MAAM,CAACC,gBAAgB,EAC1B,GAAG7I,YAAY,CAAC,CAAC,CACdF,cAAc,CAACA,cAAc,CAAC,CAC9BG,KAAK,CAAC,UAAU,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAC7BqJ,SAAS,CAACF,KAAK,CAAC,CAChBjJ,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC,CACvB,CAAC;QAEF,MAAM7D,KAAK,IAAAgE,YAAA,GAAGE,MAAM,CAACP,MAAM,CAACQ,OAAO,CAAC,CAACC,IAAI,CACtC1L,CAAC,IAAKA,CAAC,CAACuL,SAAS,KAAKF,KACzB,CAAC,qBAFaC,YAAA,CAEXhE,KAAK;QAER,MAAM1C,KAAuB,GAAGA,CAACC,cAAc,EAAEqC,gBAAgB,KAC/D,IAAI,CAAC1E,KAAK,CAAC,UAAU,EAAE;UAAEL,cAAc;UAAEkJ;QAAM,CAAC,CAAC,CAAC,MAAO5I,GAAG,IAAK;UAC/D,MAAM;YAAEkJ,cAAc;YAAE5G;UAAe,CAAC,GACtC,MAAM,IAAI,CAACrC,MAAM,CAACkJ,mBAAmB,CAAC;YACpC,GAAGnJ,GAAG;YACNG,gBAAgB,EAAET,cAAc;YAChC,GAAGgD,aAAa,CAAC/C,OAAO,CAAC;YACzB,GAAG8C,QAAQ,CAAC+F,MAAM,CAACzF,WAAW,EAAEX,cAAc,CAAC;YAC/C,IAAIsC,QAAQ,CAACtC,cAAc,CAAC,GACxB;cACE0G,SAAS,EAAEF,KAAK;cAChBvK,MAAM,EAAEmK,MAAM,CAAC9J,UAAU;cACzBmG,KAAK;cACLJ;YACF,CAAC,GACD,CAAC,CAAC;UACR,CAAC,CAAC;UACJ,OAAO,CAACyE,cAAc,EAAG5G,cAAc,CAAE;QAC3C,CAAC,CAAC;QAEJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CACjCqG,MAAM,CAACxF,UAAU,EACjBrD,OAAO,oBAAPA,OAAO,CAAE8E,gBACX,CAAC;QAED,OAAO,IAAI3B,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAEqG,MAAM,CAAC;MAC5D,CAAC;MACDY,MAAM,EAAE,MAAAA,CAAO3J,IAAI,EAAE+I,MAAM,EAAE7I,OAAO,KAAK;QACvCuI,gBAAgB,CAAC,CACf,GAAGM,MAAM,CAACC,gBAAgB,EAC1B,GAAG7I,YAAY,CAAC,CAAC,CACdF,cAAc,CAACA,cAAc,CAAC,CAC9BG,KAAK,CAAC,MAAM,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACzBE,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC,CACvB,CAAC;QAEF,MAAMvG,KAAkB,GAAGA,CAACC,cAAc,EAAEqC,gBAAgB,KAC1D,IAAI,CAAC1E,KAAK,CAAC,OAAO,EAAE;UAAEL;QAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;UACrD,MAAM;YAAEqC,SAAS;YAAEC;UAAe,CAAC,GACjC,MAAM,IAAI,CAACrC,MAAM,CAACsC,cAAc,CAAC;YAC/B,GAAGvC,GAAG;YACNG,gBAAgB,EAAET,cAAc;YAChC8C,KAAK,EAAE;cACL0B,MAAM,EAAEsE,MAAM,CAACa,eAAe;cAC9B,GAAG5G,QAAQ,CAAC+F,MAAM,CAACzF,WAAW,EAAEX,cAAc,CAAC;cAC/C,IAAIsC,QAAQ,CAACtC,cAAc,CAAC,GACxB;gBACE/D,MAAM,EAAEmK,MAAM,CAAC9J,UAAU;gBACzB4K,IAAI,EAAEP,MAAM,CAACP,MAAM,CAACQ,OAAO;cAC7B,CAAC,GACD,CAAC,CAAC;YACR,CAAC;YACDrD,iBAAiB,EAAE6C,MAAM,CAACe,QAAQ;YAClC,GAAG7G,aAAa,CAAC/C,OAAO,CAAC;YACzB,IAAI+E,QAAQ,CAACtC,cAAc,CAAC,GAAG;cAAEqC;YAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,IAAI+D,MAAM,CAACgB,iBAAiB,GACxB;cACEC,QAAQ,EAAElN,QAAQ,CAACmN,QAAQ,CAACC,MAAM;cAClCC,aAAa,EAAE;gBAAEC,IAAI,EAAErB,MAAM,CAACgB,iBAAiB,CAACK;cAAK;YACvD,CAAC,GACD,CAAC,CAAC,CAAC;YACP,IAAIrB,MAAM,CAACsB,WAAW,CAACjE,MAAM,GAAG,CAAC,GAC7B;cAAED,kBAAkB,EAAE4C,MAAM,CAACsB;YAAY,CAAC,GAC1C,CAAC,CAAC;UACR,CAAC,CAAC;UACJ,OAAO,CAACzH,SAAS,CAAEf,GAAG,CAACqB,UAAU,CAAC,EAAEL,cAAc,CAAE;QACtD,CAAC,CAAC;QACJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CACjCqG,MAAM,CAACxF,UAAU,EACjBrD,OAAO,oBAAPA,OAAO,CAAE8E,gBACX,CAAC;QAED,OAAO,IAAI3B,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAEqG,MAAM,CAAC;MAC5D;IACF,CAAC,CAAC;EACJ;EAEA,MAAcP,kBAAkBA,CAG9BvI,cAAsB,EACtB2D,OAA4B,EAC5B1D,OAA6B,EACsB;IAAA,IAAAoK,eAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,qBAAA;IACnD,MAAMC,gBAAgB,GAAGxK,YAAY,CAAC,CAAC,CACpCF,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC;IAEtB,IAAI0B,gBAAgB,CAACvE,MAAM,GAAG,CAAC,EAAE;MAC/B,MAAM,IAAAhH,0BAAkB,EACtBC,gBAAQ,CAACsJ,gBAAgB,CAACC,YAAY,CAAC3I,cAAc,EAAE0K,gBAAgB,CACzE,CAAC;IACH;IAEA,MAAMlI,KAAK,GAAG,EAAA6H,eAAA,GAAA1G,OAAO,CAACR,MAAM,qBAAdkH,eAAA,CAAgB7H,KAAK,OAAA8H,qBAAA,GAAI3G,OAAO,CAACgH,YAAY,qBAApBL,qBAAA,CAAsB9H,KAAK;IAClE,MAAMoI,MAAM,GAAG,EAAAL,gBAAA,GAAA5G,OAAO,CAACR,MAAM,qBAAdoH,gBAAA,CAAgBK,MAAM,KAAI,CAAC;IAC1C,MAAMrI,MAAM,IAAAiI,sBAAA,GAAG7G,OAAO,CAACgH,YAAY,qBAApBH,sBAAA,CAAsBjI,MAAM;IAC3C,MAAMqH,IAA4B,GAAG,CAACjG,OAAO,CAACiG,IAAI,IAAI,EAAE,EAAEhI,GAAG,CAAEiJ,CAAC,KAAM;MACpE,CAACA,CAAC,CAACzB,SAAS,GAAGyB,CAAC,CAAC1F,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG;IAC/C,CAAC,CAAC,CAAC;IACH,MAAMc,iBAAiB,GAAGhG,OAAO,aAAAwK,qBAAA,GAAPxK,OAAO,CAAEgG,iBAAiB,qBAA1BwE,qBAAA,CAA4B7I,GAAG,CAAEkJ,GAAG,KAAM;MAClE5B,KAAK,EAAE4B,GAAG,CAAC5B,KAAK;MAChB1G,KAAK,EAAEsI,GAAG,CAACtI;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAACnC,KAAK,CAAC,OAAO,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MAAA,IAAAyK,sBAAA;MAC5D,MAAM;QAAEpI,SAAS;QAAEC;MAAe,CAAC,GAAG,MAAM,IAAI,CAACrC,MAAM,CAACsC,cAAc,CAAC;QACrE,GAAGvC,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChC8C,KAAK,EAAE;UACL0B,MAAM,EAAEb,OAAO,CAACa,MAAM;UACtB,GAAGzB,QAAQ,CAACP,KAAK,EAAED,MAAM,IAAIqI,MAAM,CAAC;UACpC,IAAIrI,MAAM,KAAKgD,SAAS,GACpB;YACE5G,MAAM,EAAEgF,OAAO,CAAChF,MAAM;YACtBiL,IAAI,EAAEP,MAAM,CAACO,IAAI;UACnB,CAAC,GACD,CAAC,CAAC;QACR,CAAC;QACD3D,iBAAiB;QACjB,GAAGjD,aAAa,CAAC/C,OAAO,CAAC;QACzB,IAAIsC,MAAM,KAAKgD,SAAS,GACpB;UAAER,gBAAgB,EAAE9E,OAAO,oBAAPA,OAAO,CAAE8E;QAAiB,CAAC,GAC/C,CAAC,CAAC,CAAC;QACP,IAAI9E,OAAO,aAAA8K,sBAAA,GAAP9K,OAAO,CAAEiG,kBAAkB,aAA3B6E,sBAAA,CAA6B5E,MAAM,GACnC;UAAED,kBAAkB,EAAEjG,OAAO,CAACiG;QAAmB,CAAC,GAClD,CAAC,CAAC;MACR,CAAC,CAAC;MAEF,OAAO;QACLhD,KAAK,EAAEP,SAAS,CAAEf,GAAG,CAACqB,UAAU,CAAsC;QACtEL,cAAc,EAAEA;MAClB,CAAC;IACH,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;;EAGE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAOEoI,MAAMA,CACJhL,cAAsB,EACtBiL,aAAoC,EACpChL,OAA8B,EACsC;IACpE,IAAIgL,aAAa,KAAK1F,SAAS,EAAE;MAC/B,OAAO,IAAI,CAAC2F,mBAAmB,CAC7BlL,cAAc,EACdiL,aAAa,EACbhL,OACF,CAAC;IACH;IAEA,MAAMuI,gBAAgB,GAAIC,WAAqB,IAAK;MAClD,IAAIA,WAAW,CAACtC,MAAM,GAAG,CAAC,EAAE;QAC1B,MAAM,IAAAhH,0BAAkB,EACtBC,gBAAQ,CAACsJ,gBAAgB,CAACC,YAAY,CAAC3I,cAAc,EAAEyI,WAAW,CACpE,CAAC;MACH;IACF,CAAC;IAED,OAAO,IAAI0C,oCAAiB,CAAC;MAC3BnL,cAAc;MACd0H,KAAK,EAAE,MAAAA,CACLoB,MAAM,EACN7I,OAA4B,KACD;QAC3BuI,gBAAgB,CAAC,CACf,GAAGM,MAAM,CAACC,gBAAgB,EAC1B,GAAG7I,YAAY,CAAC,CAAC,CACdF,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC,CACvB,CAAC;QAEF,MAAMoC,UAAU,GAAGtC,MAAM,CAACuC,SAAS;QAEnC,MAAM5I,KAAkB,GAAIC,cAAc,IACxC,IAAI,CAACrC,KAAK,CAAC,QAAQ,EAAE;UAAEL,cAAc;UAAEoL;QAAW,CAAC,CAAC,CAAC,MAAO9K,GAAG,IAAK;UAClE,MAAMqD,OAAwC,GAAG;YAC/C,GAAGrD,GAAG;YACNG,gBAAgB,EAAET,cAAc;YAChCgL,MAAM,EAAE;cACNrM,MAAM,EAAEmK,MAAM,CAAC9J,UAAU;cACzB4K,IAAI,EAAEP,MAAM,CAACP,MAAM,CAACQ,OAAO,CAAC;cAC5B9E,MAAM,EAAEsE,MAAM,CAACa,eAAe;cAC9BqB,MAAM,EAAE;gBACNI,UAAU,EAAEtC,MAAM,CAACuC,SAAS;gBAC5BC,KAAK,EAAExC,MAAM,CAACyC,OAAO;gBACrBC,IAAI,EAAE1C,MAAM,CAAC2C;cACf,CAAC;cACD,GAAG1I,QAAQ,CAAC+F,MAAM,CAACzF,WAAW,EAAEX,cAAc;YAChD,CAAC;YACDuD,iBAAiB,EAAE6C,MAAM,CAACe,QAAQ;YAClC,GAAG7G,aAAa,CAAC/C,OAAO;UAC1B,CAAC;UAED,MAAM;YAAE0C,SAAS;YAAEC;UAAe,CAAC,GACjC,MAAM,IAAI,CAACrC,MAAM,CAACmL,eAAe,CAAC/H,OAAO,CAAC;UAC5C,OAAO,CAAChB,SAAS,CAAEf,GAAG,CAACqB,UAAU,CAAC,EAAEL,cAAc,CAAE;QACtD,CAAC,CAAC;QAEJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CAACqG,MAAM,CAACxF,UAAU,CAAC;QAEtD,OAAO,IAAIF,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAEqG,MAAM,CAAC;MAC5D;IACF,CAAC,CAAC;EACJ;EAEA,MAAcoC,mBAAmBA,CAG/BlL,cAAsB,EACtB2D,OAA6B,EAC7B1D,OAA8B,EACQ;IAAA,IAAA0L,gBAAA,EAAAC,sBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IACtC,MAAMrB,gBAAgB,GAAGxK,YAAY,CAAC,CAAC,CACpCF,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC;IAEtB,IAAI0B,gBAAgB,CAACvE,MAAM,GAAG,CAAC,EAAE;MAC/B,MAAM,IAAAhH,0BAAkB,EACtBC,gBAAQ,CAACsJ,gBAAgB,CAACC,YAAY,CAAC3I,cAAc,EAAE0K,gBAAgB,CACzE,CAAC;IACH;IAEA,MAAMlI,KAAK,GAAG,EAAAmJ,gBAAA,GAAAhI,OAAO,CAACR,MAAM,qBAAdwI,gBAAA,CAAgBnJ,KAAK,OAAAoJ,sBAAA,GAAIjI,OAAO,CAACgH,YAAY,qBAApBiB,sBAAA,CAAsBpJ,KAAK;IAClE,MAAMoI,MAAM,GAAG,EAAAiB,gBAAA,GAAAlI,OAAO,CAACR,MAAM,qBAAd0I,gBAAA,CAAgBjB,MAAM,KAAI,CAAC;IAC1C,MAAMrI,MAAM,IAAAuJ,sBAAA,GAAGnI,OAAO,CAACgH,YAAY,qBAApBmB,sBAAA,CAAsBvJ,MAAM;IAC3C,MAAM0D,iBAAiB,GAAGhG,OAAO,aAAA8L,sBAAA,GAAP9L,OAAO,CAAEgG,iBAAiB,qBAA1B8F,sBAAA,CAA4BnK,GAAG,CAAEkJ,GAAG,KAAM;MAClE5B,KAAK,EAAE4B,GAAG,CAAC5B,KAAK;MAChB1G,KAAK,EAAEsI,GAAG,CAACtI;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAACnC,KAAK,CAAC,QAAQ,EAAE;MAAEL,cAAc;MAAEgL,MAAM,EAAErH,OAAO,CAACqH;IAAO,CAAC,CAAC,CACrE,MAAO1K,GAAG,IAAK;MAAA,IAAA0L,aAAA;MACb,MAAM;QAAErJ,SAAS;QAAEC;MAAe,CAAC,GAAG,MAAM,IAAI,CAACrC,MAAM,CAACmL,eAAe,CACrE;QACE,GAAGpL,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChCgL,MAAM,EAAE;UACNxG,MAAM,EAAEb,OAAO,CAACa,MAAM;UACtB7F,MAAM,EAAEgF,OAAO,CAAChF,MAAM;UACtBiL,IAAI,GAAAoC,aAAA,GAAErI,OAAO,CAACiG,IAAI,qBAAZoC,aAAA,CAAcpK,GAAG,CAAEiJ,CAAC,KAAM;YAC9BzB,SAAS,EAAEyB,CAAC,CAACzB,SAAS;YACtBjE,KAAK,EAAE0F,CAAC,CAAC1F;UACX,CAAC,CAAC,CAAC;UACH6F,MAAM,EAAErH,OAAO,CAACqH,MAAgC;UAChD,GAAGjI,QAAQ,CAACP,KAAK,EAAED,MAAM,IAAIqI,MAAM;QACrC,CAAC;QACD3E,iBAAiB;QACjB,GAAGjD,aAAa,CAAC/C,OAAO;MAC1B,CACF,CAAC;MAED,OAAO;QACLiD,KAAK,EAAEP,SAAS,CAAEf,GAAG,CAACqB,UAAU,CAAsB;QACtDL,cAAc,EAAEA;MAClB,CAAC;IACH,CACF,CAAC;EACH,CAAC,CAyCD;EAIA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAOEqJ,SAASA,CACPjM,cAAsB,EACtB0D,QAAuC,EACvCzD,OAAiC,EAC6B;IAC9D,IAAIyD,QAAQ,KAAK6B,SAAS,EAAE;MAC1B,OAAO,IAAI,CAAC2G,sBAAsB,CAChClM,cAAc,EACd0D,QAAQ,EACRzD,OACF,CAAC;IACH;IAEA,OAAO,IAAIkM,0CAAoB,CAAC;MAC9BnM,cAAc;MACd0H,KAAK,EAAE,MAAAA,CAAO3H,IAAI,EAAE+I,MAAM,EAAE7I,OAAO,KAAK;QACtC,MAAMyK,gBAAgB,GAAG,CACvB,GAAG5B,MAAM,CAACC,gBAAgB,EAC1B,GAAG7I,YAAY,CAAC,CAAC,CACdC,KAAK,CAAC,KAAK,EAAEJ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACxBC,cAAc,CAACA,cAAc,CAAC,CAC9BC,OAAO,CAACA,OAAO,CAAC,CAChB+I,iBAAiB,CAAC,CAAC,CACvB;QAED,IAAI0B,gBAAgB,CAACvE,MAAM,GAAG,CAAC,EAAE;UAC/B,MAAM,IAAAhH,0BAAkB,EACtBC,gBAAQ,CAACgN,oBAAoB,CAACC,gBAAgB,CAC5CrM,cAAc,EACd0K,gBACF,CACF,CAAC;QACH;QAEA,MAAMjI,KAAuC,GAAGA,CAC9CC,cAAc,EACdqC,gBAAgB,KAEhB,IAAI,CAAC1E,KAAK,CAAC,WAAW,EAAE;UAAEL;QAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;UACzD,MAAMgM,WAAW,GAAIpD,KAAc,IACjCA,KAAK,GAAG;YAAEqD,aAAa,EAAErD;UAAM,CAAC,GAAG3D,SAAS;UAE9C,MAAM;YAAEhC,OAAO;YAAEX;UAAe,CAAC,GAC/B,MAAM,IAAI,CAACrC,MAAM,CAACiD,kBAAkB,CAAC;YACnC,GAAGlD,GAAG;YACNG,gBAAgB,EAAET,cAAc;YAChC,GAAG+C,QAAQ,CAAC+F,MAAM,CAACzF,WAAW,EAAEX,cAAc,CAAC;YAC/C,GAAGM,aAAa,CAAC/C,OAAO,CAAC;YACzB,IAAI+E,QAAQ,CAACtC,cAAc,CAAC,GACxB;cACE8J,aAAa,EAAE1D,MAAM,CAAC9J,UAAU;cAChCyN,WAAW,EAAE;gBACXC,cAAc,EAAE5D,MAAM,CAAC6D,OAAO;gBAC9BC,UAAU,EAAE9D,MAAM,CAAC+D,UAAU,CAACjL,GAAG,CAAEkL,CAAC,KAAM;kBACxCC,eAAe,EAAED,CAAC,CAACE,IAAI;kBACvBC,OAAO,EAAEX,WAAW,CAACQ,CAAC,CAACI,GAAG,CAAC;kBAC3BC,GAAG,EAAEb,WAAW,CAACQ,CAAC,CAACK,GAAG,CAAC;kBACvBC,GAAG,EAAEd,WAAW,CAACQ,CAAC,CAACM,GAAG,CAAC;kBACvBC,GAAG,EAAEf,WAAW,CAACQ,CAAC,CAACO,GAAG,CAAC;kBACvBC,SAAS,EAAER,CAAC,CAACS,KAAK,GAAG,CAAC,CAAC,GAAGhI;gBAC5B,CAAC,CAAC;cACJ,CAAC;cACDiI,WAAW,EAAE1E,MAAM,CAAC2E,UAAU;cAC9B7D,IAAI,EAAEP,MAAM,CAACP,MAAM,CAACQ,OAAO,CAAC;cAC5BvE;YACF,CAAC,GACD,CAAC,CAAC;UACR,CAAC,CAAC;UACJ,OAAO,CAACtB,mBAAmB,CAACF,OAAQ,CAAC,EAAEX,cAAc,CAAE;QACzD,CAAC,CAAC;QAEJ,MAAM,CAACM,KAAK,EAAEC,MAAM,CAAC,GAAG,MAAMV,KAAK,CACjCqG,MAAM,CAACxF,UAAU,EACjBrD,OAAO,oBAAPA,OAAO,CAAE8E,gBACX,CAAC;QAED,OAAO,IAAI3B,oCAAiB,CAACF,KAAK,EAAEC,MAAM,EAAEV,KAAK,EAAEqG,MAAM,CAAC;MAC5D;IACF,CAAC,CAAC;EACJ;EAsCA,MAAcoD,sBAAsBA,CAClClM,cAAsB,EACtB0D,QAAsC,EACtCzD,OAAiC,EACU;IAC3C,MAAM;MAAEsD,OAAO;MAAEX;IAAe,CAAC,GAAG,MAAM,IAAI,CAAC8K,iBAAiB,CAC9D1N,cAAc,EACd0D,QAAQ,EACRzD,OACF,CAAC;IAED,OAAO;MACLsD,OAAO,EAAEA,OAAmB;MAC5BX,cAAc,EAAEA;IAClB,CAAC;EACH;EA6BA,MAAM+K,QAAQA,CACZ3N,cAAsB,EACtBoJ,SAAiB,EACjBnJ,OAAgC,EACS;IAAA,IAAA2N,eAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,sBAAA;IACzC,MAAM7N,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,UAAU,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAClC5F,cAAc,CAACA,cAAc,CAAC,CAC9BoJ,SAAS,CAACA,SAAS,CAAC,CACpBnJ,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,MAAMoC,KAAK,GAAG,CAAAvC,OAAO,aAAA2N,eAAA,GAAP3N,OAAO,CAAEkD,MAAM,qBAAfyK,eAAA,CAAiBpL,KAAK,MAAIvC,OAAO,aAAA4N,qBAAA,GAAP5N,OAAO,CAAE0K,YAAY,qBAArBkD,qBAAA,CAAuBrL,KAAK;IACpE,MAAMoI,MAAM,GAAG,CAAA3K,OAAO,aAAA6N,gBAAA,GAAP7N,OAAO,CAAEkD,MAAM,qBAAf2K,gBAAA,CAAiBlD,MAAM,KAAI,CAAC;IAC3C,MAAMrI,MAAM,GAAGtC,OAAO,aAAA8N,sBAAA,GAAP9N,OAAO,CAAE0K,YAAY,qBAArBoD,sBAAA,CAAuBxL,MAAM;IAE5C,OAAO,IAAI,CAAClC,KAAK,CAAC,UAAU,EAAE;MAAEL,cAAc;MAAEkJ,KAAK,EAAEE;IAAU,CAAC,CAAC,CACjE,MAAO9I,GAAG,IAAK;MACb,MAAM;QAAEkJ,cAAc;QAAE5G;MAAe,CAAC,GACtC,MAAM,IAAI,CAACrC,MAAM,CAACkJ,mBAAmB,CAAC;QACpC,GAAGnJ,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChC,GAAGgD,aAAa,CAAC/C,OAAO,CAAC;QACzB,GAAG8C,QAAQ,CAACP,KAAK,EAAED,MAAM,IAAIqI,MAAM,CAAC;QACpC,IAAIrI,MAAM,KAAKgD,SAAS,GACpB;UACE6D,SAAS;UACTzK,MAAM,EAAEsB,OAAO,oBAAPA,OAAO,CAAEtB,MAAM;UACvBwG,KAAK,EAAElF,OAAO,oBAAPA,OAAO,CAAEkF,KAAK;UACrBJ,gBAAgB,EAAE9E,OAAO,oBAAPA,OAAO,CAAE8E;QAC7B,CAAC,GACD,CAAC,CAAC;MACR,CAAC,CAAC;MAEJ,OAAO;QACLiJ,MAAM,EAAExE,cAAe;QACvB5G,cAAc,EAAEA;MAClB,CAAC;IACH,CACF,CAAC;EACH;EA0DA,MAAcqL,WAAWA,CACvB3N,GAA2D,EAC3DN,cAAsB,EACtBkD,KAA6B,EAC7BjD,OAAgC,EAChCiO,gBAAyB,GAAG,IAAI,EACJ;IAC5B,MAAMvK,OAA4C,GAAG;MACnD,GAAGrD,GAAG;MACNG,gBAAgB,EAAET,cAAc;MAChC2C,SAAS,EAAEO,KAAK,CAACtB,GAAG,CAAEiF,IAAI,KAAM;QAC9BhC,EAAE,EAAEgC,IAAI,CAACD,GAAG;QACZC;MACF,CAAC,CAAC,CAAC;MACH,GAAGnG,SAAS,CAACT,OAAO,CAAC;MACrBkO,cAAc,EAAElO,OAAO,oBAAPA,OAAO,CAAEkO;IAC3B,CAAC;IACD,MAAM;MAAE5K;IAAQ,CAAC,GAAG,OAAO2K,gBAAgB,GACvC,IAAI,CAAC3N,MAAM,CAAC6N,iBAAiB,CAACzK,OAAO,CAAC,GACtC,IAAI,CAACpD,MAAM,CAAC8N,mBAAmB,CAAC1K,OAAO,CAAC,CAAC;IAC7C,MAAM2K,WAAW,GAAGJ,gBAAgB,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC;IACvD,OAAO7J,YAAY,CAACnB,KAAK,EAAEK,OAAO,EAAG+K,WAAW,CAAC;EACnD;EAEA,MAAMC,UAAUA,CACdvO,cAAsB,EACtBkD,KAAa,EACbjD,OAAkC,EACN;IAC5B,MAAMuO,cAAc,GAAGtL,KAA+B;IACtD,MAAMhD,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,YAAY,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CACpC1C,KAAK,CAACsL,cAAc,EAAExO,cAAc,CAAC,CACrCyO,iBAAiB,CAACxO,OAAO,CAAC,CAC1BD,cAAc,CAACA,cAAc,CAAC,CAC9BI,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,YAAY,EAAE;MAAEL,cAAc;MAAEC;IAAQ,CAAC,CAAC,CAC1D,MAAOyO,KAAK,IACV,IAAI,CAACT,WAAW,CACdS,KAAK,EACL1O,cAAc,EACdwO,cAAc,EACdvO,OAAO,EACP,CAAAA,OAAO,oBAAPA,OAAO,CAAEiO,gBAAgB,KAAI,KAC/B,CACJ,CAAC;EACH;EAEA,MAAMS,QAAQA,CACZ3O,cAAsB,EACtBkD,KAAa,EACbjD,OAAgC,EACJ;IAC5B,MAAMuO,cAAc,GAAGtL,KAA+B;IACtD,MAAMhD,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,UAAU,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAClC6I,iBAAiB,CAACxO,OAAO,CAAC,CAC1BD,cAAc,CAACA,cAAc,CAAC,CAC9BkD,KAAK,CAACsL,cAAc,EAAExO,cAAc,CAAC,CACrCI,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,UAAU,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAC1D,IAAI,CAAC2N,WAAW,CAAC3N,GAAG,EAAEN,cAAc,EAAEwO,cAAc,EAAEvO,OAAO,CAC/D,CAAC;EACH;EAEA,MAAM2O,UAAUA,CACd5O,cAAsB,EACtBkD,KAAa,EACbjD,OAAkC,EACN;IAC5B,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,YAAY,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CACpCiJ,iBAAiB,CAAC5O,OAAO,CAAC,CAC1BD,cAAc,CAACA,cAAc,CAAC,CAC9BkD,KAAK,CAACA,KAAK,EAAElD,cAAc,CAAC,CAC5BI,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,YAAY,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAAK;MACjE,MAAM;QAAEiD;MAAQ,CAAC,GAAG,MAAM,IAAI,CAAChD,MAAM,CAACuO,mBAAmB,CAAC;QACxD,GAAGxO,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChC2C,SAAS,EAAEO,KAAK,CAACtB,GAAG,CAAEiF,IAAI,KAAM;UAC9BhC,EAAE,EAAEgC,IAAI,CAACD,GAAG;UACZC;QACF,CAAC,CAAC,CAAC;QACH,GAAGkI,mBAAmB,CAAC9O,OAAO;MAChC,CAAC,CAAC;MACF;MACA,OAAOoE,YAAY,CAACnB,KAAK,EAAEK,OAAO,EAAG,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC;EACJ;EAoGA,MAAMyL,oBAAoBA,CACxBhP,cAAsB,EACtBiP,aAAkD,EAClD/J,sBAA8B,EAC9BjF,OAA4C,EACsB;IAClE,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,sBAAsB,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAC9C5F,cAAc,CAACA,cAAc,CAAC,CAC9BkP,mBAAmB,CAACC,OAAO,CAACF,aAAa,CAAC,CAAC,CAC3C9M,gBAAgB,CAAC+C,sBAAsB,EAAE,wBAAwB,CAAC,CAClEjF,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,MAAMgP,gBAAgB,GAAGD,OAAO,CAACF,aAAa,CAAC,CAACrN,GAAG,CAACkD,MAAM,CAAC;IAC3D,OAAO,IAAI,CAACzE,KAAK,CAAC,sBAAsB,EAAE;MACxCL,cAAc;MACdoP,gBAAgB;MAChBnP,OAAO;MACPiF;IACF,CAAC,CAAC,CAAC,MAAO5E,GAAG,IAAK;MAChB,MAAM;QAAEiD,OAAO;QAAEX;MAAe,CAAC,GAC/B,MAAM,IAAI,CAACrC,MAAM,CAACgE,wBAAwB,CAAC;QACzC,GAAGjE,GAAG;QACN,GAAG0C,aAAa,CAAC/C,OAAO,CAAC;QACzBQ,gBAAgB,EAAET,cAAc;QAChCoP,gBAAgB;QAChBlK,sBAAsB;QACtBC,KAAK,EAAElF,OAAO,oBAAPA,OAAO,CAAEkF,KAAK;QACrBhC,MAAM,EAAElD,OAAO,oBAAPA,OAAO,CAAEkD,MAAM;QACvBwH,YAAY,EAAE1K,OAAO,oBAAPA,OAAO,CAAE0K,YAAY;QACnCnG,MAAM,EAAEvE,OAAO,oBAAPA,OAAO,CAAEuE,MAAM;QACvBO,gBAAgB,EAAE9E,OAAO,oBAAPA,OAAO,CAAE8E;MAC7B,CAAC,CAAC;MAEJ,OAAO;QACLxB,OAAO,EAAE8L,mBAAmB,CAAC9L,OAAO,IAAI,EAAE,CAAC;QAC3CX,cAAc,EAAEA;MAClB,CAAC;IACH,CAAC,CAAC;EACJ;EAiBA,MAAM0M,eAAeA,CACnBtP,cAAsB,EACtBuP,UAAe,EACfC,UAAgB,EAChBC,KAAW,EACXxP,OAAa,EACE;IACf,IAAIyP,IAAwB;IAC5B,IAAIC,IAAoB;IACxB,IAAIC,IAAsB;IAE1B,IAAI,OAAOL,UAAU,KAAK,QAAQ,EAAE;MAClC,MAAMM,MAAyB,GAAGV,OAAO,CAACM,KAAK,CAAC;MAChDC,IAAI,GAAGG,MAAM,CAACjO,GAAG,CAAElE,CAAC,KAAM;QACxBoS,gBAAgB,EAAEP,UAAU;QAC5BQ,IAAI,EAAEP,UAA6B;QACnCC,KAAK,EAAE/R;MACT,CAAC,CAAC,CAAC;MACHiS,IAAI,GAAG1P,OAAO;MACd2P,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,MAAM;MACLF,IAAI,GAAGH,UAAU;MACjBI,IAAI,GAAGH,UAAU;MACjBI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACf;IAEA,MAAM1P,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,iBAAiB,EAAEyF,SAAS,EAAE,GAAGgK,IAAI,CAAC,CAC5C5P,cAAc,CAACA,cAAc,CAAC,CAC9BgQ,UAAU,CAACN,IAAI,CAAC,CAChBzP,OAAO,CAAC0P,IAAI,CAAC,CACbvP,iBAAiB,CAAC,CAAC;IAEtB,MAAM,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;MAAEL;IAAe,CAAC,CAAC,CAAC,MAAOM,GAAG,IAChE,IAAI,CAACC,MAAM,CAAC0P,4BAA4B,CAAC;MACvC,GAAG3P,GAAG;MACNG,gBAAgB,EAAET,cAAc;MAChCkQ,kBAAkB,EAAER,IAAI,CAAC9N,GAAG,CAAElE,CAAC,KAAM;QACnCwH,sBAAsB,EAAExH,CAAC,CAACoS,gBAAgB;QAC1C7K,eAAe,EAAEH,MAAM,CAACpH,CAAC,CAACqS,IAAI,CAAC;QAC/BI,gBAAgB,EAAErL,MAAM,CAACpH,CAAC,CAAC+R,KAAK;MAClC,CAAC,CAAC,CAAC;MACH,GAAG/O,SAAS,CAACiP,IAAI;IACnB,CAAC,CACH,CAAC;EACH;EAEA,MAAMS,iBAAiBA,CACrBpQ,cAAsB,EACtB2E,qBAA6B,EAC7BoL,IAA+B,EAC/BN,KAAgE,EAChExP,OAAwB,EACT;IACf,MAAM4P,MAAM,GAAGV,OAAO,CAACM,KAAK,CAAC;IAC7B,MAAMvP,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,mBAAmB,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAC3C5F,cAAc,CAACA,cAAc,CAAC,CAC9BmC,gBAAgB,CAACwC,qBAAqB,EAAE,uBAAuB,CAAC,CAChEC,kBAAkB,CAACmL,IAAI,CAAC,CACxBb,mBAAmB,CAACW,MAAM,CAAC,CAC3B5P,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,MAAM,IAAI,CAACC,KAAK,CAAC,mBAAmB,EAAE;MACpCL,cAAc;MACd2E;IACF,CAAC,CAAC,CAAC,MAAOrE,GAAG,IACX,IAAI,CAACC,MAAM,CAAC8P,yBAAyB,CAAC;MACpC,GAAG/P,GAAG;MACNG,gBAAgB,EAAET,cAAc;MAChCkF,sBAAsB,EAAEP,qBAAqB;MAC7CM,eAAe,EAAEH,MAAM,CAACiL,IAAI,CAAC;MAC7BO,oBAAoB,EAAET,MAAM,CAACjO,GAAG,CAACkD,MAAM,CAAC;MACxC,GAAGpE,SAAS,CAACT,OAAO;IACtB,CAAC,CACH,CAAC;EACH;EAEA,MAAMsQ,eAAeA,CACnBvQ,cAAsB,EACtB2E,qBAA6B,EAC7BoL,IAA+B,EAC/BN,KAAgE,EAChExP,OAAwB,EACT;IACf,MAAM4P,MAAM,GAAGV,OAAO,CAACM,KAAK,CAAC;IAC7B,MAAMvP,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,iBAAiB,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CACzC5F,cAAc,CAACA,cAAc,CAAC,CAC9B4E,kBAAkB,CAACmL,IAAI,CAAC,CACxBS,yBAAyB,CAACX,MAAM,CAAC,CACjC1N,gBAAgB,CAACwC,qBAAqB,EAAE,uBAAuB,CAAC,CAChE1E,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,MAAM,IAAI,CAACC,KAAK,CAAC,iBAAiB,EAAE;MAClCL,cAAc;MACd2E;IACF,CAAC,CAAC,CAAC,MAAOrE,GAAG,IACX,IAAI,CAACC,MAAM,CAACkQ,4BAA4B,CAAC;MACvC,GAAGnQ,GAAG;MACNG,gBAAgB,EAAET,cAAc;MAChCkQ,kBAAkB,EAAEL,MAAM,CAACjO,GAAG,CAAElE,CAAC,KAAM;QACrCwH,sBAAsB,EAAEP,qBAAqB;QAC7CM,eAAe,EAAEH,MAAM,CAACiL,IAAI,CAAC;QAC7BI,gBAAgB,EAAErL,MAAM,CAACpH,CAAC;MAC5B,CAAC,CAAC,CAAC;MACH,GAAGgD,SAAS,CAACT,OAAO;IACtB,CAAC,CACH,CAAC;EACH;EAEA,MAAMyQ,YAAYA,CAChB1Q,cAAsB,EACtB2E,qBAA6B,EAC7BoL,IAA+B,EAC/BN,KAAiC,EACjCxP,OAAoC,EAClB;IAClB,MAAMC,YAAY,CAAC,CAAC,CACjBC,KAAK,CAAC,cAAc,EAAEyF,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CACtC5F,cAAc,CAACA,cAAc,CAAC,CAC9B4E,kBAAkB,CAACmL,IAAI,CAAC,CACxBnL,kBAAkB,CAAC6K,KAAK,CAAC,CACzBxP,OAAO,CAACA,OAAO,CAAC,CAChBG,iBAAiB,CAAC,CAAC;IAEtB,OAAO,IAAI,CAACC,KAAK,CAAC,cAAc,EAAE;MAChCL,cAAc;MACd2E;IACF,CAAC,CAAC,CAAC,MAAOrE,GAAG,IAAK;MAChB,MAAM;QAAEoQ;MAAa,CAAC,GAAG,MAAM,IAAI,CAACnQ,MAAM,CAACoQ,oBAAoB,CAAC;QAC9D,GAAGrQ,GAAG;QACNG,gBAAgB,EAAET,cAAc;QAChCkF,sBAAsB,EAAEP,qBAAqB;QAC7CM,eAAe,EAAEH,MAAM,CAACiL,IAAI,CAAC;QAC7BI,gBAAgB,EAAErL,MAAM,CAAC2K,KAAK,CAAC;QAC/B,GAAGzM,aAAa,CAAC/C,OAAO,CAAC;QACzB2Q,cAAc,EAAE3Q,OAAO,oBAAPA,OAAO,CAAE2Q;MAC3B,CAAC,CAAC;MACF,OAAOF,YAAY;IACrB,CAAC,CAAC;EACJ;EAEQrQ,KAAKA,CACXO,MAAc,EACd+O,IAAY,EAME;IACd,OAAO,MAAOkB,EAAE,IAAK;MACnB,MAAMlR,SAAS,GAAG,MAAMxB,GAAG,CAAC,IAAI,CAACwB,SAAS,CAAC;MAC3C,MAAMW,GAAG,GAAG;QAAEoO,KAAK,EAAE/O,SAAS;QAAED,WAAW,EAAE,IAAI,CAACA;MAAY,CAAC;MAC/D,IAAI,IAAI,CAACE,MAAM,EAAE;QACf,OAAO,IAAI,CAACA,MAAM,CAAC,cAAcgB,MAAM,EAAE,EAAE;UACzC,GAAG+O,IAAI;UACPhQ,SAAS;UACTD,WAAW,EAAE,IAAI,CAACA;QACpB,CAAC,CAAC,CAAC,MAAMmR,EAAE,CAACvQ,GAAG,CAAC,CAAC;MACnB;MACA,OAAOuQ,EAAE,CAACvQ,GAAG,CAAC;IAChB,CAAC;EACH;AACF;AAACwQ,OAAA,CAAAxR,UAAA,GAAAA,UAAA;AAED,SAASQ,QAAQA,CACf+Q,EAAyC,EACnB;EACtB,OAAO,UAAU,GAAG9Q,IAAI,EAAE;IACxB,OAAO8Q,EAAE,CAACjL,SAAS,EAAE,GAAG7F,IAAI,CAAC;EAC/B,CAAC;AACH;AAEA,SAASgI,cAAcA,CAAC9H,OAA6B,EAAE;EACrD,OAAO;IACL8Q,aAAa,EAAE9Q,OAAO,oBAAPA,OAAO,CAAE8Q,aAAa;IACrC,GAAGC,aAAa,CAAC/Q,OAAO,oBAAPA,OAAO,CAAEgR,UAAU,CAAC;IACrC,GAAGC,gBAAgB,CAACjR,OAAO,oBAAPA,OAAO,CAAEkR,SAAS;EACxC,CAAC;AACH;AAEA,SAAS9I,kBAAkBA,CAACpI,OAAiC,EAAE;EAC7D,OAAO;IACL,GAAGS,SAAS,CAACT,OAAO,CAAC;IACrB,GAAGiR,gBAAgB,CAACjR,OAAO,oBAAPA,OAAO,CAAEkR,SAAS;EACxC,CAAC;AACH;AAEA,SAASjP,4BAA4BA,CACnCjC,OAA2C,EAC3C;EACA,OAAOmR,cAAc,CAACnR,OAAO,CAAC;AAChC;AAEA,SAAS+B,2BAA2BA,CAClC/B,OAA0C,EAC1C;EACA,OAAOmR,cAAc,CAACnR,OAAO,CAAC;AAChC;AAEA,SAASmR,cAAcA,CAACnR,OAAqB,EAAE;EAC7C,OAAO;IACL8Q,aAAa,EAAE9Q,OAAO,oBAAPA,OAAO,CAAE8Q,aAAa;IACrC,GAAGC,aAAa,CAAC/Q,OAAO,oBAAPA,OAAO,CAAEgR,UAAU;EACtC,CAAC;AACH;AAEA,SAASnK,eAAeA,CAAC7G,OAA8B,EAAE;EACvD,OAAO;IACL,GAAGS,SAAS,CAACT,OAAO,CAAC;IACrBoR,sBAAsB,EAAEpR,OAAO,oBAAPA,OAAO,CAAEgG,iBAAiB;IAClDkI,cAAc,EAAElO,OAAO,oBAAPA,OAAO,CAAEkO;EAC3B,CAAC;AACH;AAEA,SAASlH,aAAaA,CAAChH,OAA4B,EAAE;EACnD,OAAO;IACL,GAAGS,SAAS,CAACT,OAAO,CAAC;IACrBoR,sBAAsB,EAAEpR,OAAO,oBAAPA,OAAO,CAAEgG,iBAAiB;IAClDkI,cAAc,EAAElO,OAAO,oBAAPA,OAAO,CAAEkO;EAC3B,CAAC;AACH;AAEA,SAAS/G,eAAeA,CAACnH,OAA8B,EAAE;EACvD,OAAO;IACL,GAAGS,SAAS,CAACT,OAAO,CAAC;IACrBoR,sBAAsB,EAAEpR,OAAO,oBAAPA,OAAO,CAAEgG,iBAAiB;IAClDkI,cAAc,EAAElO,OAAO,oBAAPA,OAAO,CAAEkO,cAAc;IACvC,GAAG+C,gBAAgB,CAACjR,OAAO,oBAAPA,OAAO,CAAEkR,SAAS;EACxC,CAAC;AACH;AAEA,SAASpC,mBAAmBA,CAAC9O,OAAkC,EAAE;EAC/D,OAAO;IACL,GAAGS,SAAS,CAACT,OAAO,CAAC;IACrBkO,cAAc,EAAElO,OAAO,oBAAPA,OAAO,CAAEkO,cAAc;IACvC,GAAG+C,gBAAgB,CAACjR,OAAO,oBAAPA,OAAO,CAAEkR,SAAS;EACxC,CAAC;AACH;AAEA,SAASzQ,SAASA,CAACiP,IAAqB,EAAE;EACxC,IAAI,CAACA,IAAI,EAAE;IACT,OAAOpK,SAAS;EAClB;EACA,MAAM+L,GAAG,GAAG;IACVP,aAAa,EAAEpB,IAAI,CAACoB,aAAa;IACjCQ,UAAU,EAAE5B,IAAI,CAAC4B,UAAU;IAC3B,GAAGP,aAAa,CAACrB,IAAI,oBAAJA,IAAI,CAAEsB,UAAU;EACnC,CAAC;EACD,IAAI1S,MAAM,CAACiT,OAAO,CAACF,GAAG,CAAC,CAACG,KAAK,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC,KAAKnM,SAAS,CAAC,EAAE;IAC1D,OAAOA,SAAS;EAClB;EACA,OAAO+L,GAAG;AACZ;AAEA,SAAStO,aAAaA,CAAC/C,OAA4B,EAAE;EACnD,OAAO;IACL8Q,aAAa,EAAE9Q,OAAO,oBAAPA,OAAO,CAAE8Q,aAAa;IACrCQ,UAAU,EAAEtR,OAAO,oBAAPA,OAAO,CAAEsR,UAAU;IAC/B,GAAGP,aAAa,CAAC/Q,OAAO,oBAAPA,OAAO,CAAEgR,UAAU,CAAC;IACrCL,cAAc,EAAE3Q,OAAO,oBAAPA,OAAO,CAAE2Q,cAAc;IACvCe,QAAQ,EAAE1R,OAAO,oBAAPA,OAAO,CAAE0R;EACrB,CAAC;AACH;AAEA,SAAST,gBAAgBA,CAACC,SAA8B,EAAE;EACxD,OAAOA,SAAS,IAAI5L,SAAS,GACzB;IACE4L,SAAS,EAAE;MACTxS,MAAM,EAAED,YAAY,CAACyS,SAAS;IAChC;EACF,CAAC,GACD;IAAEA,SAAS,EAAE5L;EAAU,CAAC;AAC9B;AAEA,SAASnB,eAAeA,CAACnE,OAA8B,EAAE;EACvD,OAAO;IACL,GAAGS,SAAS,CAACT,OAAO,CAAC;IACrB,GAAGiR,gBAAgB,CAACjR,OAAO,oBAAPA,OAAO,CAAEkR,SAAS;EACxC,CAAC;AACH;AAEA,SAASH,aAAaA,CAACC,UAAoB,EAAE;EAC3C,OAAOA,UAAU,KAAK1L,SAAS,GAC3B;IAAEqM,oBAAoB,EAAE;MAAEC,iBAAiB,EAAEZ;IAAW;EAAE,CAAC,GAC3D,CAAC,CAAC;AACR;AAEA,SAAShO,UAAUA,CAACuD,IAAuB,EAAe;EACxD,OAAOA,IAAI,CAACK,IAAI;AAClB;AAEA,SAAS9D,QAAQA,CAACP,KAAyB,EAAEE,cAA+B,EAAE;EAC5E,OAAO,OAAOA,cAAc,KAAK,QAAQ,GACrC;IACEiI,YAAY,EAAE;MACZnI,KAAK;MACLD,MAAM,EAAEG;IACV;EACF,CAAC,GACDF,KAAK,KAAK+C,SAAS,IAAI7C,cAAc,GAAG,CAAC,GACzC;IACES,MAAM,EAAE;MACNX,KAAK;MACLoI,MAAM,EAAElI;IACV;EACF,CAAC,GACD,CAAC,CAAC;AACR;AAEA,SAAS2G,MAAMA,CAACC,OAA+B,EAAsB;EACnE,OAAOA,OAAO,CAAC1H,GAAG,CAAEkQ,UAAU,IAAK;IACjC,MAAM,CAAC,CAAC1I,SAAS,EAAEQ,IAAI,CAAC,CAAC,GAAGrL,MAAM,CAACiT,OAAO,CAACM,UAAU,CAAC;IACtD,MAAM3M,KAAK,GACTyE,IAAI,KAAK,KAAK,GACV/M,QAAQ,CAACuI,SAAS,CAACC,GAAG,GACtBuE,IAAI,KAAK,MAAM,GACf/M,QAAQ,CAACuI,SAAS,CAACE,IAAI,GACvBC,SAAS;IACf,OAAO;MAAE6D,SAAS;MAAEjE;IAAM,CAAC;EAC7B,CAAC,CAAC;AACJ;AAEA,eAAehH,GAAGA,CAAI4T,eAAgC,EAAc;EAClE,IAAI,QAAQA,eAAe,oBAAfA,eAAe,CAAU5T,GAAG,MAAK,UAAU,EAAE;IACvD,OAAQ4T,eAAe,CAAiB5T,GAAG,CAAC,CAAC;EAC/C;EACA,OAAO4T,eAAe;AACxB;AAEA,SAAS1L,OAAOA,CAAI2L,IAAY,EAAE/Q,KAAQ,EAAkC;EAC1E,OAAQgR,KAAK,IAAK;IAAA,IAAAC,QAAA;IAChB,IACED,KAAK,YAAYE,KAAK,IACtB,CAACF,KAAK,aAAAC,QAAA,GAALD,KAAK,CAAUG,OAAO,cAAAF,QAAA,GAAvBA,QAAA,CAAyBG,gBAAgB,qBAAzCH,QAAA,CAA2CF,IAAI,MAAKA,IAAI,EACxD;MACA,OAAOM,OAAO,CAACC,OAAO,CAACtR,KAAK,CAAC;IAC/B;IACA,OAAOqR,OAAO,CAACE,MAAM,CAACP,KAAK,CAAC;EAC9B,CAAC;AACH;AAEA,SAASvL,qBAAqBA,CAACF,IAA0B,EAAE;EACzD,MAAMiM,kBAAkB,GAAG,IAAAC,eAAQ,EAAClM,IAAI,EAAGmM,GAAG,IAAKA,GAAG,CAACC,UAAU,CAAC,GAAG,CAAC,CAAC;EACvE,MAAMC,eAAe,GAAG,IAAAH,eAAQ,EAAClM,IAAI,EAAGmM,GAAG,IAAKA,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,CAAC;EAClE,IAAIL,kBAAkB,EAAE;IACtBM,OAAO,CAACd,KAAK,CACX,0JACF,CAAC;EACH;EACA,IAAIY,eAAe,EAAE;IACnBE,OAAO,CAACC,IAAI,CACV,uJACF,CAAC;EACH;AACF;AAEA,SAAS3O,YAAYA,CACnBV,OAAc,EACdJ,OAAsC,EACtC+K,WAAqB,GAAG,EAAE,EACP;EACnB,MAAM2E,MAAM,GAAG1P,OAAO,CAAC2P,OAAO,CAAExV,CAAC,IAAK;IAAA,IAAAyV,eAAA,EAAAC,gBAAA,EAAAC,qBAAA;IACpC,IAAI,CAAAF,eAAA,GAAAzV,CAAC,CAAC4V,YAAY,aAAdH,eAAA,CAAgBI,OAAO,IAAI,GAAAH,gBAAA,GAAC1V,CAAC,CAAC4V,YAAY,aAAdF,gBAAA,CAAgBnB,KAAK,GAAE;MACrD,OAAO,EAAE;IACX;IACA,IAAI3D,WAAW,CAACwE,QAAQ,CAACpV,CAAC,CAAC4V,YAAY,CAACrB,KAAK,CAACD,IAAI,IAAI,EAAE,CAAC,EAAE;MACzD,OAAO,EAAE;IACX;IACA,MAAMwB,eAAe,IAAAH,qBAAA,GAAG3V,CAAC,CAAC4V,YAAY,CAACrB,KAAK,CAACpL,IAAI,qBAAzBwM,qBAAA,CAA2BG,eAAe;IAClE,OAAO,CACL,IAAIC,iBAAS,CACX/V,CAAC,CAAC4V,YAAY,CAACrB,KAAK,CAACyB,WAAW,EAChChW,CAAC,CAAC4V,YAAY,CAACrB,KAAK,CAACD,IAAI,EACzBrO,OAAO,CAACjG,CAAC,CAAC4V,YAAY,CAACK,aAAa,CAAE,EACtC,WAAW,EACXjW,CAAC,CAAC4V,YAAY,CAACK,aAAa,EAC5BH,eACF,CAAC,CACF;EACH,CAAC,CAAC;EACF,MAAMD,OAAO,GAAGhQ,OAAO,CAAC5E,MAAM,CAAEjB,CAAC;IAAA,IAAAkW,gBAAA;IAAA,QAAAA,gBAAA,GAAKlW,CAAC,CAAC4V,YAAY,qBAAdM,gBAAA,CAAgBL,OAAO;EAAA,EAAC;EAC9D,MAAMM,QAAQ,GAAGN,OAAO,CAAC5U,MAAM,CAC5BjB,CAAC,IAAKA,CAAC,CAACkD,MAAM,KAAK/D,QAAQ,CAACiX,cAAc,CAACC,MAC9C,CAAC;EACD,MAAMC,OAAO,GAAGT,OAAO,CAAC5U,MAAM,CAC3BjB,CAAC,IACAA,CAAC,CAACkD,MAAM,KAAK/D,QAAQ,CAACiX,cAAc,CAACG,MAAM,IAC3CvW,CAAC,CAACkD,MAAM,KAAK/D,QAAQ,CAACiX,cAAc,CAACI,KACzC,CAAC;EACD,MAAMC,OAAO,GAAGZ,OAAO,CAAC5U,MAAM,CAC3BjB,CAAC,IAAKA,CAAC,CAACkD,MAAM,KAAK/D,QAAQ,CAACiX,cAAc,CAACM,MAC9C,CAAC;EACD,OAAO;IACLP,QAAQ,EAAEA,QAAQ,CAAC1N,MAAM;IACzB6N,OAAO,EAAEA,OAAO,CAAC7N,MAAM;IACvBgO,OAAO,EAAEA,OAAO,CAAChO,MAAM;IACvBkO,OAAO,EAAE1Q,OAAO,CAACwC,MAAM,GAAG8M,MAAM,CAAC9M,MAAM,GAAGoN,OAAO,CAACpN,MAAM;IACxD8M,MAAM;IACNqB,eAAe,EAAET,QAAQ,CAACjS,GAAG,CAAElE,CAAC;MAAA,IAAA6W,gBAAA;MAAA,QAAAA,gBAAA,GAAK7W,CAAC,CAAC4V,YAAY,qBAAdiB,gBAAA,CAAgB1P,EAAE;IAAA,CAAC,CAAC;IACzD2P,cAAc,EAAER,OAAO,CAACpS,GAAG,CAAElE,CAAC;MAAA,IAAA+W,gBAAA;MAAA,QAAAA,gBAAA,GAAK/W,CAAC,CAAC4V,YAAY,qBAAdmB,gBAAA,CAAgB5P,EAAE;IAAA,CAAC,CAAC;IACvD6P,cAAc,EAAEP,OAAO,CAACvS,GAAG,CAAElE,CAAC;MAAA,IAAAiX,gBAAA;MAAA,QAAAA,gBAAA,GAAKjX,CAAC,CAAC4V,YAAY,qBAAdqB,gBAAA,CAAgB9P,EAAE;IAAA,CAAC;EACxD,CAAC;AACH;AAEA,SAASpB,mBAAmBA,CAC1BP,KAA4B,EACL;EACvB;EACA;EACA;EACA,OAAOA,KAAK,CAACtB,GAAG,CAAE4E,IAAI,IAAK;IACzB,MAAM3B,EAAE,GAAG2B,IAAI,CAACI,GAAG;IACnB,IAAI,IAAA3H,eAAQ,EAAC4F,EAAE,CAAC,EAAE;MAChB,MAAM,CAAC8N,GAAG,EAAE,GAAGiC,IAAI,CAAC,GAAGrW,MAAM,CAACsW,IAAI,CAAChQ,EAAE,CAAC;MACtC,IAAI+P,IAAI,CAACzO,MAAM,KAAK,CAAC,EAAE;QACrBK,IAAI,CAACI,GAAG,GAAG/B,EAAE,CAAC8N,GAAG,CAAC;QAClB,OAAOnM,IAAI;MACb;IACF;IACA,OAAOA,IAAI;EACb,CAAC,CAAC;AACJ;AAEA,SAAS/B,mBAAmBA,CAC1BlB,OAAoC,EACrB;EACf,OAAOA,OAAO,CACX3B,GAAG,CAAEiG,MAAM,IAAKA,MAAM,CAAC/B,QAAQ,CAAC,CAChCnH,MAAM,CAACmW,QAAQ,CAAC,CAChBlT,GAAG,CAACqB,UAAU,CAAC;AACpB;AAEA,SAASoM,mBAAmBA,CAC1B9L,OAAoC,EACkB;EACtD,OAAOA,OAAO,CAAC3B,GAAG,CAAEiG,MAAM,IAAK;IAC7B,MAAMkN,UAAU,GAAGlN,MAAa;IAChC,MAAMmN,mBAAmB,GAAGD,UAAU,CAACC,mBAAmB;IAC1D,MAAMC,gBAA8E,GAClF;MACEhQ,eAAe,EACb8P,UAAU,CAAC9P,eAAe,KAAI+P,mBAAmB,oBAAnBA,mBAAmB,CAAE/P,eAAe;IACtE,CAAC;IAEH,IAAI4C,MAAM,CAAC/B,QAAQ,EAAE;MACnBmP,gBAAgB,CAACzO,IAAI,GAAGvD,UAAU,CAAC4E,MAAM,CAAC/B,QAAQ,CAAoB;IACxE,CAAC,MAAM;MACLmP,gBAAgB,CAACD,mBAAmB,GAAG;QACrC7E,gBAAgB,EAAE6E,mBAAmB,oBAAnBA,mBAAmB,CAAE7E,gBAAgB;QACvD+E,YAAY,EAAE,CAAAF,mBAAmB,oBAAnBA,mBAAmB,CAAEE,YAAY,KAAI;MACrD,CAAC;IACH;IAEA,OAAOD,gBAAgB;EACzB,CAAC,CAAC;AACJ;AAEA,SAASH,QAAQA,CAAI7T,KAA2B,EAAc;EAC5D,OAAOA,KAAK,IAAI,IAAI;AACtB;AAEA,SAAS6D,MAAMA,CAAC0B,IAAqB,EAAU;EAC7C,OAAO,OAAOA,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGA,IAAI,CAACI,GAAG;AACnD;AAEA,SAASuI,OAAOA,CAAIgG,KAAc,EAAO;EACvC,OAAO,IAAAC,cAAO,EAACD,KAAK,CAAC,GAAIA,KAAK,GAAW,CAACA,KAAK,CAAM;AACvD;AAEA,SAASnQ,QAAQA,CAACtC,cAA+B,EAAE;EACjD,OAAO,OAAOA,cAAc,KAAK,QAAQ;AAC3C;AAEA,MAAM4D,oBAAoB,GAAG,SAAS;AAEtC,SAASpG,YAAYA,CAAA,EAAG;EACtB,OAAO,IAAAmV,oBAAkB,EAAClW,0BAAkB,CAAC;AAC/C","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","isObject","createExplicitFilter","wdeValidationError","messages","filterMustBeAnObject","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","fieldModification","action","ACTION","SET_FIELD","fieldPath","setFieldOptions","value","REMOVE_FIELD","INCREMENT_FIELD","incrementFieldOptions","APPEND_TO_ARRAY","appendToArrayOptions","REMOVE_FROM_ARRAY","removeFromArrayOptions","fieldModifications","apiFilter","apiFieldModifications","map","toFieldModificationApi","jobId","asyncPatchDataItemsByFilter","toAsyncPatchByFilterOptions","asyncRemoveDataItemsByFilter","toAsyncRemoveByFilterOptions","isNonEmptyString","status","successCount","getAsyncJobStatus","cursor","limit","fetch","cursorOrOffset","dataItems","pagingMetadata","queryDataItems","query","toPaging","toReadOptions","toDataItem","items","paging","WixDataResultImpl","limitNumber","skipNumber","results","aggregateDataItems","unwrapAggregationId","pipeline","request","aggregatePipelineDataItems","readOptions","totalCount","countDataItems","itemIds","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","toRemoveOptions","toBulkResult","current","queryReferencedDataItems","fields","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","id","itemId","returnTotalCount","isOffset","referringItemId","referringItemFieldName","order","SortOrder","ASC","DESC","undefined","skip","ApiClient","wixData","filterBuilder","arguments","_options$includeField","dataItem","getDataItem","dataItemId","includeReferences","includeFieldGroups","length","catch","recover","ItemDoesNotExistCode","insert","item","itemAsWixData","warnAboutBrokenFields","insertDataItem","_id","data","toInsertOptions","save","saveDataItem","toSaveOptions","update","updateDataItem","toUpdateOptions","remove","removeDataItem","patch","executeDirectPatch","WixDataPatchImpl","onRun","_args","patchParams","result","patchDataItem","toPatchOptions","bulkPatch","executeDirectBulkPatch","WixDataBulkPatchImpl","bulkPatchDataItems","patches","toBulkPatchOptions","queryRequest","executeDirectQuery","ensureValidQuery","invalidArgs","queryValidations","queryInvalid","WixDataQueryImpl","onCount","params","invalidArguments","validateAndReturn","onDistinct","field","_toSort$find","fieldName","toSort","orderBy","find","distinctValues","queryDistinctValues","onFind","projectedFields","sort","included","randomSortOptions","sortMode","SortMode","RANDOM","randomOptions","seed","fieldGroups","_request$paging","_request$cursorPaging","_request$paging2","_request$cursorPaging2","_options$includeRefer","validationErrors","cursorPaging","offset","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","executeDirectAggregate","WixDataAggregateImpl","aggregateValidations","aggregateInvalid","toOperation","itemFieldName","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","aggregatePipeline","distinct","_options$paging","_options$cursorPaging","_options$paging2","_options$cursorPaging2","values","runBulkSave","overrideExisting","saveReferences","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","bulkInsert","itemsAsWixData","bulkInsertOptions","appId","bulkSave","bulkUpdate","bulkUpdateOptions","bulkUpdateDataItems","toBulkUpdateOptions","queryReferencedItems","referringItem","referenceParameters","asArray","referringItemIds","toReferencedResults","insertReference","refsOrAttr","leftOrOpts","right","refs","opts","argc","rights","relationshipName","left","references","bulkInsertDataItemReferences","dataItemReferences","referencedItemId","replaceReferences","replaceDataItemReferences","newReferencedItemIds","removeReference","referenceRemoveParameters","bulkRemoveDataItemReferences","isReferenced","isReferencedDataItem","consistentRead","fn","exports","suppressHooks","draftsOptions","showDrafts","conditionOptions","condition","toAsyncOptions","includeReferencedItems","res","appOptions","entries","every","kv","language","publishPluginOptions","includeDraftItems","fieldOrder","providerOrValue","code","error","_details","Error","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","wireResult","unresolvedReference","referencedResult","unauthorized","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 BaseOptions,\n Provider,\n WithAppOptions,\n WixDataAggregateOptions,\n WixDataBulkResult,\n WixDataItem,\n WithId,\n WixDataItemOrId,\n WixDataOptions,\n WixDataInsertOptions,\n WixDataRemoveOptions,\n WixDataQueryReferencedOptions,\n WixDataQueryReferencedItemsOptions,\n WixDataCountOptions,\n WixDataIsReferencedOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WixDataGetOptions,\n WixDataReference,\n WixDataUpdateOptions,\n WixDataBulkUpdateOptions,\n WixDataBulkRemoveOptions,\n WixDataSaveOptions,\n WixDataQueryRequest,\n WixDataQueryOptions,\n WixDataDistinctOptions,\n WixDataSearchRequest,\n WixDataSearchOptions,\n WixDataBulkInsertOptions,\n WixDataBulkSaveOptions,\n WixDataAsyncRemoveByFilterOptions,\n WixDataAsyncRemoveByFilterResponse,\n WixDataAsyncPatchByFilterOptions,\n WixDataAsyncPatchByFilterResponse,\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 WixDataBulkPatch,\n WixDataBulkPatchOptions,\n WixDataPatchOptions,\n} from './WixDataPatch'\nimport { WixDataQueryResponse } from './WixDataQueryResponse'\nimport { WixDataSearchResponse } from './WixDataSearchResponse'\nimport { WixDataAggregateResponse } from './WixDataAggregateResponse'\nimport { WixDataDistinctResponse } from './WixDataDistinctResponse'\nimport { WixDataQueryReferencedItemsResponse } from './WixDataQueryReferencedItemsResponse'\nimport { FieldModification } from './FieldModification'\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: WixDataFilterInput): 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 if (isObject(filter)) {\n return filter 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>\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 async get<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n options?: WixDataGetOptions\n ): Promise<(Item & WixDataItem) | null> {\n await apiValidator()\n .arity('get', arguments, 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\n ? (toDataItem(dataItem) as unknown as Item & WixDataItem)\n : null\n })\n }\n\n async insert<Item extends Record<string, any>>(\n collectionName: string,\n item: Item,\n options?: WixDataUpdateOptions\n ): Promise<Item & WixDataItem> {\n const itemAsWixData = item as Partial<WixDataItem>\n await apiValidator()\n .arity('insert', arguments, 2, 3)\n .collectionName(collectionName)\n .item(itemAsWixData, collectionName, false)\n .options(options)\n .validateAndReject()\n\n warnAboutBrokenFields(itemAsWixData)\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: itemAsWixData._id,\n data: itemAsWixData,\n },\n ...toInsertOptions(options),\n })\n\n return toDataItem(dataItem!) as unknown as Item & WixDataItem\n })\n }\n\n async save<Item extends Record<string, any>>(\n collectionName: string,\n item: Item,\n options?: WixDataSaveOptions\n ): Promise<Item & WixDataItem> {\n const itemAsWixData = item as Partial<WixDataItem>\n await apiValidator()\n .arity('save', arguments, 2, 3)\n .collectionName(collectionName)\n .item(itemAsWixData, 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: itemAsWixData._id,\n data: itemAsWixData,\n },\n ...toSaveOptions(options),\n })\n return toDataItem(dataItem!) as unknown as Item & WixDataItem\n })\n }\n\n async update<Item extends WithId>(\n collectionName: string,\n item: Item,\n options?: WixDataUpdateOptions\n ): Promise<Item & WixDataItem> {\n await apiValidator()\n .arity('update', arguments, 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!) as unknown as Item & WixDataItem\n })\n }\n\n async remove<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n options?: WixDataRemoveOptions\n ): Promise<(Item & WixDataItem) | null> {\n await apiValidator()\n .arity('remove', arguments, 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\n ? (toDataItem(dataItem) as unknown as Item & WixDataItem)\n : null\n })\n }\n\n private toFieldModificationApi = (\n fieldModification: FieldModification\n ): apiTypes.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.value,\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.value,\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.value,\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.value,\n },\n }\n }\n }\n\n /**\n * Returns a patch builder for the specified collection and item.\n * @param collectionName - Name of the collection containing the item to patch.\n * @param itemId - ID of the item to patch.\n * @returns A `WixDataPatch` builder object.\n */\n patch(collectionName: string, itemId: string): WixDataPatch\n\n /**\n * Executes a patch directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection containing the item to patch.\n * @param itemId - ID of the item to patch.\n * @param fieldModifications - Field modifications to apply to the item.\n * @param options - Additional options for the patch operation.\n * @returns Promise that resolves to the patched item, or `null` if no item was returned.\n */\n patch<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n fieldModifications?: FieldModification[],\n options?: WixDataPatchOptions\n ): Promise<(Item & WixDataItem) | null>\n\n patch<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n itemId: string,\n fieldModifications?: FieldModification[],\n options?: WixDataPatchOptions\n ): WixDataPatch | Promise<(Item & WixDataItem) | null> {\n if (arguments.length >= 3) {\n return this.executeDirectPatch<Item>(\n collectionName,\n itemId,\n fieldModifications,\n options\n )\n }\n\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 private async executeDirectPatch<\n Item extends Record<string, any> = WixDataItem\n >(\n collectionName: string,\n itemId: string,\n fieldModifications: FieldModification[] | undefined,\n options?: WixDataPatchOptions\n ): Promise<(Item & WixDataItem) | null> {\n const apiFieldModifications = 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: collectionName,\n patch: {\n dataItemId: itemId,\n fieldModifications: apiFieldModifications,\n },\n ...toPatchOptions(options),\n })\n\n return result.dataItem\n ? (toDataItem(result.dataItem) as unknown as Item & WixDataItem)\n : null\n })\n }\n\n bulkPatch(collectionName: string, itemIds: string[]): WixDataBulkPatch\n\n /**\n * Executes a bulk patch directly without using the builder pattern.\n * @internal\n * @param collectionName - Name of the collection containing the items to patch.\n * @param itemIds - IDs of the items to patch.\n * @param fieldModifications - Field modifications to apply to the items.\n * @param options - Additional options for the bulk patch operation.\n * @returns Promise that resolves to bulk operation results.\n */\n bulkPatch(\n collectionName: string,\n itemIds: string[],\n fieldModifications?: FieldModification[],\n options?: WixDataBulkPatchOptions\n ): Promise<WixDataBulkResult>\n\n bulkPatch(\n collectionName: string,\n itemIds: string[],\n fieldModifications?: FieldModification[],\n options?: WixDataBulkPatchOptions\n ): WixDataBulkPatch | Promise<WixDataBulkResult> {\n if (arguments.length >= 3) {\n return this.executeDirectBulkPatch(\n collectionName,\n itemIds,\n fieldModifications,\n options\n )\n }\n\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 ...toBulkPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n },\n })\n }\n\n private async executeDirectBulkPatch(\n collectionName: string,\n itemIds: string[],\n fieldModifications: FieldModification[] | undefined,\n options?: WixDataBulkPatchOptions\n ): Promise<WixDataBulkResult> {\n const apiFieldModifications = 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: collectionName,\n patches: itemIds.map((itemId) => ({\n dataItemId: itemId,\n fieldModifications: apiFieldModifications,\n })),\n ...toBulkPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n }\n\n asyncPatchByFilter = withArgs(\n async (\n args,\n collectionName: string,\n filter: WixDataFilterInput,\n fieldModifications: FieldModification[],\n options?: WixDataAsyncPatchByFilterOptions\n ): Promise<WixDataAsyncPatchByFilterResponse> => {\n await apiValidator()\n .arity('asyncPatchByFilter', args, 3, 4)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n const apiFilter = createExplicitFilter(filter)\n const apiFieldModifications = 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: collectionName,\n filter: apiFilter,\n fieldModifications: apiFieldModifications,\n ...toAsyncPatchByFilterOptions(options),\n })\n\n return { jobId: jobId! }\n }\n )\n }\n )\n\n asyncRemoveByFilter = withArgs(\n async (\n args,\n collectionName: string,\n filter: WixDataFilterInput,\n options?: WixDataAsyncRemoveByFilterOptions\n ): Promise<WixDataAsyncRemoveByFilterResponse> => {\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 ...toAsyncRemoveByFilterOptions(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 extends Record<string, any> = WixDataItem>(\n collectionName: string,\n queryRequest: WixDataQueryRequest,\n options?: WixDataQueryOptions\n ): Promise<WixDataQueryResponse<Item & WixDataItem>>\n\n query<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n queryRequest?: WixDataQueryRequest,\n options?: WixDataQueryOptions\n ): WixDataQuery | Promise<WixDataQueryResponse<Item & WixDataItem>> {\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<\n Item extends Record<string, any> = WixDataItem\n >(\n collectionName: string,\n request: WixDataQueryRequest,\n options?: WixDataQueryOptions\n ): Promise<WixDataQueryResponse<Item & WixDataItem>> {\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 return 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, cursor ?? offset),\n ...(cursor === undefined\n ? {\n filter: request.filter,\n sort: toSort(sort),\n }\n : {}),\n },\n includeReferences,\n ...toReadOptions(options),\n ...(cursor === undefined\n ? { returnTotalCount: options?.returnTotalCount }\n : {}),\n ...(options?.includeFieldGroups?.length\n ? { includeFieldGroups: options.includeFieldGroups }\n : {}),\n })\n\n return {\n items: dataItems!.map(toDataItem) as unknown as (Item & WixDataItem)[],\n pagingMetadata: pagingMetadata!,\n }\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<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n searchRequest: WixDataSearchRequest,\n options?: WixDataSearchOptions\n ): Promise<WixDataSearchResponse<Item & WixDataItem>>\n\n search<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n searchRequest?: WixDataSearchRequest,\n options?: WixDataSearchOptions\n ): WixDataSearch | Promise<WixDataSearchResponse<Item & WixDataItem>> {\n if (searchRequest !== undefined) {\n return this.executeDirectSearch<Item & WixDataItem>(\n collectionName,\n searchRequest,\n options\n )\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 Item extends Record<string, any> = WixDataItem\n >(\n collectionName: string,\n request: WixDataSearchRequest,\n options?: WixDataSearchOptions\n ): Promise<WixDataSearchResponse<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 includeReferences = options?.includeReferences?.map((inc) => ({\n field: inc.field,\n limit: inc.limit,\n }))\n\n return this.trace('search', { collectionName, search: request.search })(\n async (env) => {\n const { dataItems, pagingMetadata } = await this.client.searchDataItems(\n {\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, cursor ?? offset),\n },\n includeReferences,\n ...toReadOptions(options),\n }\n )\n\n return {\n items: dataItems!.map(toDataItem) as unknown as Item[],\n pagingMetadata: pagingMetadata!,\n }\n }\n )\n }\n\n // NOTE find method is not implemented\n\n fetch = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('fetch', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n ...toPaging(limit, cursorOrOffset),\n },\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(cursor)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n collectionName,\n skipNumber: 0,\n })\n }\n )\n\n // --- aggregate ---\n\n aggregate(collectionName: string): WixDataAggregate\n\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<Result extends Record<string, any> = Record<string, any>>(\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<WixDataAggregateResponse<Result>>\n\n aggregate<Result extends Record<string, any> = Record<string, any>>(\n collectionName: string,\n pipeline?: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): WixDataAggregate | Promise<WixDataAggregateResponse<Result>> {\n if (pipeline !== undefined) {\n return this.executeDirectAggregate<Result>(\n collectionName,\n pipeline,\n options\n )\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 private async executeDirectAggregate<Result = Record<string, any>>(\n collectionName: string,\n pipeline: apiTypes.AggregationPipeline,\n options?: WixDataAggregateOptions\n ): Promise<WixDataAggregateResponse<Result>> {\n const { results, pagingMetadata } = await this.aggregatePipeline(\n collectionName,\n pipeline,\n options\n )\n\n return {\n results: results as Result[],\n pagingMetadata: pagingMetadata!,\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 async distinct<Value = any>(\n collectionName: string,\n fieldName: string,\n options?: WixDataDistinctOptions\n ): Promise<WixDataDistinctResponse<Value>> {\n await apiValidator()\n .arity('distinct', arguments, 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 return 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, cursor ?? offset),\n ...(cursor === undefined\n ? {\n fieldName,\n filter: options?.filter,\n order: options?.order,\n returnTotalCount: options?.returnTotalCount,\n }\n : {}),\n })\n\n return {\n values: distinctValues!,\n pagingMetadata: pagingMetadata!,\n }\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?: WixDataBulkRemoveOptions\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),\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 async bulkInsert<Item extends Record<string, any>>(\n collectionName: string,\n items: Item[],\n options?: WixDataBulkInsertOptions\n ): Promise<WixDataBulkResult> {\n const itemsAsWixData = items as Partial<WixDataItem>[]\n await apiValidator()\n .arity('bulkInsert', arguments, 2, 3)\n .items(itemsAsWixData, 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 itemsAsWixData,\n options,\n options?.overrideExisting ?? false\n )\n )\n }\n\n async bulkSave<Item extends Record<string, any>>(\n collectionName: string,\n items: Item[],\n options?: WixDataBulkSaveOptions\n ): Promise<WixDataBulkResult> {\n const itemsAsWixData = items as Partial<WixDataItem>[]\n await apiValidator()\n .arity('bulkSave', arguments, 2, 3)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .items(itemsAsWixData, collectionName)\n .validateAndReject()\n\n return this.trace('bulkSave', { collectionName })(async (env) =>\n this.runBulkSave(env, collectionName, itemsAsWixData, options)\n )\n }\n\n async bulkUpdate<Item extends WithId>(\n collectionName: string,\n items: Item[],\n options?: WixDataBulkUpdateOptions\n ): Promise<WixDataBulkResult> {\n await apiValidator()\n .arity('bulkUpdate', arguments, 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 // --- 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 async queryReferencedItems<Item extends Record<string, any> = WixDataItem>(\n collectionName: string,\n referringItem: WixDataItemOrId | WixDataItemOrId[],\n referringItemFieldName: string,\n options?: WixDataQueryReferencedItemsOptions\n ): Promise<WixDataQueryReferencedItemsResponse<Item & WixDataItem>> {\n await apiValidator()\n .arity('queryReferencedItems', arguments, 3, 4)\n .collectionName(collectionName)\n .referenceParameters(asArray(referringItem))\n .isNonEmptyString(referringItemFieldName, 'referringItemFieldName')\n .options(options)\n .validateAndReject()\n\n const referringItemIds = asArray(referringItem).map(itemId)\n return this.trace('queryReferencedItems', {\n collectionName,\n referringItemIds,\n options,\n referringItemFieldName,\n })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n referringItemIds,\n referringItemFieldName,\n order: options?.order,\n paging: options?.paging,\n cursorPaging: options?.cursorPaging,\n fields: options?.fields,\n returnTotalCount: options?.returnTotalCount,\n })\n\n return {\n results: toReferencedResults(results ?? []),\n pagingMetadata: pagingMetadata!,\n }\n })\n }\n\n insertReference<\n ItemLeft extends WithId = WixDataItem,\n ItemRight extends WithId = WixDataItem\n >(\n collectionName: string,\n refs: WixDataReference<ItemLeft, ItemRight>[],\n options?: WixDataOptions\n ): Promise<void>\n insertReference<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight> | WixDataItemOrId<ItemRight>[],\n options?: WixDataOptions\n ): Promise<void>\n async insertReference(\n collectionName: string,\n refsOrAttr: any,\n leftOrOpts?: any,\n right?: any,\n options?: any\n ): Promise<void> {\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\n await apiValidator()\n .arity('insertReference', arguments, ...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 async replaceReferences<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight> | WixDataItemOrId<ItemRight>[],\n options?: WixDataOptions\n ): Promise<void> {\n const rights = asArray(right)\n await apiValidator()\n .arity('replaceReferences', arguments, 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 async removeReference<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight> | WixDataItemOrId<ItemRight>[],\n options?: WixDataOptions\n ): Promise<void> {\n const rights = asArray(right)\n await apiValidator()\n .arity('removeReference', arguments, 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 async isReferenced<ItemLeft extends WithId, ItemRight extends WithId>(\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId<ItemLeft>,\n right: WixDataItemOrId<ItemRight>,\n options?: WixDataIsReferencedOptions\n ): Promise<boolean> {\n await apiValidator()\n .arity('isReferenced', arguments, 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 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 toBulkPatchOptions(options?: WixDataBulkPatchOptions) {\n return {\n ...toOptions(options),\n ...conditionOptions(options?.condition),\n }\n}\n\nfunction toAsyncRemoveByFilterOptions(\n options?: WixDataAsyncRemoveByFilterOptions\n) {\n return toAsyncOptions(options)\n}\n\nfunction toAsyncPatchByFilterOptions(\n options?: WixDataAsyncPatchByFilterOptions\n) {\n return toAsyncOptions(options)\n}\n\nfunction toAsyncOptions(options?: BaseOptions) {\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?: BaseOptions & Partial<WithAppOptions>) {\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?: WixDataFilterInput) {\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 toReferencedResults<Item extends Record<string, any> = WixDataItem>(\n results: apiTypes.ReferencedResult[]\n): WixDataQueryReferencedItemsResponse<Item>['results'] {\n return results.map((result) => {\n const wireResult = result as any\n const unresolvedReference = wireResult.unresolvedReference\n const referencedResult: WixDataQueryReferencedItemsResponse<Item>['results'][number] =\n {\n referringItemId:\n wireResult.referringItemId ?? unresolvedReference?.referringItemId,\n }\n\n if (result.dataItem) {\n referencedResult.item = toDataItem(result.dataItem) as unknown as Item\n } else {\n referencedResult.unresolvedReference = {\n referencedItemId: unresolvedReference?.referencedItemId,\n unauthorized: unresolvedReference?.unauthorized ?? false,\n }\n }\n\n return referencedResult\n })\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":[]}
|