From 028f63eb638162300ec83906de5726544ad0297a Mon Sep 17 00:00:00 2001 From: Stevche Radevski Date: Mon, 20 May 2024 09:27:21 +0200 Subject: [PATCH] feat: Add missing typings for the http layer and cleanup some (#7260) --- packages/core/js-sdk/src/store/index.ts | 3 +- packages/core/types/src/common/common.ts | 192 ------------------ .../types/src/http/api-key/admin/api-key.ts | 15 +- .../types/src/http/campaign/admin/campaign.ts | 13 +- .../core/types/src/http/collection/admin.ts | 4 + .../core/types/src/http/collection/common.ts | 21 ++ .../core/types/src/http/collection/index.ts | 2 + .../core/types/src/http/collection/store.ts | 4 + .../types/src/http/common/deleted-response.ts | 19 -- packages/core/types/src/http/common/index.ts | 4 +- .../src/http/common/paginated-response.ts | 5 - .../core/types/src/http/common/request.ts | 9 + .../core/types/src/http/common/response.ts | 27 +++ .../types/src/http/customer/admin/customer.ts | 31 +-- .../fulfillment/admin/fulfillment-address.ts | 3 - .../fulfillment/admin/fulfillment-item.ts | 3 - .../fulfillment/admin/fulfillment-label.ts | 3 - .../fulfillment/admin/fulfillment-provider.ts | 3 - .../http/fulfillment/admin/fulfillment-set.ts | 6 - .../src/http/fulfillment/admin/fulfillment.ts | 8 +- .../src/http/fulfillment/admin/geo-zone.ts | 3 - .../http/fulfillment/admin/service-zone.ts | 9 - .../fulfillment/admin/shipping-option-rule.ts | 3 - .../fulfillment/admin/shipping-option-type.ts | 3 - .../http/fulfillment/admin/shipping-option.ts | 16 +- .../fulfillment/admin/shipping-profile.ts | 12 +- packages/core/types/src/http/index.ts | 4 + .../src/http/inventory/inventory-level.ts | 11 +- .../types/src/http/inventory/inventory.ts | 11 +- .../core/types/src/http/order/admin/index.ts | 13 +- .../types/src/http/product-category/admin.ts | 12 +- .../types/src/http/product-category/common.ts | 3 - .../types/src/http/product-category/store.ts | 12 +- packages/core/types/src/http/product/admin.ts | 39 ++++ .../core/types/src/http/product/common.ts | 191 +++++++++++++++++ packages/core/types/src/http/product/index.ts | 2 + packages/core/types/src/http/product/store.ts | 33 +++ .../http/promotion/admin/promotion-rule.ts | 6 - .../promotion/admin/rule-attribute-options.ts | 6 - .../promotion/admin/rule-operator-options.ts | 6 - packages/core/types/src/http/region/admin.ts | 11 + packages/core/types/src/http/region/common.ts | 41 ++++ packages/core/types/src/http/region/index.ts | 2 + packages/core/types/src/http/region/store.ts | 11 + .../src/http/reservation/admin/reservation.ts | 15 +- .../http/sales-channel/admin/sales-channel.ts | 13 +- .../types/src/http/tax/admin/tax-rates.ts | 15 +- .../types/src/http/tax/admin/tax-regions.ts | 15 +- 48 files changed, 446 insertions(+), 447 deletions(-) create mode 100644 packages/core/types/src/http/collection/admin.ts create mode 100644 packages/core/types/src/http/collection/common.ts create mode 100644 packages/core/types/src/http/collection/index.ts create mode 100644 packages/core/types/src/http/collection/store.ts delete mode 100644 packages/core/types/src/http/common/deleted-response.ts delete mode 100644 packages/core/types/src/http/common/paginated-response.ts create mode 100644 packages/core/types/src/http/common/request.ts create mode 100644 packages/core/types/src/http/common/response.ts create mode 100644 packages/core/types/src/http/product/admin.ts create mode 100644 packages/core/types/src/http/product/common.ts create mode 100644 packages/core/types/src/http/product/index.ts create mode 100644 packages/core/types/src/http/product/store.ts create mode 100644 packages/core/types/src/http/region/admin.ts create mode 100644 packages/core/types/src/http/region/common.ts create mode 100644 packages/core/types/src/http/region/index.ts create mode 100644 packages/core/types/src/http/region/store.ts diff --git a/packages/core/js-sdk/src/store/index.ts b/packages/core/js-sdk/src/store/index.ts index a8403e17fd..318237981a 100644 --- a/packages/core/js-sdk/src/store/index.ts +++ b/packages/core/js-sdk/src/store/index.ts @@ -1,3 +1,4 @@ +import { StoreRegion } from "@medusajs/types" import { Client } from "../client" import { ClientHeaders } from "../types" @@ -23,7 +24,7 @@ export class Store { queryParams?: Record, headers?: ClientHeaders ) => { - return this.client.fetch(`/store/regions/${id}`, { + return this.client.fetch(`/store/regions/${id}`, { query: queryParams, headers, }) diff --git a/packages/core/types/src/common/common.ts b/packages/core/types/src/common/common.ts index db7852d985..4e2713b00e 100644 --- a/packages/core/types/src/common/common.ts +++ b/packages/core/types/src/common/common.ts @@ -233,48 +233,6 @@ export type RequestQueryFields = { order?: string } -/** - * @interface - * - * Fields included in the response if it's paginated. - */ -export type PaginatedResponse = { - /** - * The limit applied on the retrieved items. - */ - limit: number - - /** - * The number of items skipped before retrieving the list of items. - */ - offset: number - - /** - * The total count of items. - */ - count: number -} & T - -/** - * The fields returned in the response of a DELETE request. - */ -export type DeleteResponse = { - /** - * The ID of the item that was deleted. - */ - id: string - - /** - * The type of the item that was deleted. - */ - object: T - - /** - * Whether the item was deleted successfully. - */ - deleted: boolean -} - /** * Requests that don't accept any query parameters can use this type. */ @@ -373,156 +331,6 @@ export interface NumericalComparisonOperator { lte?: number } -/** - * Address fields used when creating/updating an address. - */ -export interface AddressPayload { - /** - * First name - */ - first_name?: string - - /** - * Last name - */ - last_name?: string - - /** - * Phone Number - */ - phone?: string - - /** - * Holds custom data in key-value pairs. - */ - metadata?: Record - - /** - * Company - */ - company?: string - - /** - * Address line 1 - */ - address_1?: string - - /** - * Address line 2 - */ - address_2?: string - - /** - * City - */ - city?: string - - /** - * The 2 character ISO code of the country in lower case - */ - country_code?: string - - /** - * Province - */ - province?: string - - /** - * Postal Code - */ - postal_code?: string -} - -/** - * Address fields used when creating an address. - */ -export interface AddressCreatePayload { - /** - * First name - */ - first_name: string - - /** - * Last name - */ - last_name: string - - /** - * Phone Number - */ - phone: string - - /** - * Holds custom data in key-value pairs. - */ - metadata: object - - /** - * Company - */ - company: string - - /** - * Address line 1 - */ - address_1: string - - /** - * Address line 2 - */ - address_2: string - - /** - * City - */ - city: string - - /** - * The 2 character ISO code of the country in lower case - */ - country_code: string - - /** - * Province - */ - province: string - - /** - * Postal Code - */ - postal_code: string -} - -/** - * Parameters that can be used to configure how data is retrieved. - */ -export interface FindParams { - /** - * Comma-separated relations that should be expanded in the returned data. - */ - expand?: string - - /** - *Comma-separated fields that should be included in the returned data. - */ - fields?: string -} - -/** - * Parameters that can be used to configure how a list of data is paginated. - */ -export interface FindPaginationParams { - /** - * The number of items to skip when retrieving a list. - */ - offset?: number - - /** - * Limit the number of items returned in the list. - */ - limit?: number -} - /** * @ignore */ diff --git a/packages/core/types/src/http/api-key/admin/api-key.ts b/packages/core/types/src/http/api-key/admin/api-key.ts index 37044d42a6..e8f8ec46b0 100644 --- a/packages/core/types/src/http/api-key/admin/api-key.ts +++ b/packages/core/types/src/http/api-key/admin/api-key.ts @@ -1,9 +1,6 @@ import { ApiKeyType } from "../../../api-key" -import { PaginatedResponse } from "../../../common" +import { PaginatedResponse } from "../../common" -/** - * @experimental - */ interface ApiKeyResponse { id: string token: string @@ -17,16 +14,10 @@ interface ApiKeyResponse { revoked_at: Date | null } -/** - * @experimental - */ export interface AdminApiKeyResponse { api_key: ApiKeyResponse } -/** - * @experimental - */ -export interface AdminApiKeyListResponse extends PaginatedResponse { +export type AdminApiKeyListResponse = PaginatedResponse<{ api_keys: ApiKeyResponse[] -} +}> diff --git a/packages/core/types/src/http/campaign/admin/campaign.ts b/packages/core/types/src/http/campaign/admin/campaign.ts index 16d682269f..424647d0d3 100644 --- a/packages/core/types/src/http/campaign/admin/campaign.ts +++ b/packages/core/types/src/http/campaign/admin/campaign.ts @@ -1,9 +1,6 @@ import { CampaignBudgetTypeValues } from "../../../promotion" import { PaginatedResponse } from "../../common" -/** - * @experimental - */ export interface CampaignResponse { id: string name: string @@ -20,16 +17,10 @@ export interface CampaignResponse { } } -/** - * @experimental - */ -export interface AdminCampaignListResponse extends PaginatedResponse { +export type AdminCampaignListResponse = PaginatedResponse<{ campaigns: CampaignResponse[] -} +}> -/** - * @experimental - */ export interface AdminCampaignResponse { campaign: CampaignResponse } diff --git a/packages/core/types/src/http/collection/admin.ts b/packages/core/types/src/http/collection/admin.ts new file mode 100644 index 0000000000..74258fbb07 --- /dev/null +++ b/packages/core/types/src/http/collection/admin.ts @@ -0,0 +1,4 @@ +import { BaseProductCollection, BaseProductCollectionFilters } from "./common" + +export interface AdminCollection extends BaseProductCollection {} +export interface AdminCollectionFilters extends BaseProductCollectionFilters {} diff --git a/packages/core/types/src/http/collection/common.ts b/packages/core/types/src/http/collection/common.ts new file mode 100644 index 0000000000..31990b803a --- /dev/null +++ b/packages/core/types/src/http/collection/common.ts @@ -0,0 +1,21 @@ +import { BaseFilterable, OperatorMap } from "../../dal" +import { BaseProduct } from "../product/common" + +export interface BaseProductCollection { + id?: string + title?: string + handle?: string + created_at?: string + updated_at?: string + deleted_at?: string | null + products?: BaseProduct[] + metadata?: Record | null +} + +export interface BaseProductCollectionFilters + extends BaseFilterable { + q?: string + id?: string | string[] + handle?: string | string[] + title?: string | string[] +} diff --git a/packages/core/types/src/http/collection/index.ts b/packages/core/types/src/http/collection/index.ts new file mode 100644 index 0000000000..3bd2bd2cc0 --- /dev/null +++ b/packages/core/types/src/http/collection/index.ts @@ -0,0 +1,2 @@ +export * from "./admin" +export * from "./store" diff --git a/packages/core/types/src/http/collection/store.ts b/packages/core/types/src/http/collection/store.ts new file mode 100644 index 0000000000..b290ae4b8e --- /dev/null +++ b/packages/core/types/src/http/collection/store.ts @@ -0,0 +1,4 @@ +import { BaseProductCollection, BaseProductCollectionFilters } from "./common" + +export interface StoreCollection extends BaseProductCollection {} +export interface StoreCollectionFilters extends BaseProductCollectionFilters {} diff --git a/packages/core/types/src/http/common/deleted-response.ts b/packages/core/types/src/http/common/deleted-response.ts deleted file mode 100644 index 88f7b63f47..0000000000 --- a/packages/core/types/src/http/common/deleted-response.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * The fields returned in the response of a DELETE request. - */ -export type DeleteResponse = { - /** - * The ID of the item that was deleted. - */ - id: string - - /** - * The type of the item that was deleted. - */ - object: string - - /** - * Whether the item was deleted successfully. - */ - deleted: boolean -} diff --git a/packages/core/types/src/http/common/index.ts b/packages/core/types/src/http/common/index.ts index 7ff7d9a964..64c6d7ab23 100644 --- a/packages/core/types/src/http/common/index.ts +++ b/packages/core/types/src/http/common/index.ts @@ -1,2 +1,2 @@ -export * from "./paginated-response" -export * from "./deleted-response" +export * from "./request" +export * from "./response" diff --git a/packages/core/types/src/http/common/paginated-response.ts b/packages/core/types/src/http/common/paginated-response.ts deleted file mode 100644 index fa35997f8d..0000000000 --- a/packages/core/types/src/http/common/paginated-response.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface PaginatedResponse { - limit: number - offset: number - count: number -} diff --git a/packages/core/types/src/http/common/request.ts b/packages/core/types/src/http/common/request.ts new file mode 100644 index 0000000000..491e774da2 --- /dev/null +++ b/packages/core/types/src/http/common/request.ts @@ -0,0 +1,9 @@ +export interface SelectParams { + fields?: string[] +} + +export interface FindParams extends SelectParams { + limit?: number + offset?: number + order?: string +} diff --git a/packages/core/types/src/http/common/response.ts b/packages/core/types/src/http/common/response.ts new file mode 100644 index 0000000000..80a2b2fa2a --- /dev/null +++ b/packages/core/types/src/http/common/response.ts @@ -0,0 +1,27 @@ +export type DeleteResponse = { + /** + * The ID of the item that was deleted. + */ + id: string + + /** + * The type of the item that was deleted. + */ + object: TObject + + /** + * Whether the item was deleted successfully. + */ + deleted: boolean + + /** + * The parent resource of the item that was deleted, if applicable. + */ + parent?: TParent +} + +export type PaginatedResponse = { + limit: number + offset: number + count: number +} & T diff --git a/packages/core/types/src/http/customer/admin/customer.ts b/packages/core/types/src/http/customer/admin/customer.ts index aef4f5d0d0..2c7f0731e7 100644 --- a/packages/core/types/src/http/customer/admin/customer.ts +++ b/packages/core/types/src/http/customer/admin/customer.ts @@ -1,8 +1,5 @@ -import { PaginatedResponse } from "../../../common" +import { PaginatedResponse } from "../../common" -/** - * @experimental - */ export interface CustomerGroupResponse { id: string name: string | null @@ -12,9 +9,6 @@ export interface CustomerGroupResponse { updated_at: string } -/** - * @experimental - */ export interface CustomerAddressResponse { id: string address_name: string | null @@ -36,9 +30,6 @@ export interface CustomerAddressResponse { updated_at: string } -/** - * @experimental - */ interface CustomerResponse { id: string email: string @@ -58,30 +49,18 @@ interface CustomerResponse { updated_at?: Date | string } -/** - * @experimental - */ export interface AdminCustomerResponse { customer: CustomerResponse } -/** - * @experimental - */ -export interface AdminCustomerListResponse extends PaginatedResponse { +export type AdminCustomerListResponse = PaginatedResponse<{ customers: CustomerResponse[] -} +}> -/** - * @experimental - */ export interface AdminCustomerGroupResponse { customer_group: CustomerGroupResponse } -/** - * @experimental - */ -export interface AdminCustomerGroupListResponse extends PaginatedResponse { +export type AdminCustomerGroupListResponse = PaginatedResponse<{ customer_groups: CustomerGroupResponse[] -} +}> diff --git a/packages/core/types/src/http/fulfillment/admin/fulfillment-address.ts b/packages/core/types/src/http/fulfillment/admin/fulfillment-address.ts index d894d39106..c0beffb0fb 100644 --- a/packages/core/types/src/http/fulfillment/admin/fulfillment-address.ts +++ b/packages/core/types/src/http/fulfillment/admin/fulfillment-address.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface AdminFulfillmentAddressResponse { id: string fulfillment_id: string | null diff --git a/packages/core/types/src/http/fulfillment/admin/fulfillment-item.ts b/packages/core/types/src/http/fulfillment/admin/fulfillment-item.ts index a384d1dca2..e3638c39f0 100644 --- a/packages/core/types/src/http/fulfillment/admin/fulfillment-item.ts +++ b/packages/core/types/src/http/fulfillment/admin/fulfillment-item.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface AdminFulfillmentItemResponse { id: string title: string diff --git a/packages/core/types/src/http/fulfillment/admin/fulfillment-label.ts b/packages/core/types/src/http/fulfillment/admin/fulfillment-label.ts index 1f0f6232f3..a489584f48 100644 --- a/packages/core/types/src/http/fulfillment/admin/fulfillment-label.ts +++ b/packages/core/types/src/http/fulfillment/admin/fulfillment-label.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface AdminFulfillmentLabelResponse { id: string tracking_number: string diff --git a/packages/core/types/src/http/fulfillment/admin/fulfillment-provider.ts b/packages/core/types/src/http/fulfillment/admin/fulfillment-provider.ts index 691bb3815f..ed8c8feda9 100644 --- a/packages/core/types/src/http/fulfillment/admin/fulfillment-provider.ts +++ b/packages/core/types/src/http/fulfillment/admin/fulfillment-provider.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface AdminFulfillmentProviderResponse { id: string name: string diff --git a/packages/core/types/src/http/fulfillment/admin/fulfillment-set.ts b/packages/core/types/src/http/fulfillment/admin/fulfillment-set.ts index 2b932c55ce..e03c481d84 100644 --- a/packages/core/types/src/http/fulfillment/admin/fulfillment-set.ts +++ b/packages/core/types/src/http/fulfillment/admin/fulfillment-set.ts @@ -1,8 +1,5 @@ import { ServiceZoneResponse } from "./service-zone" -/** - * @experimental - */ export interface FulfillmentSetResponse { id: string name: string @@ -14,9 +11,6 @@ export interface FulfillmentSetResponse { deleted_at: Date | null } -/** - * @experimental - */ export interface AdminFulfillmentSetResponse { fulfillment_set: FulfillmentSetResponse } diff --git a/packages/core/types/src/http/fulfillment/admin/fulfillment.ts b/packages/core/types/src/http/fulfillment/admin/fulfillment.ts index 40f7904f01..030693472c 100644 --- a/packages/core/types/src/http/fulfillment/admin/fulfillment.ts +++ b/packages/core/types/src/http/fulfillment/admin/fulfillment.ts @@ -1,12 +1,9 @@ -import { DeleteResponse } from "../../../common" +import { DeleteResponse } from "../../common" import { AdminFulfillmentAddressResponse } from "./fulfillment-address" import { AdminFulfillmentItemResponse } from "./fulfillment-item" import { AdminFulfillmentLabelResponse } from "./fulfillment-label" import { AdminFulfillmentProviderResponse } from "./fulfillment-provider" -/** - * @experimental - */ export interface AdminFulfillmentResponse { id: string location_id: string @@ -27,8 +24,5 @@ export interface AdminFulfillmentResponse { deleted_at: Date | null } -/** - * @experimental - */ export interface AdminFulfillmentSetsDeleteResponse extends DeleteResponse<"fulfillment_set"> {} diff --git a/packages/core/types/src/http/fulfillment/admin/geo-zone.ts b/packages/core/types/src/http/fulfillment/admin/geo-zone.ts index 9d78dfaabb..640bd898a6 100644 --- a/packages/core/types/src/http/fulfillment/admin/geo-zone.ts +++ b/packages/core/types/src/http/fulfillment/admin/geo-zone.ts @@ -1,8 +1,5 @@ import { GeoZoneType } from "../../../fulfillment" -/** - * @experimental - */ export interface AdminGeoZoneResponse { id: string type: GeoZoneType diff --git a/packages/core/types/src/http/fulfillment/admin/service-zone.ts b/packages/core/types/src/http/fulfillment/admin/service-zone.ts index 36df1e0c8b..24aac0878a 100644 --- a/packages/core/types/src/http/fulfillment/admin/service-zone.ts +++ b/packages/core/types/src/http/fulfillment/admin/service-zone.ts @@ -1,16 +1,10 @@ import { FulfillmentSetResponse } from "./fulfillment-set" import { AdminGeoZoneResponse } from "./geo-zone" -/** - * @experimental - */ export interface AdminServiceZoneResponse { service_zone: ServiceZoneResponse } -/** - * @experimental - */ export interface AdminServiceZoneDeleteResponse { id: string object: "service-zone" @@ -18,9 +12,6 @@ export interface AdminServiceZoneDeleteResponse { parent: FulfillmentSetResponse } -/** - * @experimental - */ export interface ServiceZoneResponse { id: string name: string diff --git a/packages/core/types/src/http/fulfillment/admin/shipping-option-rule.ts b/packages/core/types/src/http/fulfillment/admin/shipping-option-rule.ts index 8f1142b44d..5d24244f9f 100644 --- a/packages/core/types/src/http/fulfillment/admin/shipping-option-rule.ts +++ b/packages/core/types/src/http/fulfillment/admin/shipping-option-rule.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface AdminShippingOptionRuleResponse { id: string attribute: string diff --git a/packages/core/types/src/http/fulfillment/admin/shipping-option-type.ts b/packages/core/types/src/http/fulfillment/admin/shipping-option-type.ts index d0fd66dae9..f2cfbbf438 100644 --- a/packages/core/types/src/http/fulfillment/admin/shipping-option-type.ts +++ b/packages/core/types/src/http/fulfillment/admin/shipping-option-type.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface AdminShippingOptionTypeResponse { id: string label: string diff --git a/packages/core/types/src/http/fulfillment/admin/shipping-option.ts b/packages/core/types/src/http/fulfillment/admin/shipping-option.ts index 2b76ceefbc..844af91cd4 100644 --- a/packages/core/types/src/http/fulfillment/admin/shipping-option.ts +++ b/packages/core/types/src/http/fulfillment/admin/shipping-option.ts @@ -7,9 +7,6 @@ import { AdminFulfillmentProviderResponse } from "./fulfillment-provider" import { AdminPriceSetPriceResponse } from "../../pricing" import { DeleteResponse, PaginatedResponse } from "../../common" -/** - * @experimental - */ interface AdminShippingOptionResponse { id: string name: string @@ -31,22 +28,13 @@ interface AdminShippingOptionResponse { deleted_at: Date | null } -/** - * @experimental - */ export interface AdminShippingOptionRetrieveResponse { shipping_option: AdminShippingOptionResponse } -/** - * @experimental - */ -export interface AdminShippingOptionListResponse extends PaginatedResponse { +export type AdminShippingOptionListResponse = PaginatedResponse<{ shipping_options: AdminShippingOptionResponse[] -} +}> -/** - * @experimental - */ export interface AdminShippingOptionDeleteResponse extends DeleteResponse<"shipping_option"> {} diff --git a/packages/core/types/src/http/fulfillment/admin/shipping-profile.ts b/packages/core/types/src/http/fulfillment/admin/shipping-profile.ts index f6b046291f..0eb753202c 100644 --- a/packages/core/types/src/http/fulfillment/admin/shipping-profile.ts +++ b/packages/core/types/src/http/fulfillment/admin/shipping-profile.ts @@ -1,8 +1,5 @@ -import { DeleteResponse, PaginatedResponse } from "../../../common" +import { DeleteResponse, PaginatedResponse } from "../../common" -/** - * @experimental - */ export interface ShippingProfileResponse { id: string name: string @@ -17,12 +14,9 @@ export interface AdminShippingProfileResponse { shipping_profile: ShippingProfileResponse } -export interface AdminShippingProfilesResponse extends PaginatedResponse { +export type AdminShippingProfilesResponse = PaginatedResponse<{ shipping_profiles: ShippingProfileResponse[] -} +}> -/** - * @experimental - */ export interface AdminShippingProfileDeleteResponse extends DeleteResponse<"shipping_profile"> {} diff --git a/packages/core/types/src/http/index.ts b/packages/core/types/src/http/index.ts index 3681b8f704..3f72b76870 100644 --- a/packages/core/types/src/http/index.ts +++ b/packages/core/types/src/http/index.ts @@ -12,3 +12,7 @@ export * from "./stock-locations" export * from "./tax" export * from "./product-category" export * from "./reservation" +export * from "./region" +export * from "./product" +export * from "./collection" +export * from "./common" diff --git a/packages/core/types/src/http/inventory/inventory-level.ts b/packages/core/types/src/http/inventory/inventory-level.ts index e0e51c68e8..d4a6da16e1 100644 --- a/packages/core/types/src/http/inventory/inventory-level.ts +++ b/packages/core/types/src/http/inventory/inventory-level.ts @@ -11,16 +11,11 @@ interface InventoryLevelResponse { incoming_quantity: number metadata?: Record | null } -/** - * @experimental - */ + export interface AdminInventoryLevelResponse { inventory_item: AdminInventoryItemResponse } -/** - * @experimental - */ -export interface AdminInventoryLevelListResponse extends PaginatedResponse { +export type AdminInventoryLevelListResponse = PaginatedResponse<{ inventory_levels: InventoryLevelResponse[] -} +}> diff --git a/packages/core/types/src/http/inventory/inventory.ts b/packages/core/types/src/http/inventory/inventory.ts index e3eaba5196..9867a750b4 100644 --- a/packages/core/types/src/http/inventory/inventory.ts +++ b/packages/core/types/src/http/inventory/inventory.ts @@ -17,16 +17,11 @@ interface InventoryItemResponse { thumbnail?: string | null metadata?: Record | null } -/** - * @experimental - */ + export interface AdminInventoryItemResponse { inventory_item: InventoryItemResponse } -/** - * @experimental - */ -export interface AdminInventoryItemListResponse extends PaginatedResponse { +export type AdminInventoryItemListResponse = PaginatedResponse<{ inventory_items: InventoryItemResponse[] -} +}> diff --git a/packages/core/types/src/http/order/admin/index.ts b/packages/core/types/src/http/order/admin/index.ts index c0d290f082..620b90d3d5 100644 --- a/packages/core/types/src/http/order/admin/index.ts +++ b/packages/core/types/src/http/order/admin/index.ts @@ -233,9 +233,6 @@ interface OrderTransaction { updated_at: Date | string } -/** - * @experimental - */ export interface OrderResponse { id: string version: number @@ -299,16 +296,10 @@ export interface OrderResponse { raw_original_shipping_tax_total?: BigNumberRawValue } -/** - * @experimental - */ -export interface AdminOrderListResponse extends PaginatedResponse { +export type AdminOrderListResponse = PaginatedResponse<{ orders: OrderResponse[] -} +}> -/** - * @experimental - */ export interface AdminOrderResponse { order: OrderResponse } diff --git a/packages/core/types/src/http/product-category/admin.ts b/packages/core/types/src/http/product-category/admin.ts index 2cf02ef7da..06c849f9c0 100644 --- a/packages/core/types/src/http/product-category/admin.ts +++ b/packages/core/types/src/http/product-category/admin.ts @@ -1,16 +1,10 @@ -import { PaginatedResponse } from "../../common" +import { PaginatedResponse } from "../common" import { ProductCategoryResponse } from "./common" -/** - * @experimental - */ export interface AdminProductCategoryResponse { product_category: ProductCategoryResponse } -/** - * @experimental - */ -export interface AdminProductCategoryListResponse extends PaginatedResponse { +export type AdminProductCategoryListResponse = PaginatedResponse<{ product_categories: ProductCategoryResponse[] -} +}> diff --git a/packages/core/types/src/http/product-category/common.ts b/packages/core/types/src/http/product-category/common.ts index 32b2aa4250..b1c932a3f7 100644 --- a/packages/core/types/src/http/product-category/common.ts +++ b/packages/core/types/src/http/product-category/common.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface ProductCategoryResponse { id: string name: string diff --git a/packages/core/types/src/http/product-category/store.ts b/packages/core/types/src/http/product-category/store.ts index 82da2fdec4..b9d46d5dd3 100644 --- a/packages/core/types/src/http/product-category/store.ts +++ b/packages/core/types/src/http/product-category/store.ts @@ -1,16 +1,10 @@ -import { PaginatedResponse } from "../../common" +import { PaginatedResponse } from "../common" import { ProductCategoryResponse } from "./common" -/** - * @experimental - */ export interface StoreProductCategoryResponse { product_category: ProductCategoryResponse } -/** - * @experimental - */ -export interface StoreProductCategoryListResponse extends PaginatedResponse { +export type StoreProductCategoryListResponse = PaginatedResponse<{ product_categories: ProductCategoryResponse[] -} +}> diff --git a/packages/core/types/src/http/product/admin.ts b/packages/core/types/src/http/product/admin.ts new file mode 100644 index 0000000000..b09d025586 --- /dev/null +++ b/packages/core/types/src/http/product/admin.ts @@ -0,0 +1,39 @@ +import { + BaseProduct, + BaseProductCategory, + BaseProductCategoryFilters, + BaseProductFilters, + BaseProductImage, + BaseProductOption, + BaseProductOptionFilters, + BaseProductOptionValue, + BaseProductTag, + BaseProductTagFilters, + BaseProductType, + BaseProductTypeFilters, + BaseProductVariant, + BaseProductVariantFilters, +} from "./common" + +export interface AdminProduct extends Omit { + categories?: AdminProductCategory[] +} + +export interface AdminProductCategory extends BaseProductCategory { + is_active?: boolean + is_internal?: boolean +} +export interface AdminProductVariant extends BaseProductVariant {} +export interface AdminProductTag extends BaseProductTag {} +export interface AdminProductType extends BaseProductType {} +export interface AdminProductOption extends BaseProductOption {} +export interface AdminProductImage extends BaseProductImage {} +export interface AdminProductOptionValue extends BaseProductOptionValue {} + +export interface AdminProductFilters extends BaseProductFilters {} +export interface AdminProductTagFilters extends BaseProductTagFilters {} +export interface AdminProductTypeFilters extends BaseProductTypeFilters {} +export interface AdminProductOptionFilters extends BaseProductOptionFilters {} +export interface AdminProductVariantFilters extends BaseProductVariantFilters {} +export interface AdminProductCategoryFilters + extends BaseProductCategoryFilters {} diff --git a/packages/core/types/src/http/product/common.ts b/packages/core/types/src/http/product/common.ts new file mode 100644 index 0000000000..f550ab439c --- /dev/null +++ b/packages/core/types/src/http/product/common.ts @@ -0,0 +1,191 @@ +import { BaseFilterable, OperatorMap } from "../../dal" +import { BaseProductCollection } from "../collection/common" + +export type ProductStatus = "draft" | "proposed" | "published" | "rejected" + +export interface BaseProduct { + id?: string + title?: string + handle?: string + subtitle?: string | null + description?: string | null + is_giftcard?: boolean + status?: ProductStatus + thumbnail?: string + width?: number + weight?: number + length?: number + height?: number + origin_country?: string + hs_code?: string + mid_code?: string + material?: string + collection?: BaseProductCollection + collection_id?: string | null + categories?: BaseProductCategory[] + type?: BaseProductType | null + type_id?: string | null + tags?: BaseProductTag[] + variants?: BaseProductVariant[] + options?: BaseProductOption[] + images?: BaseProductImage[] + discountable?: boolean + external_id?: string | null + created_at?: string + updated_at?: string + deleted_at?: string | null + metadata?: Record | null +} + +export interface BaseProductVariant { + id?: string + title?: string + sku?: string + barcode?: string + ean?: string + upc?: string + allow_backorder?: boolean + manage_inventory?: boolean + hs_code?: string + origin_country?: string + mid_code?: string + material?: string + weight?: number + length?: number + height?: number + width?: number + options?: BaseProductOptionValue[] + product?: BaseProduct + product_id?: string | null + variant_rank?: number + created_at?: string + updated_at?: string + deleted_at?: string | null + metadata?: Record | null +} + +export interface BaseProductCategory { + id?: string + name?: string + description?: string | null + handle?: string + rank?: number + parent_category?: BaseProductCategory + parent_category_id?: string + category_children?: BaseProductCategory[] + products?: BaseProduct[] + created_at?: string + updated_at?: string + metadata?: Record +} + +export interface BaseProductTag { + id?: string + value?: string + products?: BaseProduct[] + metadata?: Record | null +} + +export interface BaseProductType { + id?: string + value?: string + created_at?: string + updated_at?: string + deleted_at?: string | null + metadata?: Record | null +} + +export interface BaseProductOption { + id?: string + title?: string + product?: BaseProduct + product_id?: string + values?: BaseProductOptionValue[] + metadata?: Record | null + created_at?: string + updated_at?: string + deleted_at?: string | null +} + +export interface BaseProductImage { + id?: string + url?: string + created_at?: string + updated_at?: string + deleted_at?: string | null + metadata?: Record | null +} + +export interface BaseProductOptionValue { + id?: string + value?: string + option?: BaseProductOption + option_id?: string + metadata?: Record | null + created_at?: string + updated_at?: string + deleted_at?: string | null +} + +export interface BaseProductFilters extends BaseFilterable { + q?: string + status?: ProductStatus | ProductStatus[] + title?: string | string[] + handle?: string | string[] + id?: string | string[] + is_giftcard?: boolean + tags?: { + value?: string[] + } + type_id?: string | string[] + category_id?: string | string[] | OperatorMap + categories?: { id: OperatorMap } | { id: OperatorMap } + collection_id?: string | string[] | OperatorMap + created_at?: OperatorMap + updated_at?: OperatorMap + deleted_at?: OperatorMap +} + +export interface BaseProductTagFilters + extends BaseFilterable { + q?: string + id?: string | string[] + value?: string | string[] +} + +export interface BaseProductTypeFilters + extends BaseFilterable { + q?: string + id?: string | string[] + value?: string +} + +export interface BaseProductOptionFilters + extends BaseFilterable { + q?: string + id?: string | string[] + title?: string | string[] + product_id?: string | string[] +} + +export interface BaseProductVariantFilters + extends BaseFilterable { + q?: string + id?: string | string[] + sku?: string | string[] + product_id?: string | string[] + options?: Record +} + +export interface BaseProductCategoryFilters + extends BaseFilterable { + q?: string + id?: string | string[] + name?: string | string[] + parent_category_id?: string | string[] | null + handle?: string | string[] + is_active?: boolean + is_internal?: boolean + include_descendants_tree?: boolean + include_ancestors_tree?: boolean +} diff --git a/packages/core/types/src/http/product/index.ts b/packages/core/types/src/http/product/index.ts new file mode 100644 index 0000000000..3bd2bd2cc0 --- /dev/null +++ b/packages/core/types/src/http/product/index.ts @@ -0,0 +1,2 @@ +export * from "./admin" +export * from "./store" diff --git a/packages/core/types/src/http/product/store.ts b/packages/core/types/src/http/product/store.ts new file mode 100644 index 0000000000..00dd5f5191 --- /dev/null +++ b/packages/core/types/src/http/product/store.ts @@ -0,0 +1,33 @@ +import { + BaseProduct, + BaseProductCategory, + BaseProductCategoryFilters, + BaseProductFilters, + BaseProductImage, + BaseProductOption, + BaseProductOptionFilters, + BaseProductOptionValue, + BaseProductTag, + BaseProductTagFilters, + BaseProductType, + BaseProductTypeFilters, + BaseProductVariant, + BaseProductVariantFilters, +} from "./common" + +export interface StoreProduct extends BaseProduct {} +export interface StoreProductCategory extends BaseProductCategory {} +export interface StoreProductVariant extends BaseProductVariant {} +export interface StoreProductTag extends BaseProductTag {} +export interface StoreProductType extends BaseProductType {} +export interface StoreProductOption extends BaseProductOption {} +export interface StoreProductImage extends BaseProductImage {} +export interface StoreProductOptionValue extends BaseProductOptionValue {} + +export interface StoreProductFilters extends BaseProductFilters {} +export interface StoreProductTagFilters extends BaseProductTagFilters {} +export interface StoreProductTypeFilters extends BaseProductTypeFilters {} +export interface StoreProductOptionFilters extends BaseProductOptionFilters {} +export interface StoreProductVariantFilters extends BaseProductVariantFilters {} +export interface StoreProductCategoryFilters + extends BaseProductCategoryFilters {} diff --git a/packages/core/types/src/http/promotion/admin/promotion-rule.ts b/packages/core/types/src/http/promotion/admin/promotion-rule.ts index e813f2d5c8..b2b06cfd6f 100644 --- a/packages/core/types/src/http/promotion/admin/promotion-rule.ts +++ b/packages/core/types/src/http/promotion/admin/promotion-rule.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface PromotionRuleResponse { id: string attribute: string @@ -13,9 +10,6 @@ export interface PromotionRuleResponse { required: boolean } -/** - * @experimental - */ export interface AdminPromotionRuleListResponse { attributes: PromotionRuleResponse[] } diff --git a/packages/core/types/src/http/promotion/admin/rule-attribute-options.ts b/packages/core/types/src/http/promotion/admin/rule-attribute-options.ts index a2f7fd0098..3f1536614a 100644 --- a/packages/core/types/src/http/promotion/admin/rule-attribute-options.ts +++ b/packages/core/types/src/http/promotion/admin/rule-attribute-options.ts @@ -1,6 +1,3 @@ -/** - * @experimental - */ export interface RuleAttributeOptionsResponse { id: string value: string @@ -10,9 +7,6 @@ export interface RuleAttributeOptionsResponse { disguised: boolean } -/** - * @experimental - */ export interface AdminRuleAttributeOptionsListResponse { attributes: RuleAttributeOptionsResponse[] } diff --git a/packages/core/types/src/http/promotion/admin/rule-operator-options.ts b/packages/core/types/src/http/promotion/admin/rule-operator-options.ts index 11f14d1b18..a347869097 100644 --- a/packages/core/types/src/http/promotion/admin/rule-operator-options.ts +++ b/packages/core/types/src/http/promotion/admin/rule-operator-options.ts @@ -1,15 +1,9 @@ -/** - * @experimental - */ export interface RuleOperatorOptionsResponse { id: string value: string label: string } -/** - * @experimental - */ export interface AdminRuleOperatorOptionsListResponse { operators: RuleOperatorOptionsResponse[] } diff --git a/packages/core/types/src/http/region/admin.ts b/packages/core/types/src/http/region/admin.ts new file mode 100644 index 0000000000..e377358170 --- /dev/null +++ b/packages/core/types/src/http/region/admin.ts @@ -0,0 +1,11 @@ +import { + BaseRegion, + BaseRegionCountry, + BaseRegionCountryFilters, + BaseRegionFilters, +} from "./common" + +export interface AdminRegion extends BaseRegion {} +export interface AdminRegionCountry extends BaseRegionCountry {} +export interface AdminRegionFilters extends BaseRegionFilters {} +export interface AdminRegionCountryFilters extends BaseRegionCountryFilters {} diff --git a/packages/core/types/src/http/region/common.ts b/packages/core/types/src/http/region/common.ts new file mode 100644 index 0000000000..9459a20c6e --- /dev/null +++ b/packages/core/types/src/http/region/common.ts @@ -0,0 +1,41 @@ +import { BaseFilterable, OperatorMap } from "../../dal" + +export interface BaseRegion { + id?: string + name?: string + currency_code?: string + automatic_taxes?: boolean + countries?: BaseRegionCountry[] + metadata?: Record | null + created_at?: string + updated_at?: string +} + +export interface BaseRegionCountry { + id?: string + iso_2?: string + iso_3?: string + num_code?: number + name?: string + display_name?: string +} + +export interface BaseRegionFilters extends BaseFilterable { + q?: string + id?: string[] | string | OperatorMap + name?: string | OperatorMap + currency_code?: string | OperatorMap + metadata?: Record | OperatorMap> + created_at?: OperatorMap + updated_at?: OperatorMap +} + +export interface BaseRegionCountryFilters + extends BaseFilterable { + id?: string[] | string + iso_2?: string[] | string + iso_3?: string[] | string + num_code?: number[] | string + name?: string[] | string + display_name?: string[] | string +} diff --git a/packages/core/types/src/http/region/index.ts b/packages/core/types/src/http/region/index.ts new file mode 100644 index 0000000000..3bd2bd2cc0 --- /dev/null +++ b/packages/core/types/src/http/region/index.ts @@ -0,0 +1,2 @@ +export * from "./admin" +export * from "./store" diff --git a/packages/core/types/src/http/region/store.ts b/packages/core/types/src/http/region/store.ts new file mode 100644 index 0000000000..8460543e0e --- /dev/null +++ b/packages/core/types/src/http/region/store.ts @@ -0,0 +1,11 @@ +import { + BaseRegion, + BaseRegionCountry, + BaseRegionCountryFilters, + BaseRegionFilters, +} from "./common" + +export interface StoreRegion extends BaseRegion {} +export interface StoreRegionCountry extends BaseRegionCountry {} +export interface StoreRegionFilters extends BaseRegionFilters {} +export interface StoreRegionCountryFilters extends BaseRegionCountryFilters {} diff --git a/packages/core/types/src/http/reservation/admin/reservation.ts b/packages/core/types/src/http/reservation/admin/reservation.ts index d15a1fdbd9..b028d33bc6 100644 --- a/packages/core/types/src/http/reservation/admin/reservation.ts +++ b/packages/core/types/src/http/reservation/admin/reservation.ts @@ -1,8 +1,5 @@ -import { PaginatedResponse } from "../../../common" +import { PaginatedResponse } from "../../common" -/** - * @experimental - */ interface ReservationResponse { id: string line_item_id: string | null @@ -19,16 +16,10 @@ interface ReservationResponse { updated_at?: Date | string } -/** - * @experimental - */ export interface AdminReservationResponse { reservation: ReservationResponse } -/** - * @experimental - */ -export interface AdminReservationListResponse extends PaginatedResponse { +export type AdminReservationListResponse = PaginatedResponse<{ reservations: ReservationResponse[] -} +}> diff --git a/packages/core/types/src/http/sales-channel/admin/sales-channel.ts b/packages/core/types/src/http/sales-channel/admin/sales-channel.ts index f82eb2af5f..984e1604cb 100644 --- a/packages/core/types/src/http/sales-channel/admin/sales-channel.ts +++ b/packages/core/types/src/http/sales-channel/admin/sales-channel.ts @@ -1,8 +1,5 @@ import { PaginatedResponse } from "../../common" -/** - * @experimental - */ interface SalesChannelResponse { id: string name: string @@ -11,16 +8,10 @@ interface SalesChannelResponse { metadata: Record | null } -/** - * @experimental - */ -export interface AdminSalesChannelListResponse extends PaginatedResponse { +export type AdminSalesChannelListResponse = PaginatedResponse<{ sales_channels: SalesChannelResponse[] -} +}> -/** - * @experimental - */ export interface AdminSalesChannelResponse { sales_channel: SalesChannelResponse } diff --git a/packages/core/types/src/http/tax/admin/tax-rates.ts b/packages/core/types/src/http/tax/admin/tax-rates.ts index 56eb031bcd..57bcc25e56 100644 --- a/packages/core/types/src/http/tax/admin/tax-rates.ts +++ b/packages/core/types/src/http/tax/admin/tax-rates.ts @@ -1,9 +1,6 @@ -import { PaginatedResponse } from "../../../common" +import { PaginatedResponse } from "../../common" import { TaxRegionResponse } from "./tax-regions" -/** - * @experimental - */ export interface TaxRateResponse { id: string rate: number | null @@ -24,16 +21,10 @@ export interface TaxRateResponse { }[] } -/** - * @experimental - */ export interface AdminTaxRateResponse { tax_rate: TaxRateResponse } -/** - * @experimental - */ -export interface AdminTaxRateListResponse extends PaginatedResponse { +export type AdminTaxRateListResponse = PaginatedResponse<{ tax_rates: TaxRateResponse[] -} +}> diff --git a/packages/core/types/src/http/tax/admin/tax-regions.ts b/packages/core/types/src/http/tax/admin/tax-regions.ts index dcd4a85aaa..d93d4b8987 100644 --- a/packages/core/types/src/http/tax/admin/tax-regions.ts +++ b/packages/core/types/src/http/tax/admin/tax-regions.ts @@ -1,9 +1,6 @@ -import { PaginatedResponse } from "../../../common" +import { PaginatedResponse } from "../../common" import { TaxRateResponse } from "./tax-rates" -/** - * @experimental - */ export interface TaxRegionResponse { id: string rate: number | null @@ -26,16 +23,10 @@ export interface TaxRegionResponse { parent: TaxRegionResponse } -/** - * @experimental - */ export interface AdminTaxRegionResponse { tax_region: TaxRegionResponse } -/** - * @experimental - */ -export interface AdminTaxRegionListResponse extends PaginatedResponse { +export type AdminTaxRegionListResponse = PaginatedResponse<{ tax_regions: TaxRegionResponse[] -} +}>