@wix/wix-data-items-common 1.0.174 → 1.0.176

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/cjs/api/PipelineValidator.js +26 -0
  2. package/dist/cjs/api/PipelineValidator.js.map +1 -0
  3. package/dist/cjs/api/WixDataAggregatePipeline.js +4 -0
  4. package/dist/cjs/api/WixDataAggregatePipeline.js.map +1 -0
  5. package/dist/cjs/api/WixDataApi.js +4 -0
  6. package/dist/cjs/api/WixDataApi.js.map +1 -1
  7. package/dist/cjs/api/impl/WixDataAggregatePipelineImpl.js +96 -0
  8. package/dist/cjs/api/impl/WixDataAggregatePipelineImpl.js.map +1 -0
  9. package/dist/cjs/api/index.js +6 -1
  10. package/dist/cjs/api/index.js.map +1 -1
  11. package/dist/cjs/api/stages/LimitStage.js +16 -0
  12. package/dist/cjs/api/stages/LimitStage.js.map +1 -0
  13. package/dist/cjs/api/stages/SkipStage.js +16 -0
  14. package/dist/cjs/api/stages/SkipStage.js.map +1 -0
  15. package/dist/cjs/api/stages/SortStage.js +40 -0
  16. package/dist/cjs/api/stages/SortStage.js.map +1 -0
  17. package/dist/cjs/api/stages/stages.js +13 -0
  18. package/dist/cjs/api/stages/stages.js.map +1 -0
  19. package/dist/cjs/types/data-item-types.js.map +1 -1
  20. package/dist/esm/api/PipelineValidator.js +18 -0
  21. package/dist/esm/api/PipelineValidator.js.map +1 -0
  22. package/dist/esm/api/WixDataAggregatePipeline.js +2 -0
  23. package/dist/esm/api/WixDataAggregatePipeline.js.map +1 -0
  24. package/dist/esm/api/WixDataApi.js +4 -0
  25. package/dist/esm/api/WixDataApi.js.map +1 -1
  26. package/dist/esm/api/impl/WixDataAggregatePipelineImpl.js +76 -0
  27. package/dist/esm/api/impl/WixDataAggregatePipelineImpl.js.map +1 -0
  28. package/dist/esm/api/index.js +1 -0
  29. package/dist/esm/api/index.js.map +1 -1
  30. package/dist/esm/api/stages/LimitStage.js +9 -0
  31. package/dist/esm/api/stages/LimitStage.js.map +1 -0
  32. package/dist/esm/api/stages/SkipStage.js +9 -0
  33. package/dist/esm/api/stages/SkipStage.js.map +1 -0
  34. package/dist/esm/api/stages/SortStage.js +22 -0
  35. package/dist/esm/api/stages/SortStage.js.map +1 -0
  36. package/dist/esm/api/stages/stages.js +9 -0
  37. package/dist/esm/api/stages/stages.js.map +1 -0
  38. package/dist/types/api/PipelineValidator.d.ts +9 -0
  39. package/dist/types/api/PipelineValidator.d.ts.map +1 -0
  40. package/dist/types/api/WixDataAggregatePipeline.d.ts +59 -0
  41. package/dist/types/api/WixDataAggregatePipeline.d.ts.map +1 -0
  42. package/dist/types/api/WixDataApi.d.ts +3 -0
  43. package/dist/types/api/WixDataApi.d.ts.map +1 -1
  44. package/dist/types/api/impl/WixDataAggregatePipelineImpl.d.ts +21 -0
  45. package/dist/types/api/impl/WixDataAggregatePipelineImpl.d.ts.map +1 -0
  46. package/dist/types/api/index.d.ts +2 -0
  47. package/dist/types/api/index.d.ts.map +1 -1
  48. package/dist/types/api/stages/LimitStage.d.ts +8 -0
  49. package/dist/types/api/stages/LimitStage.d.ts.map +1 -0
  50. package/dist/types/api/stages/SkipStage.d.ts +8 -0
  51. package/dist/types/api/stages/SkipStage.d.ts.map +1 -0
  52. package/dist/types/api/stages/SortStage.d.ts +9 -0
  53. package/dist/types/api/stages/SortStage.d.ts.map +1 -0
  54. package/dist/types/api/stages/stages.d.ts +13 -0
  55. package/dist/types/api/stages/stages.d.ts.map +1 -0
  56. package/dist/types/types/data-item-types.d.ts +3 -7
  57. package/dist/types/types/data-item-types.d.ts.map +1 -1
  58. package/package.json +3 -3
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.PipelineValidator = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _utils = require("../utils");
8
+ var _errors = require("../errors");
9
+ class PipelineValidator extends _errors.AggregatingValidator {
10
+ constructor(operatorName, previousInvalidArguments) {
11
+ super(previousInvalidArguments);
12
+ (0, _defineProperty2.default)(this, "operatorName", void 0);
13
+ this.operatorName = operatorName;
14
+ }
15
+ _isNumber(specifier, operand) {
16
+ return this.addValidation(() => (0, _utils.isNumber)(operand), () => _errors.messages.queryValidations.isNumber(this.operatorName, specifier, operand));
17
+ }
18
+ isPositiveNumber(operand) {
19
+ return this._isNumber('positive', operand).addValidation(() => !Number.isNaN(operand) && operand > 0, () => _errors.messages.queryValidations.isPositiveNumber(this.operatorName, operand));
20
+ }
21
+ isNonNegativeNumber(operand) {
22
+ return this._isNumber('non-negative', operand).addValidation(() => !Number.isNaN(operand) && operand >= 0, () => _errors.messages.queryValidations.isNonNegativeNumber(this.operatorName, operand));
23
+ }
24
+ }
25
+ exports.PipelineValidator = PipelineValidator;
26
+ //# sourceMappingURL=PipelineValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","_errors","PipelineValidator","AggregatingValidator","constructor","operatorName","previousInvalidArguments","_defineProperty2","default","_isNumber","specifier","operand","addValidation","isNumber","messages","queryValidations","isPositiveNumber","Number","isNaN","isNonNegativeNumber","exports"],"sources":["../../../src/api/PipelineValidator.ts"],"sourcesContent":["import { isNumber } from '../utils'\nimport { AggregatingValidator, messages } from '../errors'\n\nexport class PipelineValidator extends AggregatingValidator {\n operatorName: string\n\n constructor(operatorName: string, previousInvalidArguments: string[]) {\n super(previousInvalidArguments)\n this.operatorName = operatorName\n }\n\n _isNumber(specifier: string, operand: any) {\n return this.addValidation(\n () => isNumber(operand),\n () =>\n messages.queryValidations.isNumber(\n this.operatorName,\n specifier,\n operand\n )\n )\n }\n\n isPositiveNumber(operand: number) {\n return this._isNumber('positive', operand).addValidation(\n () => !Number.isNaN(operand) && operand > 0,\n () =>\n messages.queryValidations.isPositiveNumber(this.operatorName, operand)\n )\n }\n\n isNonNegativeNumber(operand: number) {\n return this._isNumber('non-negative', operand).addValidation(\n () => !Number.isNaN(operand) && operand >= 0,\n () =>\n messages.queryValidations.isNonNegativeNumber(\n this.operatorName,\n operand\n )\n )\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEO,MAAME,iBAAiB,SAASC,4BAAoB,CAAC;EAG1DC,WAAWA,CAACC,YAAoB,EAAEC,wBAAkC,EAAE;IACpE,KAAK,CAACA,wBAAwB,CAAC;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAC/B,IAAI,CAACH,YAAY,GAAGA,YAAY;EAClC;EAEAI,SAASA,CAACC,SAAiB,EAAEC,OAAY,EAAE;IACzC,OAAO,IAAI,CAACC,aAAa,CACvB,MAAM,IAAAC,eAAQ,EAACF,OAAO,CAAC,EACvB,MACEG,gBAAQ,CAACC,gBAAgB,CAACF,QAAQ,CAChC,IAAI,CAACR,YAAY,EACjBK,SAAS,EACTC,OACF,CACJ,CAAC;EACH;EAEAK,gBAAgBA,CAACL,OAAe,EAAE;IAChC,OAAO,IAAI,CAACF,SAAS,CAAC,UAAU,EAAEE,OAAO,CAAC,CAACC,aAAa,CACtD,MAAM,CAACK,MAAM,CAACC,KAAK,CAACP,OAAO,CAAC,IAAIA,OAAO,GAAG,CAAC,EAC3C,MACEG,gBAAQ,CAACC,gBAAgB,CAACC,gBAAgB,CAAC,IAAI,CAACX,YAAY,EAAEM,OAAO,CACzE,CAAC;EACH;EAEAQ,mBAAmBA,CAACR,OAAe,EAAE;IACnC,OAAO,IAAI,CAACF,SAAS,CAAC,cAAc,EAAEE,OAAO,CAAC,CAACC,aAAa,CAC1D,MAAM,CAACK,MAAM,CAACC,KAAK,CAACP,OAAO,CAAC,IAAIA,OAAO,IAAI,CAAC,EAC5C,MACEG,gBAAQ,CAACC,gBAAgB,CAACI,mBAAmB,CAC3C,IAAI,CAACd,YAAY,EACjBM,OACF,CACJ,CAAC;EACH;AACF;AAACS,OAAA,CAAAlB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=WixDataAggregatePipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/api/WixDataAggregatePipeline.ts"],"sourcesContent":["import { WixDataAggregateOptions } from './types'\nimport { WixDataResult } from './WixDataResult'\n\nexport interface WixDataAggregatePipeline {\n /**\n * Runs the aggregation and returns the results.\n *\n * The `run()` method returns a Promise that resolves to the results found\n * by the aggregation and some information about the results.\n *\n * > **Note:** Aggregations can only be used on collections you have created. They cannot be\n * > used on [Wix app collections](https://dev.wix.com/docs/develop-websites/articles/databases/wix-data/collections/working-with-wix-app-collections-and-code).\n * @public\n * @documentationMaturity preview\n * @param options - Options to use when running an aggregation.\n * @returns Promise that resolves to the results of the aggregation.\n */\n run(\n options?: WixDataAggregateOptions\n ): Promise<WixDataResult<Record<string, any>>>\n\n /**\n * Limits the number of items or groups the aggregation returns.\n *\n * The `limit()` method defines the number of results an aggregation returns in each\n * page. Only one page of results is retrieved at a time. The `next()`\n * method is used to navigate the pages of a query result.\n *\n * By default, `limit` is set to `50`.\n *\n * The maximum value that `limit()` can accept is `1000`.\n *\n * > **Note:** Aggregations can only be used on collections you have created. They cannot be used on [Wix app collections](https://dev.wix.com/docs/develop-websites/articles/databases/wix-data/collections/working-with-wix-app-collections-and-code).\n * @public\n * @documentationMaturity preview\n * @param limit - Number of items or groups to return.\n * @requiredField limit\n * @returns `WixDataAggregate` object representing the refined aggregation.\n */\n limit(limit: number): WixDataAggregatePipeline\n\n /**\n * Sets the number of items or groups to skip before returning aggregation results.\n *\n * The `skip()` method defines the number of results to skip in the aggregation\n * results before returning new aggregation results.\n *\n * For example, if you perform an aggregation on a collection and 10 groups match\n * your aggregation, but you set `skip` to 3, the results returned will skip\n * the first 3 groups that match and return the 4th through 10th items.\n *\n * By default, `skip` is set to 0.\n *\n * > **Note:** Aggregations can only be used on collections you have created. They cannot be\n * > used on [Wix app collections](https://support.wix.com/en/article/cms-formerly-content-manager-working-with-wix-app-collections).\n * @public\n * @documentationMaturity preview\n * @param skip - Number of items or groups to skip in the aggregation results before returning the results.\n * @requiredField skip\n * @returns `WixDataAggregate` object representing the refined aggregation.\n */\n skip(skip: number): WixDataAggregatePipeline\n}\n"],"mappings":"","ignoreList":[]}
@@ -14,6 +14,7 @@ var _WixDataAggregateImpl = require("./impl/WixDataAggregateImpl");
14
14
  var _ApiClient = require("./ApiClient");
