{"version":3,"sources":["../../../src/service-plugins-types.ts","../../../src/data-externaldatabasespi-v3-main-entity.public.ts","../../../src/data-externaldatabasespi-v3-main-entity.context.ts","../../../src/service-plugins-error-classes.ts"],"sourcesContent":["/** Dummy entity. */\nexport interface MainEntity {\n  /**\n   * Dummy ID.\n   * @readonly\n   * @format GUID\n   */\n  _id?: string;\n}\n\nexport interface QueryDataItemsRequest {\n  /** ID of the collection to query. */\n  collectionId: string;\n  /** Query preferences. See [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) for information about handling data queries. */\n  query: QueryV2;\n  /**\n   * Fields for which to include the full referenced items in the query's results, rather than just their IDs.\n   * Returned items are sorted in ascending order by the creation date of the reference.\n   * If the field being querried is a multi-reference field and the array is empty, the response does not return any items.\n   */\n  includeReferencedItems?: ReferencedItemToInclude[];\n  /** Whether to retrieve data from the primary database instance. This decreases performance but ensures data retrieved is up-to-date even immediately after an update. Applicable if the external database is eventually consistent. */\n  consistentRead: boolean;\n  /** When `true`, the query response must include the total number of items that match the query. */\n  returnTotalCount: boolean;\n}\n\nexport interface QueryV2 extends QueryV2PagingMethodOneOf {\n  /** Paging options to limit and skip the number of items. Paging mode is defined when the collection is created. */\n  paging?: Paging;\n  /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. Paging mode is defined when the collection is created. */\n  cursorPaging?: CursorPaging;\n  /**\n   * Filter object in the following format:\n   * `\"filter\" : {\n   * \"fieldName1\": \"value1\",\n   * \"fieldName2\":{\"$operator\":\"value2\"}\n   * }`\n   * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n   *\n   * **Note:** Your endpoint must properly handle requests with filtering preferences that adhere to Wix Data data types. For example, a query request that includes filtering by a field whose type is Date and Time would contain an object in the following format: `\"someDateAndTimeFieldKey\": { \"$date\": \"YYYY-MM-DDTHH:mm:ss.sssZ\"}`. Learn more about [data types in Wix Data](https://dev.wix.com/docs/rest/business-solutions/cms/data-items/data-types-in-wix-data).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object in the following format:\n   * `[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`\n   */\n  sort?: Sorting[];\n  /** Array of projected fields. A list of specific field names to return. */\n  fields?: string[];\n}\n\n/** @oneof */\nexport interface QueryV2PagingMethodOneOf {\n  /** Paging options to limit and skip the number of items. Paging mode is defined when the collection is created. */\n  paging?: Paging;\n  /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. Paging mode is defined when the collection is created. */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Sorting {\n  /** Name of the field to sort by. */\n  fieldName?: string;\n  /** Sort order. */\n  order?: SortOrder;\n}\n\nexport enum SortOrder {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\nexport interface Paging {\n  /** Number of items to load. */\n  limit?: number | null;\n  /** Number of items to skip in the current sort order. */\n  offset?: number | null;\n}\n\nexport interface CursorPaging {\n  /**\n   * Number of items to load.\n   * @max 1000\n   */\n  limit?: number | null;\n  /**\n   * Pointer to the next or previous page in the list of results.\n   *\n   * You can get the relevant cursor token\n   * from the `pagingMetadata` object in the previous call's response.\n   * Not relevant for the first request.\n   */\n  cursor?: string | null;\n}\n\nexport interface ReferencedItemToInclude {\n  /** Field name in the referencing collection. */\n  fieldKey?: string;\n  /** Maximum number of referenced items to return. */\n  limit?: number;\n  /** Filter criteria to specify which items to include in the response. */\n  filter?: Record<string, any> | null;\n}\n\nexport interface QueryDataItemsResponse {\n  /** Retrieved items. */\n  items?: Record<string, any>[] | null;\n  /** Pagination information. */\n  pagingMetadata?: PagingMetadataV2;\n}\n\nexport interface PagingMetadataV2 {\n  /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */\n  total?: number | null;\n  /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */\n  cursors?: Cursors;\n}\n\nexport interface Cursors {\n  /** Cursor pointing to next page in the list of results. */\n  next?: string | null;\n  /** Cursor pointing to previous page in the list of results. */\n  prev?: string | null;\n}\n\nexport interface ItemAlreadyExistsError {\n  /**\n   * ID of the item that already exists.\n   * @maxLength 256\n   */\n  itemId?: string;\n}\n\nexport interface ItemNotFoundError {\n  /**\n   * ID of the item that was not found.\n   * @maxLength 256\n   */\n  itemId?: string;\n}\n\nexport interface CollectionAlreadyExistsError {\n  /**\n   * ID of the collection that already exists.\n   * @maxLength 256\n   */\n  collectionId?: string;\n}\n\nexport interface CollectionNotFoundError {\n  /**\n   * ID of the collection that was not found.\n   * @maxLength 256\n   */\n  collectionId?: string;\n}\n\nexport interface ReferenceAlreadyExistsError {\n  /**\n   * ID of the referring item.\n   * @maxLength 256\n   */\n  referringItemId?: string;\n  /**\n   * ID of the referenced item.\n   * @maxLength 256\n   */\n  referencedItemId?: string;\n}\n\nexport interface ReferenceNotFoundError {\n  /**\n   * ID of the referring item.\n   * @maxLength 256\n   */\n  referringItemId?: string;\n  /**\n   * ID of the referenced item.\n   * @maxLength 256\n   */\n  referencedItemId?: string;\n}\n\nexport interface ValidationError {\n  /**\n   * Violations that caused the validation to fail.\n   * @maxSize 100\n   */\n  violations?: ValidationViolation[];\n}\n\nexport interface ValidationViolation {\n  /**\n   * Path to the invalid field that caused the violation.\n   * @maxLength 1000\n   */\n  fieldPath?: string | null;\n  /**\n   * The rejected value.\n   * @maxLength 1000\n   */\n  rejectedValue?: string | null;\n  /**\n   * Error message that describes the violation.\n   * @maxLength 10000\n   */\n  message?: string;\n}\n\nexport interface CollectionChangeNotSupported {\n  /**\n   * Errors that caused the change to fail. Learn more about [errors](data/cloud-data-spi/proto-spi/docs/errors.md) in the External Database Connections service plugin.\n   * @maxSize 100\n   */\n  errors?: CollectionChangeNotSupportedError[];\n}\n\nexport interface CollectionChangeNotSupportedError {\n  /**\n   * Key of collection field that can't be changed.\n   * @maxLength 250\n   */\n  fieldKey?: string | null;\n  /**\n   * Error message with additional details.\n   * @maxLength 1000\n   */\n  message?: string;\n}\n\nexport interface CountDataItemsRequest {\n  /** ID of the collection to query. */\n  collectionId: string;\n  /** Filter to specify which items to count. See [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section) for more information about handling data queries. */\n  filter: Record<string, any> | null;\n  /** Whether to retrieve data from the primary database instance. This decreases performance but ensures data retrieved is up-to-date even immediately after an update. Applicable if the external database is eventually consistent. */\n  consistentRead: boolean;\n}\n\nexport interface CountDataItemsResponse {\n  /** Number of items that match the query. */\n  totalCount?: number;\n}\n\nexport interface AggregateDataItemsRequest\n  extends AggregateDataItemsRequestPagingMethodOneOf {\n  paging?: Paging;\n  cursorPaging?: CursorPaging;\n  /** ID of the collection on which to run the aggregation. */\n  collectionId: string;\n  /** Filter to apply to the collection's data before aggregation. See [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section) for more information about handling data queries. */\n  initialFilter?: Record<string, any> | null;\n  /** Aggregation to apply to the data. */\n  aggregation?: Aggregation;\n  /** Filter to apply to the processed data after aggregation. See [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section) for more information about handling data queries. */\n  finalFilter?: Record<string, any> | null;\n  /** Sorting configuration. */\n  sort?: Sorting[];\n  /** Whether to retrieve data from the primary database instance. This decreases performance but ensures data retrieved is up-to-date even immediately after an update. Applicable if the external database is eventually consistent. */\n  consistentRead: boolean;\n  /** When `true`, the query response must include the total number of items that match the query. */\n  returnTotalCount: boolean;\n}\n\n/** @oneof */\nexport interface AggregateDataItemsRequestPagingMethodOneOf {\n  paging?: Paging;\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Operation extends OperationCalculateOneOf {\n  /** Calculate the average value of a specified field for all items in the grouping. */\n  average?: Average;\n  /** Calculate the minimum value of a specified field for all items in the grouping. */\n  min?: Min;\n  /** Calculate the maximum value of a specified field for all items in the grouping. */\n  max?: Max;\n  /** Calculate the sum of values of a specified field for all items in the grouping. */\n  sum?: Sum;\n  /** Calculate the number of items in the grouping. */\n  itemCount?: Count;\n  /** Name of the field that contains the results of the operation. */\n  resultFieldName?: string;\n}\n\n/** @oneof */\nexport interface OperationCalculateOneOf {\n  /** Calculate the average value of a specified field for all items in the grouping. */\n  average?: Average;\n  /** Calculate the minimum value of a specified field for all items in the grouping. */\n  min?: Min;\n  /** Calculate the maximum value of a specified field for all items in the grouping. */\n  max?: Max;\n  /** Calculate the sum of values of a specified field for all items in the grouping. */\n  sum?: Sum;\n  /** Calculate the number of items in the grouping. */\n  itemCount?: Count;\n}\n\nexport interface Average {\n  /** Name of the field for which to calculate the average value. */\n  itemFieldName?: string;\n}\n\nexport interface Min {\n  /** Name of the field for which to calculate the minimum value. */\n  itemFieldName?: string;\n}\n\nexport interface Max {\n  /** Name of the field for which to calculate the maximum value. */\n  itemFieldName?: string;\n}\n\nexport interface Sum {\n  /** Name of the field for which to calculate the sum. */\n  itemFieldName?: string;\n}\n\nexport interface Count {}\n\nexport interface Aggregation {\n  /** Fields by which to group items for the aggregation, in the order they appear in the array. If empty, the aggregation must be applied to the entire collection. */\n  groupingFields?: string[];\n  /** Operations to carry out on the data in each grouping. */\n  operations?: Operation[];\n}\n\nexport interface AggregateDataItemsResponse {\n  /** Aggregation results. Each result must contain a field for each `groupingFields` value, and a field for each `operations.resultFieldName` value. */\n  items?: Record<string, any>[] | null;\n  /** Paging information. */\n  pagingMetadata?: PagingMetadataV2;\n}\n\nexport interface QueryDistinctValuesRequest\n  extends QueryDistinctValuesRequestPagingMethodOneOf {\n  paging?: Paging;\n  cursorPaging?: CursorPaging;\n  /** ID of the collection to query. */\n  collectionId: string;\n  /** Filter to apply to the collection's data before aggregation. See [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#the-filter-section) for more information about handling data queries. */\n  filter?: Record<string, any> | null;\n  /** Item field name for which to return all distinct values. */\n  fieldName: string;\n  /** Order to by which to sort the results. Valid values are `ASC` and `DESC`. */\n  order?: SortOrder;\n  /** Whether to retrieve data from the primary database instance. This decreases performance but ensures data retrieved is up-to-date even immediately after an update. Applicable if the external database is eventually consistent. */\n  consistentRead: boolean;\n  /** When `true`, the query response must include the total number of items that match the query. */\n  returnTotalCount: boolean;\n}\n\n/** @oneof */\nexport interface QueryDistinctValuesRequestPagingMethodOneOf {\n  paging?: Paging;\n  cursorPaging?: CursorPaging;\n}\n\nexport interface QueryDistinctValuesResponse {\n  /**\n   * List of distinct values contained in the field specified in `fieldName`. Values can be of any JSON type.\n   * If the field is an array, values must be unwound, independent values. For example, if the field name contains `[\"a\", \"b\", \"c\"]`, the result must contain `\"a\"`, `\"b\"` and `\"c\"` as separate values.\n   */\n  distinctValues?: any[];\n  /** Paging information. */\n  pagingMetadata?: PagingMetadataV2;\n}\n\nexport interface InsertDataItemsRequest {\n  /** ID of the collection in which to insert the items. */\n  collectionId: string;\n  /**\n   * Items to insert.\n   * @minSize 1\n   */\n  items: Record<string, any>[] | null;\n}\n\nexport interface InsertDataItemsResponse {\n  /** Response must include either the inserted item or an error. */\n  results?: DataItemModificationResult[];\n}\n\nexport interface DataItemModificationResult\n  extends DataItemModificationResultResultOneOf {\n  /** Item that was inserted, updated or removed. */\n  item?: Record<string, any> | null;\n  /** Error indicating why the operation failed for a particular item. Learn more about [error types](https://dev.wix.com/docs/rest/assets/data/external-database-spi/understanding-error-types-in-the-external-database-connections-spi) in the External Database Connections service plugin. */\n  error?: Error;\n}\n\n/** @oneof */\nexport interface DataItemModificationResultResultOneOf {\n  /** Item that was inserted, updated or removed. */\n  item?: Record<string, any> | null;\n  /** Error indicating why the operation failed for a particular item. Learn more about [error types](https://dev.wix.com/docs/rest/assets/data/external-database-spi/understanding-error-types-in-the-external-database-connections-spi) in the External Database Connections service plugin. */\n  error?: Error;\n}\n\nexport interface Error {\n  /**\n   * Error code.\n   * @minLength 3\n   * @maxLength 100\n   */\n  errorCode?: string;\n  /**\n   * Error description.\n   * @maxLength 10000\n   */\n  errorMessage?: string | null;\n  /** Additional error data specific to the error code. */\n  data?: Record<string, any> | null;\n}\n\nexport interface UpdateDataItemsRequest {\n  /** ID of the collection in which to update the items. */\n  collectionId: string;\n  /**\n   * Items to update.\n   * @minSize 1\n   */\n  items: Record<string, any>[] | null;\n}\n\nexport interface UpdateDataItemsResponse {\n  /** Response must include either the updated item or an error. */\n  results?: DataItemModificationResult[];\n}\n\nexport interface RemoveDataItemsRequest {\n  /** ID of the collection from which to remove items. */\n  collectionId: string;\n  /**\n   * IDs of items to remove.\n   * @minSize 1\n   */\n  itemIds: string[];\n}\n\nexport interface RemoveDataItemsResponse {\n  /** Response must include either the removed item or an error. */\n  results?: DataItemModificationResult[];\n}\n\nexport interface TruncateDataItemsRequest {\n  /** ID of the collection from which to remove all items. */\n  collectionId: string;\n}\n\nexport interface TruncateDataItemsResponse {}\n\nexport interface QueryReferencedDataItemsRequest\n  extends QueryReferencedDataItemsRequestPagingMethodOneOf {\n  /** Offset-based paging */\n  paging?: Paging;\n  /** Cursor-based paging */\n  cursorPaging?: CursorPaging;\n  /** ID of the collection to query. */\n  collectionId: string;\n  /**\n   * IDs of the referring items. If the array is empty, return results for all referring items.\n   * @maxSize 1000\n   */\n  referringItemIds?: string[];\n  /**\n   * IDs of the referenced items. If the array is empty, return all referenced items for the referring items.\n   * @maxSize 1000\n   */\n  referencedItemIds?: string[];\n  /** Order to by which to sort the results. Valid values are `ASC` and `DESC`. */\n  order?: SortOrder;\n  /** Field ID to query in the referring collection. */\n  referringFieldKey: string;\n  /** Whether to retrieve data from the primary database instance. This decreases performance but ensures data retrieved is up-to-date even immediately after an update. Applicable if the external database is eventually consistent. */\n  consistentRead: boolean;\n  /** Fields to return in the referenced item. If the array is empty or not provided, all fields in the referenced item are returned. */\n  fieldsToReturn?: string[];\n  /** When `true`, the response includes the total number of the items that match the query. */\n  returnTotalCount: boolean;\n  /** When `true`, the response includes the full referenced items. When `false`, only the IDs of referenced items be returned. */\n  includeReferencedItems: boolean;\n}\n\n/** @oneof */\nexport interface QueryReferencedDataItemsRequestPagingMethodOneOf {\n  /** Offset-based paging */\n  paging?: Paging;\n  /** Cursor-based paging */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface QueryReferencedDataItemsResponse {\n  /** Retrieved references. */\n  items?: ReferencedItem[];\n  /** Paging information. */\n  pagingMetadata?: PagingMetadataV2;\n}\n\nexport interface ReferencedItem {\n  /** ID of the item in the referring collection. */\n  referringItemId?: string;\n  /** ID of the item in the referenced collection. */\n  referencedItemId?: string;\n  /** Item in the referenced collection. If the external database does not support returning referenced items, this field can remain empty. */\n  referencedItem?: Record<string, any> | null;\n}\n\nexport interface InsertDataItemReferencesRequest {\n  /** ID of the referring collection. */\n  collectionId: string;\n  /** Field ID of the field in the referring collection to insert references into. */\n  referringFieldKey: string;\n  /**\n   * References to insert.\n   * @minSize 1\n   */\n  references: ReferenceId[];\n}\n\nexport interface ReferenceId {\n  /** ID of the item in the referring collection. */\n  referringItemId?: string;\n  /** ID of the item in the referenced collection. */\n  referencedItemId?: string;\n}\n\nexport interface InsertDataItemReferencesResponse {\n  /** Response must include either the inserted reference or an error. */\n  results?: ReferenceModificationResult[];\n}\n\nexport interface ReferenceModificationResult\n  extends ReferenceModificationResultResultOneOf {\n  /** Reference that was inserted or removed. */\n  reference?: ReferenceId;\n  /** Error indicating why the operation failed for a particular item. Learn more about [error types](https://dev.wix.com/docs/rest/assets/data/external-database-spi/understanding-error-types-in-the-external-database-connections-spi) in the External Database Connections service plugin. */\n  error?: Error;\n}\n\n/** @oneof */\nexport interface ReferenceModificationResultResultOneOf {\n  /** Reference that was inserted or removed. */\n  reference?: ReferenceId;\n  /** Error indicating why the operation failed for a particular item. Learn more about [error types](https://dev.wix.com/docs/rest/assets/data/external-database-spi/understanding-error-types-in-the-external-database-connections-spi) in the External Database Connections service plugin. */\n  error?: Error;\n}\n\nexport interface RemoveDataItemReferencesRequest {\n  /** ID of the referring collection. */\n  collectionId: string;\n  /** Field ID of the field in the referring collection to remove references from. */\n  referringFieldKey: string;\n  /**\n   * References to remove.\n   * @minSize 1\n   */\n  references: ReferenceId[];\n}\n\nexport interface RemoveDataItemReferencesResponse {\n  /** Response must include either the removed reference or an error. */\n  results?: ReferenceModificationResult[];\n}\n\nexport interface ListCollectionsRequest {\n  /** IDs of collections to retrieve. If empty, all available collections are retrieved. */\n  collectionIds?: string[];\n}\n\nexport interface ListCollectionsResponse {\n  /** List of the retrieved collections. */\n  collections?: Collection[];\n}\n\nexport interface Collection {\n  /**\n   * ID of the collection.\n   * @immutable\n   */\n  _id?: string;\n  /** Collection display name as it appears in the CMS. For example, `My First Collection`. */\n  displayName?: string | null;\n  /** Collection fields. */\n  fields?: Field[];\n  /**\n   * Capabilities the collection supports. This is set by the external database, and is ignored in the body of the request.\n   * @readonly\n   */\n  capabilities?: CollectionCapabilities;\n  /** Levels of permission for accessing and modifying data. These are defined by the lowest role needed to perform each action. */\n  permissions?: Permissions;\n  /**\n   * Whether the collection supports cursor- or offset-based paging. Each paging mode requires different configuration parameters.\n   * @readonly\n   */\n  pagingMode?: PagingMode;\n}\n\nexport interface Field extends FieldTypeOptionsOneOf {\n  singleReferenceOptions?: SingleReferenceOptions;\n  multiReferenceOptions?: MultiReferenceOptions;\n  arrayOptions?: ArrayOptions;\n  objectOptions?: ObjectOptions;\n  /** Field identifier. */\n  key?: string;\n  /** Field display name as it appears in the CMS. For example, `First Name`. */\n  displayName?: string | null;\n  /** Field description. */\n  description?: string | null;\n  /** Field type. */\n  type?: FieldType;\n  /**\n   * Capabilities the collection supports. This is set by the external database and is ignored in the body of the request.\n   * @readonly\n   */\n  capabilities?: FieldCapabilities;\n  /** Whether the field value is encrypted and sent as an object. Encryption and decryption are handled by Wix. Default: `false`. */\n  encrypted?: boolean;\n}\n\n/** @oneof */\nexport interface FieldTypeOptionsOneOf {\n  singleReferenceOptions?: SingleReferenceOptions;\n  multiReferenceOptions?: MultiReferenceOptions;\n  arrayOptions?: ArrayOptions;\n  objectOptions?: ObjectOptions;\n}\n\nexport enum FieldType {\n  TEXT = 'TEXT',\n  NUMBER = 'NUMBER',\n  DATE = 'DATE',\n  DATETIME = 'DATETIME',\n  IMAGE = 'IMAGE',\n  BOOLEAN = 'BOOLEAN',\n  DOCUMENT = 'DOCUMENT',\n  URL = 'URL',\n  RICH_TEXT = 'RICH_TEXT',\n  VIDEO = 'VIDEO',\n  ANY = 'ANY',\n  ARRAY_STRING = 'ARRAY_STRING',\n  ARRAY_DOCUMENT = 'ARRAY_DOCUMENT',\n  AUDIO = 'AUDIO',\n  TIME = 'TIME',\n  LANGUAGE = 'LANGUAGE',\n  RICH_CONTENT = 'RICH_CONTENT',\n  MEDIA_GALLERY = 'MEDIA_GALLERY',\n  ADDRESS = 'ADDRESS',\n  REFERENCE = 'REFERENCE',\n  MULTI_REFERENCE = 'MULTI_REFERENCE',\n  OBJECT = 'OBJECT',\n  ARRAY = 'ARRAY',\n}\n\nexport interface FieldCapabilities {\n  /** Whether the field can be used to sort the items in a collection. Default: `false`. */\n  sortable?: boolean;\n  /** Query operators that can be used for this field. */\n  queryOperators?: QueryOperator[];\n}\n\nexport enum QueryOperator {\n  EQ = 'EQ',\n  LT = 'LT',\n  GT = 'GT',\n  NE = 'NE',\n  LTE = 'LTE',\n  GTE = 'GTE',\n  STARTS_WITH = 'STARTS_WITH',\n  ENDS_WITH = 'ENDS_WITH',\n  CONTAINS = 'CONTAINS',\n  HAS_SOME = 'HAS_SOME',\n  HAS_ALL = 'HAS_ALL',\n  EXISTS = 'EXISTS',\n  URLIZED = 'URLIZED',\n}\n\nexport interface SingleReferenceOptions {\n  /**\n   * ID of the referenced collection.\n   *\n   * When the referring field is a single-reference field, it refers to the `_id` field of the referenced collection.\n   */\n  referencedCollectionId?: string;\n}\n\nexport interface MultiReferenceOptions {\n  /** ID of the referenced collection. */\n  referencedCollectionId?: string;\n  /** Field ID of the referenced field in the referenced collection. */\n  referencedCollectionFieldKey?: string | null;\n  /** Field display name of the referenced field in the referenced collection. */\n  referencedCollectionFieldDisplayName?: string | null;\n}\n\nexport interface ArrayOptions extends ArrayOptionsTypeOptionsOneOf {\n  singleReferenceOptions?: SingleReferenceOptions;\n  multiReferenceOptions?: MultiReferenceOptions;\n  arrayOptions?: ArrayOptions;\n  objectOptions?: ObjectOptions;\n  /** Element data type. */\n  elementType?: FieldType;\n}\n\n/** @oneof */\nexport interface ArrayOptionsTypeOptionsOneOf {\n  singleReferenceOptions?: SingleReferenceOptions;\n  multiReferenceOptions?: MultiReferenceOptions;\n  arrayOptions?: ArrayOptions;\n  objectOptions?: ObjectOptions;\n}\n\nexport interface ObjectOptions {\n  /** Fields within the object. */\n  fields?: ObjectField[];\n}\n\nexport interface SlugOptions {\n  /**\n   * @minLength 1\n   * @maxLength 1000\n   */\n  pattern?: string;\n}\n\nexport interface ObjectField extends ObjectFieldTypeOptionsOneOf {\n  singleReferenceOptions?: SingleReferenceOptions;\n  multiReferenceOptions?: MultiReferenceOptions;\n  arrayOptions?: ArrayOptions;\n  objectOptions?: ObjectOptions;\n  /** Field ID. */\n  key?: string;\n  /** Field display name. */\n  displayName?: string | null;\n  /** Field type. */\n  type?: FieldType;\n  /**\n   * Capabilities the object field supports.\n   * @readonly\n   */\n  capabilities?: FieldCapabilities;\n}\n\n/** @oneof */\nexport interface ObjectFieldTypeOptionsOneOf {\n  singleReferenceOptions?: SingleReferenceOptions;\n  multiReferenceOptions?: MultiReferenceOptions;\n  arrayOptions?: ArrayOptions;\n  objectOptions?: ObjectOptions;\n}\n\nexport interface CollectionCapabilities {\n  /** Data operations that can be performed on items in the collection. */\n  dataOperations?: DataOperation[];\n}\n\nexport enum DataOperation {\n  QUERY = 'QUERY',\n  COUNT = 'COUNT',\n  QUERY_REFERENCED = 'QUERY_REFERENCED',\n  AGGREGATE = 'AGGREGATE',\n  DISTINCT = 'DISTINCT',\n  INSERT = 'INSERT',\n  UPDATE = 'UPDATE',\n  REMOVE = 'REMOVE',\n  TRUNCATE = 'TRUNCATE',\n  INSERT_REFERENCES = 'INSERT_REFERENCES',\n  REMOVE_REFERENCES = 'REMOVE_REFERENCES',\n}\n\nexport interface Permissions {\n  /** Lowest role required to add a collection. */\n  insert?: Role;\n  /** Lowest role required to update a collection. */\n  update?: Role;\n  /** Lowest role required to remove a collection. */\n  remove?: Role;\n  /** Lowest role required to read a collection. */\n  read?: Role;\n}\n\nexport enum Role {\n  /** Site administrator. */\n  ADMIN = 'ADMIN',\n  /** A signed-in user who inserted content to this collection. */\n  SITE_MEMBER_AUTHOR = 'SITE_MEMBER_AUTHOR',\n  /** Any signed-in user. */\n  SITE_MEMBER = 'SITE_MEMBER',\n  /** Any site visitor. */\n  ANYONE = 'ANYONE',\n}\n\nexport enum PagingMode {\n  /** Offset-based paging. */\n  OFFSET = 'OFFSET',\n  /** Cursor-based paging. */\n  CURSOR = 'CURSOR',\n}\n\nexport interface CreateCollectionRequest {\n  /** Details of the collection to create. */\n  collection?: Collection;\n}\n\nexport interface CreateCollectionResponse {\n  /** Details of the created collection. */\n  collection?: Collection;\n}\n\nexport interface UpdateCollectionRequest {\n  /** Updated structure details for the specified collection. */\n  collection?: Collection;\n}\n\nexport interface UpdateCollectionResponse {\n  /** Updated collection details. */\n  collection?: Collection;\n}\n\nexport interface DeleteCollectionRequest {\n  /** ID of the collection to delete. */\n  collectionId: string;\n}\n\nexport interface DeleteCollectionResponse {}\n\nexport interface GetCapabilitiesRequest {}\n\nexport interface GetCapabilitiesResponse {\n  /** Whether the external database supports creating new collections, updating the structure of existing collections, or deleting them. */\n  supportsCollectionModifications?: boolean;\n  /** Field types the external database supports. This field only applies when `supportsCollectionModifications` is true. */\n  supportedFieldTypes?: FieldType[];\n}\n\nexport interface IndexOptions {\n  /** Whether the external database supports creating, listing and removing indexes. */\n  supportsIndexes?: boolean;\n  /** Maximum number of regular (non-unique) indexes allowed for this collection. */\n  maxNumberOfRegularIndexesPerCollection?: number;\n  /** Maximum number of unique indexes allowed for this collection. */\n  maxNumberOfUniqueIndexesPerCollection?: number;\n  /** Maximum number of regular and unique indexes allowed for this collection. */\n  maxNumberOfIndexesPerCollection?: number;\n}\n\nexport interface ListIndexesRequest {\n  /** collection to list indexes from */\n  collectionId: string;\n}\n\nexport interface ListIndexesResponse {\n  /** list of indexes */\n  indexes?: Index[];\n}\n\nexport interface Index {\n  /**\n   * Index id\n   * @minLength 1\n   * @format GUID\n   */\n  _id?: string;\n  /**\n   * Index name\n   * @minLength 1\n   * @maxLength 128\n   */\n  name?: string;\n  /**\n   * Fields over which the index is defined\n   * @minSize 1\n   * @maxSize 32\n   */\n  fields?: IndexField[];\n  /**\n   * Indicates current status of index\n   * @readonly\n   */\n  status?: Status;\n  /** If true index will enforce that values in the field are unique in scope of a collection. Default is false. */\n  unique?: boolean;\n  /** If true index will be case-insensitive. Default is false. */\n  caseInsensitive?: boolean;\n  /**\n   * Contains details about failure reason when index is in *FAILED* status\n   * @readonly\n   */\n  failure?: Error;\n}\n\n/**\n * Order determines how values are ordered in the index. This is important when\n * ordering and/or range querying by indexed fields.\n */\nexport enum Order {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\nexport interface IndexField {\n  /**\n   * Field to index. For example: title, options.price\n   * @minLength 1\n   * @maxLength 128\n   */\n  path?: string;\n  /** Order in which to keep the values. Default is ASC. */\n  order?: Order;\n}\n\nexport enum Status {\n  /** Place holder. Never returned by the service. */\n  UNKNOWN = 'UNKNOWN',\n  /** Index creation is in progress. */\n  BUILDING = 'BUILDING',\n  /** Index has been successfully created. It can be used in queries. */\n  ACTIVE = 'ACTIVE',\n  /** Index is being dropped. */\n  DROPPING = 'DROPPING',\n  /** Index is successfully dropped. */\n  DROPPED = 'DROPPED',\n  /** Index creation has failed. */\n  FAILED = 'FAILED',\n  /** Index contains incorrectly indexed data. */\n  INVALID = 'INVALID',\n}\n\nexport interface CreateIndexRequest {\n  /** collection to list indexes from */\n  collectionId: string;\n  /** index definition */\n  index: Index;\n}\n\nexport interface CreateIndexResponse {\n  /** created index and its status */\n  index?: Index;\n}\n\nexport interface RemoveIndexRequest {\n  /** collection to delete index from */\n  collectionId: string;\n  /** index name */\n  indexName: string;\n}\n\nexport interface RemoveIndexResponse {}\n\nexport interface ExternalDatabaseSpiConfig {\n  /** The URI where the service provider is deployed. */\n  uriConfig?: SpiBaseUri;\n  /** The namespace of the external database. This can be used to access collections within the database, for example `namespace/collectionId`. */\n  namespace?: string;\n}\n\n/** Base URI configuration for a service plugin. Wix uses these URIs to call your service plugin methods. */\nexport interface SpiBaseUri {\n  /**\n   * Base URI for your service plugin. Wix appends each method's path to this URI.\n   *\n   * For example, to receive requests at `https://my-app.com/v1/my-method`, set this field to `https://my-app.com/`.\n   * @minLength 6\n   * @maxLength 2048\n   */\n  baseUri?: string;\n  /** Alternative URIs for specific methods. Use these to override the default URI for individual methods. */\n  alternativeUris?: AlternativeUri[];\n}\n\n/** Custom URI for the specified service plugin method. */\nexport interface AlternativeUri {\n  /**\n   * Name of the method to call at the absolute URI, in PascalCase. For example, to call [Get Shipping Rates](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/extensions/shipping-rates/shipping-rates-integration-service-plugin/get-shipping-rates) on an alternative URI, specify `GetShippingRates`.\n   * @minLength 3\n   * @maxLength 128\n   */\n  methodName?: string;\n  /**\n   * Absolute URI that Wix calls for this method. Wix doesn't append any path to this URI.\n   *\n   * The URI must begin with `https://`, such as `https://my-app.com/v1/my-custom-method`.\n   * @minLength 6\n   * @maxLength 2048\n   */\n  absoluteUri?: string;\n}\n\n/**\n * this message is not directly used by any service,\n * it exists to describe the expected parameters that SHOULD be provided to invoked Velo methods as part of open-platform.\n * e.g. SPIs, event-handlers, etc..\n * NOTE: this context object MUST be provided as the last argument in each Velo method signature.\n *\n * Example:\n * ```typescript\n * export function wixStores_onOrderCanceled({ event, metadata }: OrderCanceledEvent) {\n * ...\n * }\n * ```\n */\nexport interface Context {\n  /** A unique identifier of the request. You may print this ID to your logs to help with future debugging and easier correlation with Wix's logs. */\n  requestId?: string | null;\n  /**\n   * [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) 3-letter currency code.\n   * @format CURRENCY\n   */\n  currency?: string | null;\n  /** An object that describes the identity that triggered this request. */\n  identity?: IdentificationData;\n  /** A string representing a language and region in the format of `\"xx-XX\"`. First 2 letters represent the language code according to ISO 639-1. This is followed by a dash \"-\", and then a by 2 capital letters representing the region according to ISO 3166-2. For example, `\"en-US\"`. */\n  languages?: string[];\n  /**\n   * The service provider app's instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n}\n\nexport enum IdentityType {\n  UNKNOWN = 'UNKNOWN',\n  ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n  MEMBER = 'MEMBER',\n  WIX_USER = 'WIX_USER',\n  APP = 'APP',\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n  /** @readonly */\n  identityType?: IdentityType;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n}\n","import { ServicePluginDefinition } from '@wix/sdk-types';\nimport {\n  Context,\n  QueryDataItemsRequest,\n  QueryDataItemsResponse,\n  CountDataItemsRequest,\n  CountDataItemsResponse,\n  AggregateDataItemsRequest,\n  AggregateDataItemsResponse,\n  QueryDistinctValuesRequest,\n  QueryDistinctValuesResponse,\n  InsertDataItemsRequest,\n  InsertDataItemsResponse,\n  UpdateDataItemsRequest,\n  UpdateDataItemsResponse,\n  RemoveDataItemsRequest,\n  RemoveDataItemsResponse,\n  TruncateDataItemsRequest,\n  TruncateDataItemsResponse,\n  QueryReferencedDataItemsRequest,\n  QueryReferencedDataItemsResponse,\n  InsertDataItemReferencesRequest,\n  InsertDataItemReferencesResponse,\n  RemoveDataItemReferencesRequest,\n  RemoveDataItemReferencesResponse,\n  ListCollectionsRequest,\n  ListCollectionsResponse,\n  CreateCollectionRequest,\n  CreateCollectionResponse,\n  UpdateCollectionRequest,\n  UpdateCollectionResponse,\n  DeleteCollectionRequest,\n  DeleteCollectionResponse,\n  GetCapabilitiesRequest,\n  GetCapabilitiesResponse,\n} from './service-plugins-types.js';\nimport {\n  renameKeysFromSDKRequestToRESTRequest,\n  renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\n\nexport interface QueryDataItemsEnvelope {\n  request: QueryDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface CountDataItemsEnvelope {\n  request: CountDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface AggregateDataItemsEnvelope {\n  request: AggregateDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface QueryDistinctValuesEnvelope {\n  request: QueryDistinctValuesRequest;\n  metadata: Context;\n}\n\nexport interface InsertDataItemsEnvelope {\n  request: InsertDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface UpdateDataItemsEnvelope {\n  request: UpdateDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface RemoveDataItemsEnvelope {\n  request: RemoveDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface TruncateDataItemsEnvelope {\n  request: TruncateDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface QueryReferencedDataItemsEnvelope {\n  request: QueryReferencedDataItemsRequest;\n  metadata: Context;\n}\n\nexport interface InsertDataItemReferencesEnvelope {\n  request: InsertDataItemReferencesRequest;\n  metadata: Context;\n}\n\nexport interface RemoveDataItemReferencesEnvelope {\n  request: RemoveDataItemReferencesRequest;\n  metadata: Context;\n}\n\nexport interface ListCollectionsEnvelope {\n  request: ListCollectionsRequest;\n  metadata: Context;\n}\n\nexport interface CreateCollectionEnvelope {\n  request: CreateCollectionRequest;\n  metadata: Context;\n}\n\nexport interface UpdateCollectionEnvelope {\n  request: UpdateCollectionRequest;\n  metadata: Context;\n}\n\nexport interface DeleteCollectionEnvelope {\n  request: DeleteCollectionRequest;\n  metadata: Context;\n}\n\nexport interface GetCapabilitiesEnvelope {\n  request: GetCapabilitiesRequest;\n  metadata: Context;\n}\n\nexport const provideHandlers = ServicePluginDefinition<{\n  /**\n   *\n   * Retrieves a list of items based on the provided filtering, sorting, and paging preferences. */\n  queryDataItems(\n    payload: QueryDataItemsEnvelope\n  ): QueryDataItemsResponse | Promise<QueryDataItemsResponse>;\n\n  /**\n   * Counts the number of items in the specified data collection that match the filtering preferences. */\n  countDataItems(\n    payload: CountDataItemsEnvelope\n  ): CountDataItemsResponse | Promise<CountDataItemsResponse>;\n\n  /**\n   * Runs an aggregation query on the specified data collection and returns the resulting list of items. */\n  aggregateDataItems(\n    payload: AggregateDataItemsEnvelope\n  ): AggregateDataItemsResponse | Promise<AggregateDataItemsResponse>;\n\n  /**\n   *\n   * Retrieves a list of distinct values for a given field for all items that match the query, without duplicates.\n   *\n   * As with [`queryDataItems()`](/external-database/query-data-items), this function retrieves items based on the filtering, sorting, and paging preferences provided. However, this function does not return the full items that match the query. Rather, for items that match the query, it returns all unique values in the field specified in `fieldName`. If more than one item has the same value in that field, that value appears only once. */\n  queryDistinctValues(\n    payload: QueryDistinctValuesEnvelope\n  ): QueryDistinctValuesResponse | Promise<QueryDistinctValuesResponse>;\n\n  /**\n   *\n   * Adds one or more items to a collection.\n   *\n   * A data item object contains the `_id` and `_owner` fields. The response array must include the same items that were inserted, and each returned item must be added the `_createdDate` and `_updatedDate` fields.\n   *\n   * However, data items can also be inserted without an `_id` field. In that case, it is the service provider's responsibility to generate a unique ID for each item. */\n  insertDataItems(\n    payload: InsertDataItemsEnvelope\n  ): InsertDataItemsResponse | Promise<InsertDataItemsResponse>;\n\n  /**\n   *\n   * Updates one or more items in a collection. Items must be completely replaced.\n   *\n   * The response array must include the same items that were updated, and each returned item must be added the `_createdDate` and `_updatedDate` fields. */\n  updateDataItems(\n    payload: UpdateDataItemsEnvelope\n  ): UpdateDataItemsResponse | Promise<UpdateDataItemsResponse>;\n\n  /**\n   * Removes one or more items from a collection. The response object must contain the removed item. */\n  removeDataItems(\n    payload: RemoveDataItemsEnvelope\n  ): RemoveDataItemsResponse | Promise<RemoveDataItemsResponse>;\n\n  /**\n   * Removes all items from a collection. */\n  truncateDataItems(\n    payload: TruncateDataItemsEnvelope\n  ): TruncateDataItemsResponse | Promise<TruncateDataItemsResponse>;\n\n  /**\n   *\n   * Retrieves the items referenced in the specified field of a referring item. Reference fields refer to items that exist in different collections. Implement this function so callers can retrieve the full details of the referenced items.\n   *\n   * This service plugin supports item multi-references, which means that data collections can have many-to-many relationships with other collections. For example, consider a scenario where a **Movies** collection includes a multi-reference **Actors** field, which might refer to several **Actor** items in an **Actors** collection. Users can therefore query the **Movies** collection to retrieve the **Actor** items referenced in each **Movie** item.\n   *\n   * > **Notes:**\n   * > - This function does not retrieve the full referenced items of referenced items. For example, the referenced **Actors** collection might itself contain a multi-reference field with references to **Award** items in an **Awards** collection. When calling this function to retrieve the referenced items of any **Movie** item, the response contains the referenced **Actor** items, but only the IDs of the **Award** items. To retrieve the full **Award** items, the user must either call this function for the **Actors** collection, or the [`queryDataItems()`](/external-database/query-data-items) function for the **Awards** collection.\n   * > - This function might also be called when a user calls the [`isReferenced()`](https://dev.wix.com/docs/sdk/backend-modules/data/items/is-referenced-data-item) function of the Data API. */\n  queryReferencedDataItems(\n    payload: QueryReferencedDataItemsEnvelope\n  ):\n    | QueryReferencedDataItemsResponse\n    | Promise<QueryReferencedDataItemsResponse>;\n\n  /**\n   * Inserts one or more item references into a referring field of the specified item. */\n  insertDataItemReferences(\n    payload: InsertDataItemReferencesEnvelope\n  ):\n    | InsertDataItemReferencesResponse\n    | Promise<InsertDataItemReferencesResponse>;\n\n  /**\n   * Removes one or more item references from a referring field of the specified item. */\n  removeDataItemReferences(\n    payload: RemoveDataItemReferencesEnvelope\n  ):\n    | RemoveDataItemReferencesResponse\n    | Promise<RemoveDataItemReferencesResponse>;\n\n  /**\n   *\n   * Retrieves a list of data collections and their details.\n   *\n   * When `collectionIds` is empty, all existing collections are returned.\n   * If a specified collection does not exist, that collection can be ignored. */\n  listCollections(\n    payload: ListCollectionsEnvelope\n  ): ListCollectionsResponse | Promise<ListCollectionsResponse>;\n\n  /**\n   * Creates a new data collection. */\n  createCollection(\n    payload: CreateCollectionEnvelope\n  ): CreateCollectionResponse | Promise<CreateCollectionResponse>;\n\n  /**\n   *\n   * Updates the structure of an existing data collection.\n   *\n   * Some parameters, such as `capabilities` and `pagingMode`, are determined by the service provider. If the collection passed in the request contains these parameters, their values must be ignored. However, these fields must be included in the response collection with relevant values. */\n  updateCollection(\n    payload: UpdateCollectionEnvelope\n  ): UpdateCollectionResponse | Promise<UpdateCollectionResponse>;\n\n  /**\n   * Deletes a data collection. */\n  deleteCollection(\n    payload: DeleteCollectionEnvelope\n  ): DeleteCollectionResponse | Promise<DeleteCollectionResponse>;\n\n  /**\n   * Lists the global capabilities the external database supports. */\n  getCapabilities(\n    payload: GetCapabilitiesEnvelope\n  ): GetCapabilitiesResponse | Promise<GetCapabilitiesResponse>;\n}>('EXTERNAL_DATABASE_PROVIDER', [\n  {\n    name: 'queryDataItems',\n    primaryHttpMappingPath: '/v3/items/query',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'countDataItems',\n    primaryHttpMappingPath: '/v3/items/count',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'aggregateDataItems',\n    primaryHttpMappingPath: '/v3/items/aggregate',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'queryDistinctValues',\n    primaryHttpMappingPath: '/v3/items/query-distinct-values',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'insertDataItems',\n    primaryHttpMappingPath: '/v3/items/insert',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'updateDataItems',\n    primaryHttpMappingPath: '/v3/items/update',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'removeDataItems',\n    primaryHttpMappingPath: '/v3/items/remove',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'truncateDataItems',\n    primaryHttpMappingPath: '/v3/items/truncate',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'queryReferencedDataItems',\n    primaryHttpMappingPath: '/v3/items/query-referenced',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'insertDataItemReferences',\n    primaryHttpMappingPath: '/v3/items/insert-references',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'removeDataItemReferences',\n    primaryHttpMappingPath: '/v3/items/remove-references',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'listCollections',\n    primaryHttpMappingPath: '/v3/collections/get',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'createCollection',\n    primaryHttpMappingPath: '/v3/collections/create',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'updateCollection',\n    primaryHttpMappingPath: '/v3/collections/update',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'deleteCollection',\n    primaryHttpMappingPath: '/v3/collections/delete',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n\n  {\n    name: 'getCapabilities',\n    primaryHttpMappingPath: '/v3/capabilities/get',\n    transformations: {\n      toREST: (payload: any) => {\n        const toRestResponse = payload;\n\n        return renameKeysFromSDKRequestToRESTRequest(toRestResponse);\n      },\n      fromREST: (payload: any) => {\n        const fromRestRequest = payload;\n\n        return renameKeysFromRESTResponseToSDKResponse(fromRestRequest);\n      },\n    },\n  },\n]);\n","import './data-externaldatabasespi-v3-main-entity.public.js';\nimport { createServicePluginModule } from '@wix/sdk-runtime/service-plugin-modules';\nimport { BuildServicePluginDefinition } from '@wix/sdk-types';\nimport { provideHandlers as publicProvideHandlers } from './data-externaldatabasespi-v3-main-entity.public.js';\n\nexport { publicProvideHandlers };\n\nexport const provideHandlers: BuildServicePluginDefinition<\n  typeof publicProvideHandlers\n> &\n  typeof publicProvideHandlers = createServicePluginModule(\n  publicProvideHandlers\n);\n","import {\n  ItemAlreadyExistsError,\n  ItemNotFoundError,\n  CollectionAlreadyExistsError,\n  CollectionNotFoundError,\n  ReferenceAlreadyExistsError,\n  ReferenceNotFoundError,\n  ValidationError,\n  CollectionChangeNotSupported,\n} from './service-plugins-types.js';\n\n/**\n * There is already an item with this ID.\n */\nexport class ItemAlreadyExistsWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: ItemAlreadyExistsError;\n\n  constructor(data: ItemAlreadyExistsError = {}) {\n    super('ItemAlreadyExists');\n\n    this.httpCode = 409;\n    this.statusCode = 'ALREADY_EXISTS';\n    this.applicationCode = 'ITEM_ALREADY_EXISTS';\n    this.name = 'ItemAlreadyExists';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.ItemAlreadyExistsError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'ItemAlreadyExists',\n      applicationCode: 'ITEM_ALREADY_EXISTS',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * Couldn't find the item.\n */\nexport class ItemNotFoundWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: ItemNotFoundError;\n\n  constructor(data: ItemNotFoundError = {}) {\n    super('ItemNotFound');\n\n    this.httpCode = 404;\n    this.statusCode = 'NOT_FOUND';\n    this.applicationCode = 'ITEM_NOT_FOUND';\n    this.name = 'ItemNotFound';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.ItemNotFoundError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'ItemNotFound',\n      applicationCode: 'ITEM_NOT_FOUND',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * There is already a collection with this ID.\n */\nexport class CollectionAlreadyExistsWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: CollectionAlreadyExistsError;\n\n  constructor(data: CollectionAlreadyExistsError = {}) {\n    super('CollectionAlreadyExists');\n\n    this.httpCode = 409;\n    this.statusCode = 'ALREADY_EXISTS';\n    this.applicationCode = 'COLLECTION_ALREADY_EXISTS';\n    this.name = 'CollectionAlreadyExists';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.CollectionAlreadyExistsError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'CollectionAlreadyExists',\n      applicationCode: 'COLLECTION_ALREADY_EXISTS',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * Couldn't find the collection.\n */\nexport class CollectionNotFoundWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: CollectionNotFoundError;\n\n  constructor(data: CollectionNotFoundError = {}) {\n    super('CollectionNotFound');\n\n    this.httpCode = 404;\n    this.statusCode = 'NOT_FOUND';\n    this.applicationCode = 'COLLECTION_NOT_FOUND';\n    this.name = 'CollectionNotFound';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.CollectionNotFoundError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'CollectionNotFound',\n      applicationCode: 'COLLECTION_NOT_FOUND',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * There is already a reference between these items.\n */\nexport class ReferenceAlreadyExistsWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: ReferenceAlreadyExistsError;\n\n  constructor(data: ReferenceAlreadyExistsError = {}) {\n    super('ReferenceAlreadyExists');\n\n    this.httpCode = 409;\n    this.statusCode = 'ALREADY_EXISTS';\n    this.applicationCode = 'REFERENCE_ALREADY_EXISTS';\n    this.name = 'ReferenceAlreadyExists';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.ReferenceAlreadyExistsError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'ReferenceAlreadyExists',\n      applicationCode: 'REFERENCE_ALREADY_EXISTS',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * Couldn't find the reference.\n */\nexport class ReferenceNotFoundWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: ReferenceNotFoundError;\n\n  constructor(data: ReferenceNotFoundError = {}) {\n    super('ReferenceNotFound');\n\n    this.httpCode = 404;\n    this.statusCode = 'NOT_FOUND';\n    this.applicationCode = 'REFERENCE_NOT_FOUND';\n    this.name = 'ReferenceNotFound';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.ReferenceNotFoundError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'ReferenceNotFound',\n      applicationCode: 'REFERENCE_NOT_FOUND',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * 1 or more field values are invalid.\n */\nexport class ValidationWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: ValidationError;\n\n  constructor(data: ValidationError = {}) {\n    super('ValidationError');\n\n    this.httpCode = 400;\n    this.statusCode = 'INVALID_ARGUMENT';\n    this.applicationCode = 'VALIDATION_ERROR';\n    this.name = 'ValidationError';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.ValidationError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'ValidationError',\n      applicationCode: 'VALIDATION_ERROR',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * The collection field can't be changed.\n */\nexport class CollectionChangeNotSupportedWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorSchemaName: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  data: CollectionChangeNotSupported;\n\n  constructor(data: CollectionChangeNotSupported = {}) {\n    super('CollectionChangeNotSupportedError');\n\n    this.httpCode = 400;\n    this.statusCode = 'INVALID_ARGUMENT';\n    this.applicationCode = 'COLLECTION_CHANGE_NOT_SUPPORTED';\n    this.name = 'CollectionChangeNotSupportedError';\n    this.errorSchemaName =\n      'com.wixpress.cloud.externaldatabasespi.v3.CollectionChangeNotSupported';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'CollectionChangeNotSupportedError',\n      applicationCode: 'COLLECTION_CHANGE_NOT_SUPPORTED',\n    };\n\n    this.data = data;\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n\n/**\n * The request is invalid.\n */\nexport class BadRequestWixError extends Error {\n  /** @hidden */\n  httpCode: number;\n  /** @hidden */\n  statusCode: string;\n  /** @hidden */\n  applicationCode: string;\n  /** @hidden */\n  name: string;\n  /** @hidden */\n  errorType: string;\n  /** @hidden */\n  spiErrorData: object;\n\n  constructor() {\n    super('BadRequestError');\n\n    this.httpCode = 400;\n    this.statusCode = 'INVALID_ARGUMENT';\n    this.applicationCode = 'BAD_REQUEST';\n    this.name = 'BadRequestError';\n    this.errorType = 'SPI';\n    this.spiErrorData = {\n      name: 'BadRequestError',\n      applicationCode: 'BAD_REQUEST',\n    };\n  }\n\n  /** @hidden */\n  static readonly __type = 'wix_spi_error';\n}\n"],"mappings":"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","names":["SortOrder","FieldType","QueryOperator","DataOperation","Role","PagingMode","Order","Status","IdentityType","provideHandlers"]}