15
15
  var _WixDataPatchImpl = require("./impl/WixDataPatchImpl");
16
16
  var _WixDataSearchImpl = require("./impl/WixDataSearchImpl");
17
+ var _WixDataAggregatePipelineImpl = require("./impl/WixDataAggregatePipelineImpl");
17
18
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
19
  class WixDataApi {
19
20
  constructor(clientFactory, allowGet, environment, gridAppId, tracer) {
@@ -444,6 +445,9 @@ class WixDataApi {
444
445
  collectionName
445
446
  });
446
447
  }));
448
+ (0, _defineProperty2.default)(this, "aggregatePipeline", (collectionName, pipeline) => {
449
+ return new _WixDataAggregatePipelineImpl.WixDataAggregatePipelineImpl(collectionName, pipeline, this.client);
450
+ });
447
451
  // --- bulk methods ---
448
452
  (0, _defineProperty2.default)(this, "bulkRemove", withArgs(async (args, collectionName, itemIds, options) => {
449
453
  await apiValidator().arity('bulkRemove', args, 2, 3).collectionName(collectionName).itemIds(itemIds, collectionName).bulkRemoveOptions(options).validateAndReject();
@@ -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","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","itemId","dataItem","getDataItem","dataItemId","toReadOptions","fields","catch","recover","ItemDoesNotExistCode","toDataItem","item","warnAboutBrokenFields","insertDataItem","id","_id","data","toUpdateOptions","saveDataItem","updateDataItem","removeDataItem","fieldModification","action","ACTION","SET_FIELD","fieldPath","setFieldOptions","value","actionOptions","REMOVE_FIELD","INCREMENT_FIELD","incrementFieldOptions","APPEND_TO_ARRAY","appendToArrayOptions","REMOVE_FROM_ARRAY","removeFromArrayOptions","Error","WixDataPatchImpl","onRun","_args","patchParams","fieldModifications","map","toFieldModificationApi","result","patchDataItem","patch","toPatchOptions","itemIds","WixDataBulkPatchImpl","results","bulkPatchDataItems","patches","toBulkResult","ensureValidQuery","invalidArgs","length","wdeValidationError","messages","queryValidations","queryInvalid","WixDataQueryImpl","onCount","params","invalidArguments","validateAndReturn","totalCount","countDataItems","filter","filterTree","onDistinct","field","_toSort$find","fieldName","order","toSort","orderBy","find","fetch","cursorOrOffset","returnTotalCount","distinctValues","pagingMetadata","queryDistinctValues","toPaging","limitNumber","isOffset","items","paging","skipNumber","WixDataResultImpl","onFind","dataItems","queryDataItems","query","projectedFields","sort","referencedItemOptions","included","WixDataSearchImpl","expression","queryText","request","search","fuzzy","isFuzzy","mode","searchMode","searchDataItems","cursor","limit","isNonEmptyString","WixDataAggregateImpl","validationErrors","aggregateValidations","aggregateInvalid","toOperation","itemFieldName","undefined","aggregateDataItems","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","unwrapAggregationId","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","bulkInsertOptions","appId","runBulkSave","overrideExisting","bulkUpdateOptions","bulkUpdateDataItems","current","queryReferencedDataItems","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","referringItemId","referringItemFieldName","SortOrder","ASC","DESC","skip","refsOrAttr","leftOrOpts","right","refs","opts","argc","rights","asArray","relationshipName","left","references","bulkInsertDataItemReferences","dataItemReferences","referencedItemId","referenceParameters","replaceDataItemReferences","newReferencedItemIds","referenceRemoveParameters","bulkRemoveDataItemReferences","isReferenced","isReferencedDataItem","consistentRead","ApiClient","wixData","filterBuilder","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","fn","exports","arguments","suppressHooks","draftsOptions","showDrafts","includeReferencedItems","includeReferences","res","appOptions","entries","every","kv","language","publishPluginOptions","includeDraftItems","cursorPaging","offset","fieldOrder","providerOrValue","code","error","_details","details","applicationError","Promise","resolve","reject","hasFieldWithDollar","hasField","key","startsWith","hasFieldWithDot","includes","console","warn","errors","flatMap","_r$itemMetadata","_r$itemMetadata2","itemMetadata","success","BulkError","description","originalIndex","_r$itemMetadata3","inserted","BulkActionType","INSERT","updated","UPDATE","PATCH","removed","DELETE","skipped","insertedItemIds","_r$itemMetadata4","updatedItemIds","_r$itemMetadata5","removedItemIds","_r$itemMetadata6","isObject","rest","keys","notEmpty","xOrXs","isArray","commonApiValidator"],"sources":["../../../src/api/WixDataApi.ts"],"sourcesContent":["import {\n apiValidator as commonApiValidator,\n messages,\n BulkError,\n wdeValidationError,\n} from '../errors'\nimport { HttpApiClientFactory } from '../types'\nimport * as apiTypes from '../types/data-item-types'\n\nimport { hasField, isObject, isArray } from '../utils'\nimport { filterBuilder } from './common'\nimport {\n Provider,\n WixDataBulkResult,\n WixDataItem,\n WixDataItemOrId,\n WixDataOptions,\n WixDataPatchOptions,\n WixDataQueryReferencedOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WixDataReference,\n WixDataUpdateOptions,\n} from './types'\nimport { QueryParams, WixDataQueryImpl } from './impl/WixDataQueryImpl'\nimport { WixDataQuery } from './WixDataQuery'\nimport { WixDataResultImpl, PageFetcher } from './impl/WixDataResultImpl'\nimport { WixDataAggregateImpl } from './impl/WixDataAggregateImpl'\nimport { ApiClient } from './ApiClient'\nimport {\n WixDataPatch,\n FieldModification,\n WixDataBulkPatch,\n} from './WixDataPatch'\nimport { WixDataAggregate } from './WixDataAggregate'\nimport { WixDataFilter } from './WixDataFilter'\nimport { WixDataResult } from './WixDataResult'\nimport { WixDataBulkPatchImpl, WixDataPatchImpl } from './impl/WixDataPatchImpl'\nimport { WixDataSearch } from './WixDataSearch'\nimport { WixDataSearchImpl } from './impl/WixDataSearchImpl'\n\ntype ProvidedOpt<T> = T | undefined | Provider<T | undefined>\ntype TraceWith = (\n label: string,\n opts?: object\n) => <T>(fn: () => Promise<T>) => Promise<T>\n\nexport class WixDataApi {\n private client: ApiClient\n\n constructor(\n clientFactory: HttpApiClientFactory<any>,\n allowGet: boolean,\n private readonly environment?: apiTypes.Environment,\n private readonly gridAppId?: ProvidedOpt<string>,\n private readonly tracer?: TraceWith\n ) {\n this.client = new ApiClient(clientFactory, allowGet)\n }\n\n get wixData(): WixDataApi {\n return this\n }\n\n get filter(): WixDataFilter {\n return filterBuilder()\n }\n\n // NOTE sort method for builder is not implemented\n\n truncate = withArgs(\n async (\n args,\n collectionName: string,\n options?: WixDataOptions\n ): Promise<void> => {\n await apiValidator()\n .arity('truncate', args, 1, 2)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n return this.trace('truncate', { collectionName })(async (env) => {\n await this.client.truncateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toOptions(options),\n })\n })\n }\n )\n\n // --- single-item methods ---\n\n get = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('get', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('get', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .getDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toReadOptions(options),\n fields: options?.fields,\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n insert = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataUpdateOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('insert', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n warnAboutBrokenFields(item)\n\n return this.trace('insert', { collectionName })(async (env) => {\n const { dataItem } = await this.client.insertDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n\n return toDataItem(dataItem!)\n })\n }\n )\n\n save = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataUpdateOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('save', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('save', { collectionName })(async (env) => {\n const { dataItem } = await this.client.saveDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n update = withArgs(\n async (\n args,\n collectionName: string,\n item: WixDataItem,\n options?: WixDataUpdateOptions\n ) => {\n await apiValidator()\n .arity('update', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('update', { collectionName })(async (env) => {\n const { dataItem } = await this.client.updateDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n remove = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('remove', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('remove', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .removeDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toOptions(options),\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n private toFieldModificationApi = (fieldModification: FieldModification) => {\n switch (fieldModification.action) {\n case 'SET_FIELD':\n return {\n action: apiTypes.ACTION.SET_FIELD,\n fieldPath: fieldModification.fieldPath,\n setFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FIELD':\n return {\n action: apiTypes.ACTION.REMOVE_FIELD,\n fieldPath: fieldModification.fieldPath,\n }\n case 'INCREMENT_FIELD':\n return {\n action: apiTypes.ACTION.INCREMENT_FIELD,\n fieldPath: fieldModification.fieldPath,\n incrementFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'APPEND_TO_ARRAY':\n return {\n action: apiTypes.ACTION.APPEND_TO_ARRAY,\n fieldPath: fieldModification.fieldPath,\n appendToArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FROM_ARRAY':\n return {\n action: apiTypes.ACTION.REMOVE_FROM_ARRAY,\n fieldPath: fieldModification.fieldPath,\n removeFromArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n default:\n throw new Error('Invalid patch action')\n }\n }\n\n patch = (collectionName: string, itemId: string): WixDataPatch => {\n return new WixDataPatchImpl({\n collectionName,\n itemId,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('patch', { collectionName })(async (env) => {\n const result = await this.client.patchDataItem({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patch: {\n dataItemId: patchParams.itemId,\n fieldModifications,\n },\n ...toPatchOptions(options),\n })\n\n return result.dataItem ? toDataItem(result.dataItem) : null\n })\n },\n })\n }\n\n bulkPatch = (collectionName: string, itemIds: string[]): WixDataBulkPatch => {\n return new WixDataBulkPatchImpl({\n collectionName,\n itemIds,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('bulkPatch', { collectionName })(async (env) => {\n const { results } = await this.client.bulkPatchDataItems({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patches: patchParams.itemIds.map((itemId) => ({\n dataItemId: itemId,\n fieldModifications,\n })),\n ...toPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n },\n })\n }\n\n // --- query, count, distinct ---\n\n query = (collectionName: string): WixDataQuery => {\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataQueryImpl({\n collectionName,\n onCount: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('count', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n return this.trace('count', { collectionName })(async (env) => {\n const { totalCount } = await this.client.countDataItems({\n ...env,\n dataCollectionId: collectionName,\n filter: params.filterTree,\n ...toReadOptions(options),\n })\n return totalCount!\n })\n },\n onDistinct: async (args, params, field, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('distinct', args, 1, 2)\n .fieldName(field)\n .options(options)\n .validateAndReturn(),\n ])\n\n const order = toSort(params.orderBy).find(\n (o) => o.fieldName === field\n )?.order\n\n const fetch: PageFetcher<any> = (cursorOrOffset, returnTotalCount) =>\n this.trace('distinct', { collectionName, field })(async (env) => {\n const { distinctValues, pagingMetadata } =\n await this.client.queryDistinctValues({\n ...env,\n dataCollectionId: collectionName,\n ...toReadOptions(options),\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n fieldName: field,\n filter: params.filterTree,\n order,\n returnTotalCount,\n }\n : {}),\n })\n return [distinctValues!, pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n onFind: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('find', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n fields: params.projectedFields,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n }\n : {}),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n })\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 search = (collectionName: string): WixDataSearch => {\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataSearchImpl({\n collectionName,\n onRun: async (\n params,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ])\n\n const expression = params.queryText\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('search', { collectionName, expression })(async (env) => {\n const request: apiTypes.SearchDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n search: {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n fields: params.projectedFields,\n search: {\n expression: params.queryText,\n fuzzy: params.isFuzzy,\n mode: params.searchMode,\n },\n ...toPaging(params.limitNumber, cursorOrOffset),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n }\n\n const { dataItems, pagingMetadata } =\n await this.client.searchDataItems(request)\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(params.skipNumber)\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n // NOTE find method is not implemented\n\n fetch = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('fetch', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n ...toPaging(limit, cursorOrOffset),\n },\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(cursor)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n collectionName,\n skipNumber: 0,\n })\n }\n )\n\n // --- aggregate ---\n\n aggregate = (collectionName: string): WixDataAggregate => {\n return new WixDataAggregateImpl({\n collectionName,\n onRun: async (args, params, options) => {\n const validationErrors = [\n ...params.invalidArguments,\n ...apiValidator()\n .arity('run', args, 0, 1)\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ]\n\n if (validationErrors.length > 0) {\n throw wdeValidationError(\n messages.aggregateValidations.aggregateInvalid(\n collectionName,\n validationErrors\n )\n )\n }\n\n const fetch: PageFetcher<Record<string, any>> = (\n cursorOrOffset,\n returnTotalCount\n ) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const toOperation = (field?: string) =>\n field ? { itemFieldName: field } : undefined\n\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset)\n ? {\n initialFilter: params.filterTree,\n aggregation: {\n groupingFields: params.groupBy,\n operations: params.aggregates.map((a) => ({\n resultFieldName: a.name,\n average: toOperation(a.avg),\n min: toOperation(a.min),\n max: toOperation(a.max),\n sum: toOperation(a.sum),\n itemCount: a.count ? {} : undefined,\n })),\n },\n finalFilter: params.havingTree,\n sort: toSort(params.orderBy),\n returnTotalCount,\n }\n : {}),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n fetchAggregate = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ) => {\n await apiValidator()\n .arity('fetchAggregate', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher<Record<string, any>> = (cursorOrOffset) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(limit, cursorOrOffset),\n ...toReadOptions(options),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor, true)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n skipNumber: 0,\n collectionName,\n })\n }\n )\n\n // --- bulk methods ---\n\n bulkRemove = withArgs(\n async (\n args,\n collectionName: string,\n itemIds: string[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkRemove', args, 2, 3)\n .collectionName(collectionName)\n .itemIds(itemIds, collectionName)\n .bulkRemoveOptions(options)\n .validateAndReject()\n\n return this.trace('bulkRemove', { collectionName })(async (env) => {\n const { results } = await this.client.bulkRemoveDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItemIds: itemIds,\n ...toOptions(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?: WixDataOptions,\n overrideExisting: boolean = true\n ): Promise<WixDataBulkResult> {\n const request: apiTypes.BulkInsertDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toOptions(options),\n }\n const { results } = await (overrideExisting\n ? this.client.bulkSaveDataItems(request)\n : this.client.bulkInsertDataItems(request))\n const ignoreCodes = overrideExisting ? [] : ['WDE0074']\n return toBulkResult(items, results!, ignoreCodes)\n }\n\n bulkInsert = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions & { overrideExisting?: boolean }\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkInsert', args, 2, 3)\n .items(items, collectionName)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .validateAndReject()\n\n return this.trace('bulkInsert', { collectionName, options })(\n async (appId) =>\n this.runBulkSave(\n appId,\n collectionName,\n items,\n options,\n options?.overrideExisting ?? false\n )\n )\n }\n )\n\n bulkSave = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkSave', args, 2, 3)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkSave', { collectionName })(async (env) =>\n this.runBulkSave(env, collectionName, items, options)\n )\n }\n )\n\n bulkUpdate = withArgs(\n async (\n args,\n collectionName: string,\n items: WixDataItem[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkUpdate', args, 2, 3)\n .bulkUpdateOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkUpdate', { collectionName })(async (env) => {\n const { results } = await this.client.bulkUpdateDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toOptions(options),\n })\n // Non-existing items are skipped and not reported as errors.\n return toBulkResult(items, results!, ['WDE0073'])\n })\n }\n )\n\n // --- references ---\n\n fetchReferenced = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataResult<WixDataItem | string>> => {\n await apiValidator()\n .arity('fetchReferenced', args, 2, 4)\n .isNonEmptyString(cursor, 'cursor')\n .collectionName(collectionName)\n .validateAndReject()\n\n const fetch: PageFetcher<WixDataItem | string> = (current) =>\n this.trace('fetchReferenced', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(limit, current),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor)\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: 0,\n })\n }\n )\n\n queryReferenced = withArgs(\n async (\n args,\n collectionName: string,\n holdingItem: WixDataItemOrId,\n relationshipAttribute: string,\n options?: WixDataQueryReferencedOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('queryReferenced', args, 3, 4)\n .collectionName(collectionName)\n .referenceParameter(holdingItem)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n const id = itemId(holdingItem)\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('queryReferenced', {\n collectionName,\n itemId: id,\n options,\n relationshipAttribute,\n })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(options?.limit ?? 50, cursorOrOffset),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n ...(isOffset(cursorOrOffset)\n ? {\n referringItemId: id,\n referringItemFieldName: relationshipAttribute,\n order:\n options?.order === 'asc'\n ? apiTypes.SortOrder.ASC\n : options?.order === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined,\n returnTotalCount,\n }\n : {}),\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n options?.skip ?? 0,\n options?.returnTotalCount\n )\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: options?.limit ?? 50,\n skipNumber: options?.skip ?? 0,\n })\n }\n )\n\n insertReference: {\n // overload with array of references\n (\n collectionName: string,\n refs: WixDataReference[],\n options?: WixDataOptions\n ): Promise<void>\n // overload with separate left and right(s)\n (\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void>\n } = withArgs(\n async (\n args,\n collectionName: string,\n refsOrAttr: any,\n leftOrOpts?: any,\n right?: any,\n options?: any\n ) => {\n let refs: WixDataReference[]\n let opts: WixDataOptions\n let argc: [number, number]\n\n if (typeof refsOrAttr === 'string') {\n const rights: WixDataItemOrId[] = asArray(right)\n refs = rights.map((r) => ({\n relationshipName: refsOrAttr,\n left: leftOrOpts as WixDataItemOrId,\n right: r,\n }))\n opts = options\n argc = [4, 5]\n } else {\n refs = refsOrAttr\n opts = leftOrOpts\n argc = [2, 3]\n }\n await apiValidator()\n .arity('insertReference', args, ...argc)\n .collectionName(collectionName)\n .references(refs)\n .options(opts)\n .validateAndReject()\n\n await this.trace('insertReference', { collectionName })(async (env) =>\n this.client.bulkInsertDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: refs.map((r) => ({\n referringItemFieldName: r.relationshipName,\n referringItemId: itemId(r.left),\n referencedItemId: itemId(r.right),\n })),\n ...toOptions(opts),\n })\n )\n }\n )\n\n replaceReferences = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void> => {\n const rights = asArray(right)\n await apiValidator()\n .arity('replaceReferences', args, 4, 5)\n .collectionName(collectionName)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .referenceParameter(left)\n .referenceParameters(rights)\n .options(options)\n .validateAndReject()\n\n await this.trace('replaceReferences', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.replaceDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n newReferencedItemIds: rights.map(itemId),\n ...toOptions(options),\n })\n )\n }\n )\n\n removeReference = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ) => {\n const rights = asArray(right)\n await apiValidator()\n .arity('removeReference', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceRemoveParameters(rights)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n await this.trace('removeReference', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.bulkRemoveDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: rights.map((r) => ({\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(r),\n })),\n ...toOptions(options),\n })\n )\n }\n )\n\n isReferenced = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId,\n options?: WixDataReadOptions\n ): Promise<boolean> => {\n await apiValidator()\n .arity('isReferenced', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceParameter(right)\n .options(options)\n .validateAndReject()\n\n return this.trace('isReferenced', {\n collectionName,\n relationshipAttribute,\n })(async (env) => {\n const { isReferenced } = await this.client.isReferencedDataItem({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(right),\n ...toReadOptions(options),\n consistentRead: options?.consistentRead,\n })\n return isReferenced!\n })\n }\n )\n\n private trace(\n action: string,\n opts: object\n ): <R>(\n fn: (env: {\n environment?: apiTypes.Environment\n appId?: string\n }) => Promise<R>\n ) => Promise<R> {\n return async (fn) => {\n const gridAppId = await get(this.gridAppId)\n const env = { appId: gridAppId, environment: this.environment }\n if (this.tracer) {\n return this.tracer(`WixDataApi.${action}`, {\n ...opts,\n gridAppId,\n environment: this.environment,\n })(() => fn(env))\n }\n return fn(env)\n }\n }\n}\n\nfunction withArgs<Args extends any[], R>(\n fn: (all: IArguments, ...args: Args) => R\n): (...args: Args) => R {\n return function (...args) {\n return fn(arguments, ...args)\n }\n}\n\nfunction toPatchOptions(options?: WixDataPatchOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n ...draftsOptions(options?.showDrafts),\n }\n}\n\nfunction toUpdateOptions(options?: WixDataUpdateOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\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 draftsOptions(showDrafts?: boolean) {\n return showDrafts !== undefined\n ? { publishPluginOptions: { includeDraftItems: showDrafts } }\n : {}\n}\n\nfunction toDataItem(item: apiTypes.DataItem): WixDataItem {\n return item.data as WixDataItem\n}\n\nfunction toPaging(limit: number | undefined, cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'string'\n ? {\n cursorPaging: {\n limit,\n cursor: cursorOrOffset,\n },\n }\n : limit !== undefined || cursorOrOffset > 0\n ? {\n paging: {\n limit,\n offset: cursorOrOffset,\n },\n }\n : {}\n}\n\nfunction toSort(orderBy: QueryParams['orderBy']): apiTypes.Sorting[] {\n return orderBy.map((fieldOrder) => {\n const [[fieldName, sort]] = Object.entries(fieldOrder)\n const order =\n sort === 'asc'\n ? apiTypes.SortOrder.ASC\n : sort === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined\n return { fieldName, order }\n })\n}\n\nasync function get<T>(providerOrValue: T | Provider<T>): Promise<T> {\n if (typeof (providerOrValue as any)?.get === 'function') {\n return (providerOrValue as Provider<T>).get()\n }\n return providerOrValue as T\n}\n\nfunction recover<T>(code: string, value: T): (error: unknown) => Promise<T> {\n return (error) => {\n if (\n error instanceof Error &&\n (error as any)?.details?.applicationError?.code === code\n ) {\n return Promise.resolve(value)\n }\n return Promise.reject(error)\n }\n}\n\nfunction warnAboutBrokenFields(item: Partial<WixDataItem>) {\n const hasFieldWithDollar = hasField(item, (key) => key.startsWith('$'))\n const hasFieldWithDot = hasField(item, (key) => key.includes('.'))\n if (hasFieldWithDollar) {\n console.error(\n \"Data inserted contains field name prefixed with symbol '$'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n if (hasFieldWithDot) {\n console.warn(\n \"Data inserted contains field name containing symbol '.'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n}\n\nfunction toBulkResult(\n request: any[],\n results: apiTypes.BulkDataItemResult[],\n ignoreCodes: string[] = []\n): WixDataBulkResult {\n const errors = results.flatMap((r) => {\n if (r.itemMetadata?.success || !r.itemMetadata?.error) {\n return []\n }\n if (ignoreCodes.includes(r.itemMetadata.error.code ?? '')) {\n return []\n }\n return [\n new BulkError(\n r.itemMetadata.error.description!,\n r.itemMetadata.error.code!,\n request[r.itemMetadata.originalIndex!],\n 'BulkError',\n r.itemMetadata.originalIndex!\n ),\n ]\n })\n const success = results.filter((r) => r.itemMetadata?.success)\n const inserted = success.filter(\n (r) => r.action === apiTypes.BulkActionType.INSERT\n )\n const updated = success.filter(\n (r) =>\n r.action === apiTypes.BulkActionType.UPDATE ||\n r.action === apiTypes.BulkActionType.PATCH\n )\n const removed = success.filter(\n (r) => r.action === apiTypes.BulkActionType.DELETE\n )\n return {\n inserted: inserted.length,\n updated: updated.length,\n removed: removed.length,\n skipped: request.length - errors.length - success.length,\n errors,\n insertedItemIds: inserted.map((r) => r.itemMetadata?.id!),\n updatedItemIds: updated.map((r) => r.itemMetadata?.id!),\n removedItemIds: removed.map((r) => r.itemMetadata?.id!),\n }\n}\n\nfunction unwrapAggregationId(\n items: Record<string, any>[]\n): Record<string, any>[] {\n // When grouping by one field WixDataService returns value on _id field directly, DataItemService wraps it in an object, i.e.\n // grouping by surname returns {_id: 'Simpson'} in WixDataService vs {_id: {surname: 'Simpson'}} in DataItemService\n // When grouping by more fields, values are kept wrapped.\n return items.map((item) => {\n const id = item._id\n if (isObject(id)) {\n const [key, ...rest] = Object.keys(id)\n if (rest.length === 0) {\n item._id = id[key]\n return item\n }\n }\n return item\n })\n}\n\nfunction onlyReferencedItems(\n results: apiTypes.ReferencedResult[]\n): WixDataItem[] {\n return results\n .map((result) => result.dataItem)\n .filter(notEmpty)\n .map(toDataItem)\n}\n\nfunction notEmpty<T>(value: T | null | undefined): value is T {\n return value != null\n}\n\nfunction itemId(item: WixDataItemOrId): string {\n return typeof item === 'string' ? item : item._id\n}\n\nfunction asArray<T>(xOrXs: T | T[]): T[] {\n return isArray(xOrXs) ? (xOrXs as T[]) : [xOrXs as T]\n}\n\nfunction isOffset(cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'number'\n}\n\nconst ItemDoesNotExistCode = 'WDE0073'\n\nfunction apiValidator() {\n return commonApiValidator(wdeValidationError)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","apiTypes","_interopRequireWildcard","_utils","_common","_WixDataQueryImpl","_WixDataResultImpl","_WixDataAggregateImpl","_ApiClient","_WixDataPatchImpl","_WixDataSearchImpl","_WixDataAggregatePipelineImpl","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WixDataApi","constructor","clientFactory","allowGet","environment","gridAppId","tracer","_defineProperty2","withArgs","args","collectionName","options","apiValidator","arity","validateAndReject","trace","env","client","truncateDataItems","dataCollectionId","toOptions","itemId","dataItem","getDataItem","dataItemId","toReadOptions","fields","catch","recover","ItemDoesNotExistCode","toDataItem","item","warnAboutBrokenFields","insertDataItem","id","_id","data","toUpdateOptions","saveDataItem","updateDataItem","removeDataItem","fieldModification","action","ACTION","SET_FIELD","fieldPath","setFieldOptions","value","actionOptions","REMOVE_FIELD","INCREMENT_FIELD","incrementFieldOptions","APPEND_TO_ARRAY","appendToArrayOptions","REMOVE_FROM_ARRAY","removeFromArrayOptions","Error","WixDataPatchImpl","onRun","_args","patchParams","fieldModifications","map","toFieldModificationApi","result","patchDataItem","patch","toPatchOptions","itemIds","WixDataBulkPatchImpl","results","bulkPatchDataItems","patches","toBulkResult","ensureValidQuery","invalidArgs","length","wdeValidationError","messages","queryValidations","queryInvalid","WixDataQueryImpl","onCount","params","invalidArguments","validateAndReturn","totalCount","countDataItems","filter","filterTree","onDistinct","field","_toSort$find","fieldName","order","toSort","orderBy","find","fetch","cursorOrOffset","returnTotalCount","distinctValues","pagingMetadata","queryDistinctValues","toPaging","limitNumber","isOffset","items","paging","skipNumber","WixDataResultImpl","onFind","dataItems","queryDataItems","query","projectedFields","sort","referencedItemOptions","included","WixDataSearchImpl","expression","queryText","request","search","fuzzy","isFuzzy","mode","searchMode","searchDataItems","cursor","limit","isNonEmptyString","WixDataAggregateImpl","validationErrors","aggregateValidations","aggregateInvalid","toOperation","itemFieldName","undefined","aggregateDataItems","initialFilter","aggregation","groupingFields","groupBy","operations","aggregates","a","resultFieldName","name","average","avg","min","max","sum","itemCount","count","finalFilter","havingTree","unwrapAggregationId","pipeline","WixDataAggregatePipelineImpl","bulkRemoveOptions","bulkRemoveDataItems","dataItemIds","bulkInsertOptions","appId","runBulkSave","overrideExisting","bulkUpdateOptions","bulkUpdateDataItems","current","queryReferencedDataItems","onlyReferencedItems","holdingItem","relationshipAttribute","referenceParameter","referringItemId","referringItemFieldName","SortOrder","ASC","DESC","skip","refsOrAttr","leftOrOpts","right","refs","opts","argc","rights","asArray","relationshipName","left","references","bulkInsertDataItemReferences","dataItemReferences","referencedItemId","referenceParameters","replaceDataItemReferences","newReferencedItemIds","referenceRemoveParameters","bulkRemoveDataItemReferences","isReferenced","isReferencedDataItem","consistentRead","ApiClient","wixData","filterBuilder","bulkSaveDataItems","bulkInsertDataItems","ignoreCodes","fn","exports","arguments","suppressHooks","draftsOptions","showDrafts","includeReferencedItems","includeReferences","res","appOptions","entries","every","kv","language","publishPluginOptions","includeDraftItems","cursorPaging","offset","fieldOrder","providerOrValue","code","error","_details","details","applicationError","Promise","resolve","reject","hasFieldWithDollar","hasField","key","startsWith","hasFieldWithDot","includes","console","warn","errors","flatMap","_r$itemMetadata","_r$itemMetadata2","itemMetadata","success","BulkError","description","originalIndex","_r$itemMetadata3","inserted","BulkActionType","INSERT","updated","UPDATE","PATCH","removed","DELETE","skipped","insertedItemIds","_r$itemMetadata4","updatedItemIds","_r$itemMetadata5","removedItemIds","_r$itemMetadata6","isObject","rest","keys","notEmpty","xOrXs","isArray","commonApiValidator"],"sources":["../../../src/api/WixDataApi.ts"],"sourcesContent":["import {\n apiValidator as commonApiValidator,\n messages,\n BulkError,\n wdeValidationError,\n} from '../errors'\nimport { HttpApiClientFactory } from '../types'\nimport * as apiTypes from '../types/data-item-types'\n\nimport { hasField, isObject, isArray } from '../utils'\nimport { filterBuilder } from './common'\nimport {\n Provider,\n WixDataBulkResult,\n WixDataItem,\n WixDataItemOrId,\n WixDataOptions,\n WixDataPatchOptions,\n WixDataQueryReferencedOptions,\n WixDataReadOptions,\n WixDataReadWithProjectionOptions,\n WixDataReference,\n WixDataUpdateOptions,\n} from './types'\nimport { QueryParams, WixDataQueryImpl } from './impl/WixDataQueryImpl'\nimport { WixDataQuery } from './WixDataQuery'\nimport { WixDataResultImpl, PageFetcher } from './impl/WixDataResultImpl'\nimport { WixDataAggregateImpl } from './impl/WixDataAggregateImpl'\nimport { ApiClient } from './ApiClient'\nimport {\n WixDataPatch,\n FieldModification,\n WixDataBulkPatch,\n} from './WixDataPatch'\nimport { WixDataAggregate } from './WixDataAggregate'\nimport { WixDataFilter } from './WixDataFilter'\nimport { WixDataResult } from './WixDataResult'\nimport { WixDataBulkPatchImpl, WixDataPatchImpl } from './impl/WixDataPatchImpl'\nimport { WixDataSearch } from './WixDataSearch'\nimport { WixDataSearchImpl } from './impl/WixDataSearchImpl'\nimport { WixDataAggregatePipeline } from './WixDataAggregatePipeline'\nimport { WixDataAggregatePipelineImpl } from './impl/WixDataAggregatePipelineImpl'\nimport { PipelineStage } from './stages/stages'\n\ntype ProvidedOpt<T> = T | undefined | Provider<T | undefined>\ntype TraceWith = (\n label: string,\n opts?: object\n) => <T>(fn: () => Promise<T>) => Promise<T>\n\nexport class WixDataApi {\n private client: ApiClient\n\n constructor(\n clientFactory: HttpApiClientFactory<any>,\n allowGet: boolean,\n private readonly environment?: apiTypes.Environment,\n private readonly gridAppId?: ProvidedOpt<string>,\n private readonly tracer?: TraceWith\n ) {\n this.client = new ApiClient(clientFactory, allowGet)\n }\n\n get wixData(): WixDataApi {\n return this\n }\n\n get filter(): WixDataFilter {\n return filterBuilder()\n }\n\n // NOTE sort method for builder is not implemented\n\n truncate = withArgs(\n async (\n args,\n collectionName: string,\n options?: WixDataOptions\n ): Promise<void> => {\n await apiValidator()\n .arity('truncate', args, 1, 2)\n .collectionName(collectionName)\n .options(options)\n .validateAndReject()\n\n return this.trace('truncate', { collectionName })(async (env) => {\n await this.client.truncateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toOptions(options),\n })\n })\n }\n )\n\n // --- single-item methods ---\n\n get = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('get', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('get', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .getDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toReadOptions(options),\n fields: options?.fields,\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n insert = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataUpdateOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('insert', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n warnAboutBrokenFields(item)\n\n return this.trace('insert', { collectionName })(async (env) => {\n const { dataItem } = await this.client.insertDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n\n return toDataItem(dataItem!)\n })\n }\n )\n\n save = withArgs(\n async (\n args,\n collectionName: string,\n item: Partial<WixDataItem>,\n options?: WixDataUpdateOptions\n ): Promise<WixDataItem> => {\n await apiValidator()\n .arity('save', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('save', { collectionName })(async (env) => {\n const { dataItem } = await this.client.saveDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n update = withArgs(\n async (\n args,\n collectionName: string,\n item: WixDataItem,\n options?: WixDataUpdateOptions\n ) => {\n await apiValidator()\n .arity('update', args, 2, 3)\n .collectionName(collectionName)\n .item(item, collectionName, false)\n .options(options)\n .validateAndReject()\n\n return this.trace('update', { collectionName })(async (env) => {\n const { dataItem } = await this.client.updateDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItem: {\n id: item._id,\n data: item,\n },\n ...toUpdateOptions(options),\n })\n return toDataItem(dataItem!)\n })\n }\n )\n\n remove = withArgs(\n async (\n args,\n collectionName: string,\n itemId: string,\n options?: WixDataOptions\n ): Promise<WixDataItem | null> => {\n await apiValidator()\n .arity('remove', args, 2, 3)\n .collectionName(collectionName)\n .itemId(itemId)\n .options(options)\n .validateAndReject()\n\n return this.trace('remove', { collectionName, itemId })(async (env) => {\n const { dataItem } = await this.client\n .removeDataItem({\n ...env,\n dataCollectionId: collectionName,\n dataItemId: itemId,\n ...toOptions(options),\n })\n .catch(\n recover(ItemDoesNotExistCode, {} as apiTypes.GetDataItemResponse)\n )\n return dataItem ? toDataItem(dataItem) : null\n })\n }\n )\n\n private toFieldModificationApi = (fieldModification: FieldModification) => {\n switch (fieldModification.action) {\n case 'SET_FIELD':\n return {\n action: apiTypes.ACTION.SET_FIELD,\n fieldPath: fieldModification.fieldPath,\n setFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FIELD':\n return {\n action: apiTypes.ACTION.REMOVE_FIELD,\n fieldPath: fieldModification.fieldPath,\n }\n case 'INCREMENT_FIELD':\n return {\n action: apiTypes.ACTION.INCREMENT_FIELD,\n fieldPath: fieldModification.fieldPath,\n incrementFieldOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'APPEND_TO_ARRAY':\n return {\n action: apiTypes.ACTION.APPEND_TO_ARRAY,\n fieldPath: fieldModification.fieldPath,\n appendToArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n case 'REMOVE_FROM_ARRAY':\n return {\n action: apiTypes.ACTION.REMOVE_FROM_ARRAY,\n fieldPath: fieldModification.fieldPath,\n removeFromArrayOptions: {\n value: fieldModification.actionOptions,\n },\n }\n default:\n throw new Error('Invalid patch action')\n }\n }\n\n patch = (collectionName: string, itemId: string): WixDataPatch => {\n return new WixDataPatchImpl({\n collectionName,\n itemId,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('patch', { collectionName })(async (env) => {\n const result = await this.client.patchDataItem({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patch: {\n dataItemId: patchParams.itemId,\n fieldModifications,\n },\n ...toPatchOptions(options),\n })\n\n return result.dataItem ? toDataItem(result.dataItem) : null\n })\n },\n })\n }\n\n bulkPatch = (collectionName: string, itemIds: string[]): WixDataBulkPatch => {\n return new WixDataBulkPatchImpl({\n collectionName,\n itemIds,\n onRun: async (_args, patchParams, options) => {\n const fieldModifications = patchParams.fieldModifications.map(\n this.toFieldModificationApi\n )\n\n return this.trace('bulkPatch', { collectionName })(async (env) => {\n const { results } = await this.client.bulkPatchDataItems({\n ...env,\n dataCollectionId: patchParams.collectionName,\n patches: patchParams.itemIds.map((itemId) => ({\n dataItemId: itemId,\n fieldModifications,\n })),\n ...toPatchOptions(options),\n })\n\n return toBulkResult(itemIds, results!, ['WDE0073'])\n })\n },\n })\n }\n\n // --- query, count, distinct ---\n\n query = (collectionName: string): WixDataQuery => {\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataQueryImpl({\n collectionName,\n onCount: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('count', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n return this.trace('count', { collectionName })(async (env) => {\n const { totalCount } = await this.client.countDataItems({\n ...env,\n dataCollectionId: collectionName,\n filter: params.filterTree,\n ...toReadOptions(options),\n })\n return totalCount!\n })\n },\n onDistinct: async (args, params, field, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('distinct', args, 1, 2)\n .fieldName(field)\n .options(options)\n .validateAndReturn(),\n ])\n\n const order = toSort(params.orderBy).find(\n (o) => o.fieldName === field\n )?.order\n\n const fetch: PageFetcher<any> = (cursorOrOffset, returnTotalCount) =>\n this.trace('distinct', { collectionName, field })(async (env) => {\n const { distinctValues, pagingMetadata } =\n await this.client.queryDistinctValues({\n ...env,\n dataCollectionId: collectionName,\n ...toReadOptions(options),\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n fieldName: field,\n filter: params.filterTree,\n order,\n returnTotalCount,\n }\n : {}),\n })\n return [distinctValues!, pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n onFind: async (args, params, options) => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .arity('find', args, 0, 1)\n .options(options)\n .validateAndReturn(),\n ])\n\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n fields: params.projectedFields,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...(isOffset(cursorOrOffset)\n ? {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n }\n : {}),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset) ? { returnTotalCount } : {}),\n })\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 search = (collectionName: string): WixDataSearch => {\n const ensureValidQuery = (invalidArgs: string[]) => {\n if (invalidArgs.length > 0) {\n throw wdeValidationError(\n messages.queryValidations.queryInvalid(collectionName, invalidArgs)\n )\n }\n }\n\n return new WixDataSearchImpl({\n collectionName,\n onRun: async (\n params,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n ensureValidQuery([\n ...params.invalidArguments,\n ...apiValidator()\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ])\n\n const expression = params.queryText\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('search', { collectionName, expression })(async (env) => {\n const request: apiTypes.SearchDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n search: {\n filter: params.filterTree,\n sort: toSort(params.orderBy),\n fields: params.projectedFields,\n search: {\n expression: params.queryText,\n fuzzy: params.isFuzzy,\n mode: params.searchMode,\n },\n ...toPaging(params.limitNumber, cursorOrOffset),\n },\n referencedItemOptions: params.included,\n ...toReadOptions(options),\n }\n\n const { dataItems, pagingMetadata } =\n await this.client.searchDataItems(request)\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(params.skipNumber)\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n // NOTE find method is not implemented\n\n fetch = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('fetch', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher = (cursorOrOffset) =>\n this.trace('query', { collectionName })(async (env) => {\n const { dataItems, pagingMetadata } =\n await this.client.queryDataItems({\n ...env,\n dataCollectionId: collectionName,\n query: {\n ...toPaging(limit, cursorOrOffset),\n },\n ...toReadOptions(options),\n })\n return [dataItems!.map(toDataItem), pagingMetadata!]\n })\n const [items, paging] = await fetch(cursor)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n collectionName,\n skipNumber: 0,\n })\n }\n )\n\n // --- aggregate ---\n\n aggregate = (collectionName: string): WixDataAggregate => {\n return new WixDataAggregateImpl({\n collectionName,\n onRun: async (args, params, options) => {\n const validationErrors = [\n ...params.invalidArguments,\n ...apiValidator()\n .arity('run', args, 0, 1)\n .collectionName(collectionName)\n .options(options)\n .validateAndReturn(),\n ]\n\n if (validationErrors.length > 0) {\n throw wdeValidationError(\n messages.aggregateValidations.aggregateInvalid(\n collectionName,\n validationErrors\n )\n )\n }\n\n const fetch: PageFetcher<Record<string, any>> = (\n cursorOrOffset,\n returnTotalCount\n ) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const toOperation = (field?: string) =>\n field ? { itemFieldName: field } : undefined\n\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(params.limitNumber, cursorOrOffset),\n ...toReadOptions(options),\n ...(isOffset(cursorOrOffset)\n ? {\n initialFilter: params.filterTree,\n aggregation: {\n groupingFields: params.groupBy,\n operations: params.aggregates.map((a) => ({\n resultFieldName: a.name,\n average: toOperation(a.avg),\n min: toOperation(a.min),\n max: toOperation(a.max),\n sum: toOperation(a.sum),\n itemCount: a.count ? {} : undefined,\n })),\n },\n finalFilter: params.havingTree,\n sort: toSort(params.orderBy),\n returnTotalCount,\n }\n : {}),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n params.skipNumber,\n options?.returnTotalCount\n )\n\n return new WixDataResultImpl(items, paging, fetch, params)\n },\n })\n }\n\n fetchAggregate = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadOptions\n ) => {\n await apiValidator()\n .arity('fetchAggregate', args, 2, 4)\n .collectionName(collectionName)\n .isNonEmptyString(cursor, 'cursor')\n .validateAndReject()\n\n const fetch: PageFetcher<Record<string, any>> = (cursorOrOffset) =>\n this.trace('aggregate', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.aggregateDataItems({\n ...env,\n dataCollectionId: collectionName,\n ...toPaging(limit, cursorOrOffset),\n ...toReadOptions(options),\n })\n return [unwrapAggregationId(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor, true)\n\n return new WixDataResultImpl(items, paging, fetch, {\n limitNumber: limit,\n skipNumber: 0,\n collectionName,\n })\n }\n )\n\n aggregatePipeline = (\n collectionName: string,\n pipeline: PipelineStage[]\n ): WixDataAggregatePipeline => {\n return new WixDataAggregatePipelineImpl(\n collectionName,\n pipeline,\n this.client\n )\n }\n\n // --- bulk methods ---\n\n bulkRemove = withArgs(\n async (\n args,\n collectionName: string,\n itemIds: string[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkRemove', args, 2, 3)\n .collectionName(collectionName)\n .itemIds(itemIds, collectionName)\n .bulkRemoveOptions(options)\n .validateAndReject()\n\n return this.trace('bulkRemove', { collectionName })(async (env) => {\n const { results } = await this.client.bulkRemoveDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItemIds: itemIds,\n ...toOptions(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?: WixDataOptions,\n overrideExisting: boolean = true\n ): Promise<WixDataBulkResult> {\n const request: apiTypes.BulkInsertDataItemsRequest = {\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toOptions(options),\n }\n const { results } = await (overrideExisting\n ? this.client.bulkSaveDataItems(request)\n : this.client.bulkInsertDataItems(request))\n const ignoreCodes = overrideExisting ? [] : ['WDE0074']\n return toBulkResult(items, results!, ignoreCodes)\n }\n\n bulkInsert = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions & { overrideExisting?: boolean }\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkInsert', args, 2, 3)\n .items(items, collectionName)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .validateAndReject()\n\n return this.trace('bulkInsert', { collectionName, options })(\n async (appId) =>\n this.runBulkSave(\n appId,\n collectionName,\n items,\n options,\n options?.overrideExisting ?? false\n )\n )\n }\n )\n\n bulkSave = withArgs(\n async (\n args,\n collectionName: string,\n items: Partial<WixDataItem>[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkSave', args, 2, 3)\n .bulkInsertOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkSave', { collectionName })(async (env) =>\n this.runBulkSave(env, collectionName, items, options)\n )\n }\n )\n\n bulkUpdate = withArgs(\n async (\n args,\n collectionName: string,\n items: WixDataItem[],\n options?: WixDataOptions\n ): Promise<WixDataBulkResult> => {\n await apiValidator()\n .arity('bulkUpdate', args, 2, 3)\n .bulkUpdateOptions(options)\n .collectionName(collectionName)\n .items(items, collectionName)\n .validateAndReject()\n\n return this.trace('bulkUpdate', { collectionName })(async (env) => {\n const { results } = await this.client.bulkUpdateDataItems({\n ...env,\n dataCollectionId: collectionName,\n dataItems: items.map((data) => ({\n id: data._id,\n data,\n })),\n ...toOptions(options),\n })\n // Non-existing items are skipped and not reported as errors.\n return toBulkResult(items, results!, ['WDE0073'])\n })\n }\n )\n\n // --- references ---\n\n fetchReferenced = withArgs(\n async (\n args,\n collectionName: string,\n cursor: string,\n limit?: number,\n options?: WixDataReadWithProjectionOptions\n ): Promise<WixDataResult<WixDataItem | string>> => {\n await apiValidator()\n .arity('fetchReferenced', args, 2, 4)\n .isNonEmptyString(cursor, 'cursor')\n .collectionName(collectionName)\n .validateAndReject()\n\n const fetch: PageFetcher<WixDataItem | string> = (current) =>\n this.trace('fetchReferenced', { collectionName })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(limit, current),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(cursor)\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: limit,\n skipNumber: 0,\n })\n }\n )\n\n queryReferenced = withArgs(\n async (\n args,\n collectionName: string,\n holdingItem: WixDataItemOrId,\n relationshipAttribute: string,\n options?: WixDataQueryReferencedOptions\n ): Promise<WixDataResult> => {\n await apiValidator()\n .arity('queryReferenced', args, 3, 4)\n .collectionName(collectionName)\n .referenceParameter(holdingItem)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n const id = itemId(holdingItem)\n const fetch: PageFetcher = (cursorOrOffset, returnTotalCount) =>\n this.trace('queryReferenced', {\n collectionName,\n itemId: id,\n options,\n relationshipAttribute,\n })(async (env) => {\n const { results, pagingMetadata } =\n await this.client.queryReferencedDataItems({\n ...env,\n ...toPaging(options?.limit ?? 50, cursorOrOffset),\n ...toReadOptions(options),\n dataCollectionId: collectionName,\n fields: options?.fields,\n ...(isOffset(cursorOrOffset)\n ? {\n referringItemId: id,\n referringItemFieldName: relationshipAttribute,\n order:\n options?.order === 'asc'\n ? apiTypes.SortOrder.ASC\n : options?.order === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined,\n returnTotalCount,\n }\n : {}),\n })\n return [onlyReferencedItems(results!), pagingMetadata!]\n })\n\n const [items, paging] = await fetch(\n options?.skip ?? 0,\n options?.returnTotalCount\n )\n return new WixDataResultImpl(items, paging, fetch, {\n collectionName,\n limitNumber: options?.limit ?? 50,\n skipNumber: options?.skip ?? 0,\n })\n }\n )\n\n insertReference: {\n // overload with array of references\n (\n collectionName: string,\n refs: WixDataReference[],\n options?: WixDataOptions\n ): Promise<void>\n // overload with separate left and right(s)\n (\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void>\n } = withArgs(\n async (\n args,\n collectionName: string,\n refsOrAttr: any,\n leftOrOpts?: any,\n right?: any,\n options?: any\n ) => {\n let refs: WixDataReference[]\n let opts: WixDataOptions\n let argc: [number, number]\n\n if (typeof refsOrAttr === 'string') {\n const rights: WixDataItemOrId[] = asArray(right)\n refs = rights.map((r) => ({\n relationshipName: refsOrAttr,\n left: leftOrOpts as WixDataItemOrId,\n right: r,\n }))\n opts = options\n argc = [4, 5]\n } else {\n refs = refsOrAttr\n opts = leftOrOpts\n argc = [2, 3]\n }\n await apiValidator()\n .arity('insertReference', args, ...argc)\n .collectionName(collectionName)\n .references(refs)\n .options(opts)\n .validateAndReject()\n\n await this.trace('insertReference', { collectionName })(async (env) =>\n this.client.bulkInsertDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: refs.map((r) => ({\n referringItemFieldName: r.relationshipName,\n referringItemId: itemId(r.left),\n referencedItemId: itemId(r.right),\n })),\n ...toOptions(opts),\n })\n )\n }\n )\n\n replaceReferences = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ): Promise<void> => {\n const rights = asArray(right)\n await apiValidator()\n .arity('replaceReferences', args, 4, 5)\n .collectionName(collectionName)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .referenceParameter(left)\n .referenceParameters(rights)\n .options(options)\n .validateAndReject()\n\n await this.trace('replaceReferences', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.replaceDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n newReferencedItemIds: rights.map(itemId),\n ...toOptions(options),\n })\n )\n }\n )\n\n removeReference = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId | WixDataItemOrId[],\n options?: WixDataOptions\n ) => {\n const rights = asArray(right)\n await apiValidator()\n .arity('removeReference', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceRemoveParameters(rights)\n .isNonEmptyString(relationshipAttribute, 'relationshipAttribute')\n .options(options)\n .validateAndReject()\n\n await this.trace('removeReference', {\n collectionName,\n relationshipAttribute,\n })(async (env) =>\n this.client.bulkRemoveDataItemReferences({\n ...env,\n dataCollectionId: collectionName,\n dataItemReferences: rights.map((r) => ({\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(r),\n })),\n ...toOptions(options),\n })\n )\n }\n )\n\n isReferenced = withArgs(\n async (\n args,\n collectionName: string,\n relationshipAttribute: string,\n left: WixDataItemOrId,\n right: WixDataItemOrId,\n options?: WixDataReadOptions\n ): Promise<boolean> => {\n await apiValidator()\n .arity('isReferenced', args, 4, 5)\n .collectionName(collectionName)\n .referenceParameter(left)\n .referenceParameter(right)\n .options(options)\n .validateAndReject()\n\n return this.trace('isReferenced', {\n collectionName,\n relationshipAttribute,\n })(async (env) => {\n const { isReferenced } = await this.client.isReferencedDataItem({\n ...env,\n dataCollectionId: collectionName,\n referringItemFieldName: relationshipAttribute,\n referringItemId: itemId(left),\n referencedItemId: itemId(right),\n ...toReadOptions(options),\n consistentRead: options?.consistentRead,\n })\n return isReferenced!\n })\n }\n )\n\n private trace(\n action: string,\n opts: object\n ): <R>(\n fn: (env: {\n environment?: apiTypes.Environment\n appId?: string\n }) => Promise<R>\n ) => Promise<R> {\n return async (fn) => {\n const gridAppId = await get(this.gridAppId)\n const env = { appId: gridAppId, environment: this.environment }\n if (this.tracer) {\n return this.tracer(`WixDataApi.${action}`, {\n ...opts,\n gridAppId,\n environment: this.environment,\n })(() => fn(env))\n }\n return fn(env)\n }\n }\n}\n\nfunction withArgs<Args extends any[], R>(\n fn: (all: IArguments, ...args: Args) => R\n): (...args: Args) => R {\n return function (...args) {\n return fn(arguments, ...args)\n }\n}\n\nfunction toPatchOptions(options?: WixDataPatchOptions) {\n return {\n suppressHooks: options?.suppressHooks,\n ...draftsOptions(options?.showDrafts),\n }\n}\n\nfunction toUpdateOptions(options?: WixDataUpdateOptions) {\n return {\n ...toOptions(options),\n includeReferencedItems: options?.includeReferences,\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 draftsOptions(showDrafts?: boolean) {\n return showDrafts !== undefined\n ? { publishPluginOptions: { includeDraftItems: showDrafts } }\n : {}\n}\n\nfunction toDataItem(item: apiTypes.DataItem): WixDataItem {\n return item.data as WixDataItem\n}\n\nfunction toPaging(limit: number | undefined, cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'string'\n ? {\n cursorPaging: {\n limit,\n cursor: cursorOrOffset,\n },\n }\n : limit !== undefined || cursorOrOffset > 0\n ? {\n paging: {\n limit,\n offset: cursorOrOffset,\n },\n }\n : {}\n}\n\nfunction toSort(orderBy: QueryParams['orderBy']): apiTypes.Sorting[] {\n return orderBy.map((fieldOrder) => {\n const [[fieldName, sort]] = Object.entries(fieldOrder)\n const order =\n sort === 'asc'\n ? apiTypes.SortOrder.ASC\n : sort === 'desc'\n ? apiTypes.SortOrder.DESC\n : undefined\n return { fieldName, order }\n })\n}\n\nasync function get<T>(providerOrValue: T | Provider<T>): Promise<T> {\n if (typeof (providerOrValue as any)?.get === 'function') {\n return (providerOrValue as Provider<T>).get()\n }\n return providerOrValue as T\n}\n\nfunction recover<T>(code: string, value: T): (error: unknown) => Promise<T> {\n return (error) => {\n if (\n error instanceof Error &&\n (error as any)?.details?.applicationError?.code === code\n ) {\n return Promise.resolve(value)\n }\n return Promise.reject(error)\n }\n}\n\nfunction warnAboutBrokenFields(item: Partial<WixDataItem>) {\n const hasFieldWithDollar = hasField(item, (key) => key.startsWith('$'))\n const hasFieldWithDot = hasField(item, (key) => key.includes('.'))\n if (hasFieldWithDollar) {\n console.error(\n \"Data inserted contains field name prefixed with symbol '$'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n if (hasFieldWithDot) {\n console.warn(\n \"Data inserted contains field name containing symbol '.'. It is not recommended to use such field names as it will not work with some data operations.\"\n )\n }\n}\n\nfunction toBulkResult(\n request: any[],\n results: apiTypes.BulkDataItemResult[],\n ignoreCodes: string[] = []\n): WixDataBulkResult {\n const errors = results.flatMap((r) => {\n if (r.itemMetadata?.success || !r.itemMetadata?.error) {\n return []\n }\n if (ignoreCodes.includes(r.itemMetadata.error.code ?? '')) {\n return []\n }\n return [\n new BulkError(\n r.itemMetadata.error.description!,\n r.itemMetadata.error.code!,\n request[r.itemMetadata.originalIndex!],\n 'BulkError',\n r.itemMetadata.originalIndex!\n ),\n ]\n })\n const success = results.filter((r) => r.itemMetadata?.success)\n const inserted = success.filter(\n (r) => r.action === apiTypes.BulkActionType.INSERT\n )\n const updated = success.filter(\n (r) =>\n r.action === apiTypes.BulkActionType.UPDATE ||\n r.action === apiTypes.BulkActionType.PATCH\n )\n const removed = success.filter(\n (r) => r.action === apiTypes.BulkActionType.DELETE\n )\n return {\n inserted: inserted.length,\n updated: updated.length,\n removed: removed.length,\n skipped: request.length - errors.length - success.length,\n errors,\n insertedItemIds: inserted.map((r) => r.itemMetadata?.id!),\n updatedItemIds: updated.map((r) => r.itemMetadata?.id!),\n removedItemIds: removed.map((r) => r.itemMetadata?.id!),\n }\n}\n\nfunction unwrapAggregationId(\n items: Record<string, any>[]\n): Record<string, any>[] {\n // When grouping by one field WixDataService returns value on _id field directly, DataItemService wraps it in an object, i.e.\n // grouping by surname returns {_id: 'Simpson'} in WixDataService vs {_id: {surname: 'Simpson'}} in DataItemService\n // When grouping by more fields, values are kept wrapped.\n return items.map((item) => {\n const id = item._id\n if (isObject(id)) {\n const [key, ...rest] = Object.keys(id)\n if (rest.length === 0) {\n item._id = id[key]\n return item\n }\n }\n return item\n })\n}\n\nfunction onlyReferencedItems(\n results: apiTypes.ReferencedResult[]\n): WixDataItem[] {\n return results\n .map((result) => result.dataItem)\n .filter(notEmpty)\n .map(toDataItem)\n}\n\nfunction notEmpty<T>(value: T | null | undefined): value is T {\n return value != null\n}\n\nfunction itemId(item: WixDataItemOrId): string {\n return typeof item === 'string' ? item : item._id\n}\n\nfunction asArray<T>(xOrXs: T | T[]): T[] {\n return isArray(xOrXs) ? (xOrXs as T[]) : [xOrXs as T]\n}\n\nfunction isOffset(cursorOrOffset: string | number) {\n return typeof cursorOrOffset === 'number'\n}\n\nconst ItemDoesNotExistCode = 'WDE0073'\n\nfunction apiValidator() {\n return commonApiValidator(wdeValidationError)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.WixDataAggregatePipelineImpl = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _WixDataResultImpl = require("./WixDataResultImpl");
8
+ var _PipelineValidator = require("../PipelineValidator");
9
+ class WixDataAggregatePipelineImpl {
10
+ constructor(collectionName, pipeline, client, limitNumber, skipNumber, invalidArguments) {
11
+ this.collectionName = collectionName;
12
+ this.pipeline = pipeline;
13
+ this.client = client;
14
+ this.limitNumber = limitNumber;
15
+ this.skipNumber = skipNumber;
16
+ (0, _defineProperty2.default)(this, "ownInvalidArguments", void 0);
17
+ this.ownInvalidArguments = invalidArguments ?? [];
18
+ }
19
+ get invalidArguments() {
20
+ return this.ownInvalidArguments;
21
+ }
22
+ async run(options) {
23
+ var _response$pagingMetad, _response$results;
24
+ if (this.invalidArguments.length > 0) {
25
+ throw new Error(this.invalidArguments.join(', '));
26
+ }
27
+ const stages = this.pipeline.map(stage => stage.toProto());
28
+ const response = await this.client.aggregatePipelineDataItems({
29
+ dataCollectionId: this.collectionName,
30
+ stages,
31
+ ...options,
32
+ paging: {
33
+ offset: this.skipNumber,
34
+ limit: this.limitNumber
35
+ }
36
+ });
37
+ const fetch = async (cursorOrOffset, returnTotalCount) => {
38
+ const request = {
39
+ dataCollectionId: this.collectionName,
40
+ stages,
41
+ ...options
42
+ };
43
+ if (typeof cursorOrOffset === 'string') {
44
+ request.cursorPaging = {
45
+ limit: this.limitNumber,
46
+ cursor: cursorOrOffset
47
+ };
48
+ // Stages must not be sent if using cursor paging, as they'll be reused from original request
49
+ request.stages = undefined;
50
+ } else {
51
+ request.paging = {
52
+ limit: this.limitNumber,
53
+ offset: cursorOrOffset
54
+ };
55
+ }
56
+ if (returnTotalCount) {
57
+ request.returnTotalCount = true;
58
+ }
59
+ const {
60
+ results,
61
+ pagingMetadata
62
+ } = await this.client.aggregatePipelineDataItems(request);
63
+ return [results, pagingMetadata];
64
+ };
65
+ return new _WixDataResultImpl.WixDataResultImpl(response.results || [], response.pagingMetadata || {
66
+ count: 0,
67
+ offset: 0
68
+ }, fetch, {
69
+ collectionName: this.collectionName,
70
+ skipNumber: ((_response$pagingMetad = response.pagingMetadata) == null ? void 0 : _response$pagingMetad.offset) || 0,
71
+ limitNumber: (_response$results = response.results) == null ? void 0 : _response$results.length
72
+ });
73
+ }
74
+ limit(limitNumber) {
75
+ const [invalidArguments] = this.pipelineValidator('.limit').arityIsOne(arguments).isPositiveNumber(limitNumber).validateAndAggregate();
76
+ return this.copy({
77
+ limitNumber,
78
+ invalidArguments
79
+ });
80
+ }
81
+ skip(skipNumber) {
82
+ const [invalidArguments] = this.pipelineValidator('.skip').arityIsOne(arguments).isNonNegativeNumber(skipNumber).validateAndAggregate();
83
+ return this.copy({
84
+ skipNumber,
85
+ invalidArguments
86
+ });
87
+ }
88
+ pipelineValidator(operatorName) {
89
+ return new _PipelineValidator.PipelineValidator(operatorName, this.ownInvalidArguments);
90
+ }
91
+ copy(params) {
92
+ return new WixDataAggregatePipelineImpl(this.collectionName, this.pipeline, this.client, params.limitNumber ?? this.limitNumber, params.skipNumber ?? this.skipNumber, params.invalidArguments ?? this.ownInvalidArguments);
93
+ }
94
+ }
95
+ exports.WixDataAggregatePipelineImpl = WixDataAggregatePipelineImpl;
96
+ //# sourceMappingURL=WixDataAggregatePipelineImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_WixDataResultImpl","require","_PipelineValidator","WixDataAggregatePipelineImpl","constructor","collectionName","pipeline","client","limitNumber","skipNumber","invalidArguments","_defineProperty2","default","ownInvalidArguments","run","options","_response$pagingMetad","_response$results","length","Error","join","stages","map","stage","toProto","response","aggregatePipelineDataItems","dataCollectionId","paging","offset","limit","fetch","cursorOrOffset","returnTotalCount","request","cursorPaging","cursor","undefined","results","pagingMetadata","WixDataResultImpl","count","pipelineValidator","arityIsOne","arguments","isPositiveNumber","validateAndAggregate","copy","skip","isNonNegativeNumber","operatorName","PipelineValidator","params","exports"],"sources":["../../../../src/api/impl/WixDataAggregatePipelineImpl.ts"],"sourcesContent":["import { WixDataAggregateOptions } from '../types'\nimport { WixDataResult } from '../WixDataResult'\nimport { WixDataResultImpl, PageFetcher } from './WixDataResultImpl'\nimport { PipelineStage } from '../stages/stages'\nimport { ApiClient } from '../ApiClient'\nimport * as apiTypes from '../../types/data-item-types'\nimport { WixDataAggregatePipeline } from '../WixDataAggregatePipeline'\nimport { PipelineValidator } from '../PipelineValidator'\n\nexport class WixDataAggregatePipelineImpl implements WixDataAggregatePipeline {\n private readonly ownInvalidArguments: string[]\n\n constructor(\n private collectionName: string,\n private pipeline: PipelineStage[],\n private client: ApiClient,\n private limitNumber?: number,\n private skipNumber?: number,\n invalidArguments?: string[]\n ) {\n this.ownInvalidArguments = invalidArguments ?? []\n }\n\n get invalidArguments(): string[] {\n return this.ownInvalidArguments\n }\n\n async run(\n options?: WixDataAggregateOptions\n ): Promise<WixDataResult<Record<string, any>>> {\n if (this.invalidArguments.length > 0) {\n throw new Error(this.invalidArguments.join(', '))\n }\n\n const stages: apiTypes.Stage[] = this.pipeline.map((stage) =>\n stage.toProto()\n )\n\n const response = await this.client.aggregatePipelineDataItems({\n dataCollectionId: this.collectionName,\n stages,\n ...options,\n paging: { offset: this.skipNumber, limit: this.limitNumber },\n })\n\n const fetch: PageFetcher<Record<string, any>> = async (\n cursorOrOffset: string | number,\n returnTotalCount?: boolean\n ): Promise<[Record<string, any>[], apiTypes.PagingMetadataV2]> => {\n const request: apiTypes.AggregatePipelineDataItemsRequest = {\n dataCollectionId: this.collectionName,\n stages,\n ...options,\n }\n\n if (typeof cursorOrOffset === 'string') {\n request.cursorPaging = {\n limit: this.limitNumber,\n cursor: cursorOrOffset,\n }\n // Stages must not be sent if using cursor paging, as they'll be reused from original request\n request.stages = undefined\n } else {\n request.paging = { limit: this.limitNumber, offset: cursorOrOffset }\n }\n\n if (returnTotalCount) {\n request.returnTotalCount = true\n }\n\n const { results, pagingMetadata } =\n await this.client.aggregatePipelineDataItems(request)\n return [results!, pagingMetadata!]\n }\n\n return new WixDataResultImpl(\n response.results || [],\n response.pagingMetadata || { count: 0, offset: 0 },\n fetch,\n {\n collectionName: this.collectionName,\n skipNumber: response.pagingMetadata?.offset || 0,\n limitNumber: response.results?.length,\n }\n )\n }\n\n limit(limitNumber: number): WixDataAggregatePipeline {\n const [invalidArguments] = this.pipelineValidator('.limit')\n .arityIsOne(arguments)\n .isPositiveNumber(limitNumber)\n .validateAndAggregate()\n\n return this.copy({ limitNumber, invalidArguments })\n }\n\n skip(skipNumber: number): WixDataAggregatePipeline {\n const [invalidArguments] = this.pipelineValidator('.skip')\n .arityIsOne(arguments)\n .isNonNegativeNumber(skipNumber)\n .validateAndAggregate()\n\n return this.copy({ skipNumber, invalidArguments })\n }\n\n private pipelineValidator(operatorName: string) {\n return new PipelineValidator(operatorName, this.ownInvalidArguments)\n }\n\n private copy(params: {\n limitNumber?: number\n skipNumber?: number\n invalidArguments?: string[]\n }): WixDataAggregatePipelineImpl {\n return new WixDataAggregatePipelineImpl(\n this.collectionName,\n this.pipeline,\n this.client,\n params.limitNumber ?? this.limitNumber,\n params.skipNumber ?? this.skipNumber,\n params.invalidArguments ?? this.ownInvalidArguments\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.WixDataUpdateOptions = exports.WixDataSearch = exports.WixDataResult = exports.WixDataReference = exports.WixDataReadWithProjectionOptions = exports.WixDataReadOptions = exports.WixDataQueryReferencedOptions = exports.WixDataQueryOptions = exports.WixDataQuery = exports.WixDataPatchOptions = exports.WixDataPatch = exports.WixDataOptions = exports.WixDataItem = exports.WixDataFilter = exports.WixDataBulkResult = exports.WixDataBulkPatch = exports.WixDataBulkError = exports.WixDataApi = exports.WixDataAggregateOptions = exports.WixDataAggregate = exports.QueryValidator = exports.QueryBase = void 0;
4
+ exports.stages = exports.WixDataUpdateOptions = exports.WixDataSearch = exports.WixDataResult = exports.WixDataReference = exports.WixDataReadWithProjectionOptions = exports.WixDataReadOptions = exports.WixDataQueryReferencedOptions = exports.WixDataQueryOptions = exports.WixDataQuery = exports.WixDataPatchOptions = exports.WixDataPatch = exports.WixDataOptions = exports.WixDataItem = exports.WixDataFilter = exports.WixDataBulkResult = exports.WixDataBulkPatch = exports.WixDataBulkError = exports.WixDataApi = exports.WixDataAggregatePipeline = exports.WixDataAggregateOptions = exports.WixDataAggregate = exports.QueryValidator = exports.QueryBase = exports.PipelineStage = void 0;
5
5
  var _WixDataQuery = require("./WixDataQuery");
6
6
  exports.WixDataQuery = _WixDataQuery.WixDataQuery;
7
7
  var _WixDataSearch = require("./WixDataSearch");
@@ -14,6 +14,8 @@ var _QueryValidator = require("./QueryValidator");
14
14
  exports.QueryValidator = _QueryValidator.QueryValidator;
15
15
  var _WixDataAggregate = require("./WixDataAggregate");
16
16
  exports.WixDataAggregate = _WixDataAggregate.WixDataAggregate;
17
+ var _WixDataAggregatePipeline = require("./WixDataAggregatePipeline");
18
+ exports.WixDataAggregatePipeline = _WixDataAggregatePipeline.WixDataAggregatePipeline;
17
19
  var _QueryBase = require("./QueryBase");
18
20
  exports.QueryBase = _QueryBase.QueryBase;
19
21
  var _WixDataPatch = require("./WixDataPatch");
@@ -34,4 +36,7 @@ exports.WixDataBulkError = _types.WixDataBulkError;
34
36
  exports.WixDataBulkResult = _types.WixDataBulkResult;
35
37
  exports.WixDataQueryReferencedOptions = _types.WixDataQueryReferencedOptions;
36
38
  exports.WixDataAggregateOptions = _types.WixDataAggregateOptions;
39
+ var _stages = require("./stages/stages");
40
+ exports.stages = _stages.stages;
41
+ exports.PipelineStage = _stages.PipelineStage;
37
42
  //# sourceMappingURL=index.js.map