@pakento/cms-sdk 2.1.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -41,6 +41,7 @@ interface ItemsWhere {
41
41
  item_category_id?: WhereEquals;
42
42
  item_super_category_id?: WhereEquals;
43
43
  brand_id?: WhereEquals;
44
+ id?: WhereEquals;
44
45
  }
45
46
  interface CategoriesWhere {
46
47
  item_super_category_id?: WhereEquals;
package/dist/index.d.ts CHANGED
@@ -41,6 +41,7 @@ interface ItemsWhere {
41
41
  item_category_id?: WhereEquals;
42
42
  item_super_category_id?: WhereEquals;
43
43
  brand_id?: WhereEquals;
44
+ id?: WhereEquals;
44
45
  }
45
46
  interface CategoriesWhere {
46
47
  item_super_category_id?: WhereEquals;
package/dist/index.js CHANGED
@@ -68,6 +68,40 @@ var PakentoCMSAPI = class {
68
68
  }
69
69
  async getItems(params = {}) {
70
70
  try {
71
+ const whereConditions = {};
72
+ if (params.where?.item_category_id?.equals) {
73
+ whereConditions.item_category_id = {
74
+ equals: params.where.item_category_id.equals
75
+ };
76
+ }
77
+ if (params.where?.item_super_category_id?.equals) {
78
+ whereConditions.item_super_category_id = {
79
+ equals: params.where.item_super_category_id.equals
80
+ };
81
+ }
82
+ if (params.where?.brand_id?.equals) {
83
+ whereConditions.brand_id = {
84
+ equals: params.where.brand_id.equals
85
+ };
86
+ }
87
+ if (params.where?.id?.equals) {
88
+ whereConditions.id = {
89
+ equals: params.where.id.equals
90
+ };
91
+ }
92
+ const variables = {
93
+ onlyOffers: params.onlyOffers,
94
+ onlyEcommerce: params.onlyEcommerce,
95
+ limit: params.limit,
96
+ page: params.page,
97
+ search: params.search,
98
+ sort: params.sort,
99
+ minPrice: params.minPrice,
100
+ maxPrice: params.maxPrice
101
+ };
102
+ if (Object.keys(whereConditions).length > 0) {
103
+ variables.where = whereConditions;
104
+ }
71
105
  const query = `
72
106
  query GetEcommerceItems(
73
107
  $where: EcommerceItemsWhere
@@ -121,7 +155,7 @@ var PakentoCMSAPI = class {
121
155
  `;
122
156
  const response = await this.client.post("/api/graphql", {
123
157
  query,
124
- variables: params
158
+ variables
125
159
  });
126
160
  if (response.data.errors) {
127
161
  const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/services/api.ts"],"sourcesContent":["// Services\nexport { pakentoCMSAPI } from \"./services/api\";\n\n// Types\nexport type {\n // Base types\n Item,\n ItemImage,\n Category,\n Brand,\n\n // GraphQL Where conditions\n WhereEquals,\n ItemsWhere,\n CategoriesWhere,\n\n // API Parameters\n GetItemsParams,\n GetCategoriesParams,\n GetBrandsParams,\n\n // Raw API Response types\n ItemsRawResponse,\n CategoriesRawResponse,\n BrandsRawResponse,\n\n // API Response types with error handling\n ItemsApiResponse,\n CategoriesApiResponse,\n BrandsApiResponse,\n} from \"./types\";\n","import axios, { AxiosInstance, AxiosError } from \"axios\";\nimport type {\n GetItemsParams,\n GetCategoriesParams,\n GetBrandsParams,\n ItemsApiResponse,\n CategoriesApiResponse,\n BrandsApiResponse,\n ItemsRawResponse,\n CategoriesRawResponse,\n BrandsRawResponse,\n} from \"../types\";\n\nclass PakentoCMSAPI {\n private client: AxiosInstance;\n private baseURL: string;\n private apiKey: string;\n\n constructor() {\n this.baseURL = process.env.PAKENTO_CMS_BASE_URL || \"\";\n this.apiKey = process.env.PAKENTO_API_KEY || \"\";\n\n if (!this.baseURL) {\n throw new Error(\n \"PAKENTO_CMS_BASE_URL is required in environment variables\"\n );\n }\n\n if (!this.apiKey) {\n throw new Error(\"PAKENTO_API_KEY is required in environment variables\");\n }\n\n this.client = axios.create({\n baseURL: this.baseURL,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `users API-Key ${this.apiKey}`,\n },\n });\n\n // Interceptor para imprimir las URLs de las llamadas a la API\n this.client.interceptors.request.use(\n (config) => {\n const fullUrl = `${config.baseURL}${config.url}`;\n console.log(`🌐 API Call: ${config.method?.toUpperCase()} ${fullUrl}`);\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n }\n\n async getItems(params: GetItemsParams = {}): Promise<ItemsApiResponse> {\n try {\n const query = `\n query GetEcommerceItems(\n $where: EcommerceItemsWhere\n $onlyOffers: Boolean\n $onlyEcommerce: Boolean\n $limit: Int\n $page: Int\n $search: String\n $sort: String\n $minPrice: Float\n $maxPrice: Float\n ) {\n GetEcommerceItems(\n where: $where\n onlyOffers: $onlyOffers\n onlyEcommerce: $onlyEcommerce\n limit: $limit\n page: $page\n search: $search\n sort: $sort\n minPrice: $minPrice\n maxPrice: $maxPrice\n ) {\n totalDocs\n totalPages\n prevPage\n nextPage\n docs {\n id\n name\n featured\n old_price\n currency_prefix\n description\n price_text\n price\n brand_id\n brand_name\n cover_image_url\n cover_image_thumbnail_url\n item_category_name\n item_category_id\n images {\n alt\n url\n thumbnail_url\n }\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: ItemsRawResponse = response.data.data.GetEcommerceItems;\n\n return {\n data: rawData,\n items: rawData.docs,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n prevPage: rawData.prevPage,\n nextPage: rawData.nextPage,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n }\n\n async getCategories(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesApiResponse> {\n try {\n const query = `\n query GetEcommerceCategories(\n $where: EcommerceCategoriesWhere\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceCategories(\n where: $where\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n image_url\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n\n const rawData: CategoriesRawResponse =\n response.data.data.GetEcommerceCategories;\n\n return {\n data: rawData.docs,\n categories: rawData.docs,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n }\n\n async getBrands(params: GetBrandsParams = {}): Promise<BrandsApiResponse> {\n try {\n const query = `\n query GetEcommerceBrands(\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceBrands(\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n description\n items_count\n image_url\n image_thumbnail_url\n image_alt\n }\n hasNextPage\n hasPrevPage\n limit\n nextPage\n offset\n page\n pagingCounter\n prevPage\n totalDocs\n totalPages\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: BrandsRawResponse = response.data.data.GetEcommerceBrands;\n\n return {\n data: rawData,\n brands: rawData.docs,\n hasNextPage: rawData.hasNextPage,\n hasPrevPage: rawData.hasPrevPage,\n limit: rawData.limit,\n nextPage: rawData.nextPage,\n offset: rawData.offset,\n page: rawData.page,\n pagingCounter: rawData.pagingCounter,\n prevPage: rawData.prevPage,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n }\n}\n\nexport const pakentoCMSAPI = new PakentoCMSAPI();\n"],"mappings":"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","names":["axios"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/services/api.ts"],"sourcesContent":["// Services\nexport { pakentoCMSAPI } from \"./services/api\";\n\n// Types\nexport type {\n // Base types\n Item,\n ItemImage,\n Category,\n Brand,\n\n // GraphQL Where conditions\n WhereEquals,\n ItemsWhere,\n CategoriesWhere,\n\n // API Parameters\n GetItemsParams,\n GetCategoriesParams,\n GetBrandsParams,\n\n // Raw API Response types\n ItemsRawResponse,\n CategoriesRawResponse,\n BrandsRawResponse,\n\n // API Response types with error handling\n ItemsApiResponse,\n CategoriesApiResponse,\n BrandsApiResponse,\n} from \"./types\";\n","import axios, { AxiosInstance, AxiosError } from \"axios\";\nimport type {\n GetItemsParams,\n GetCategoriesParams,\n GetBrandsParams,\n ItemsApiResponse,\n CategoriesApiResponse,\n BrandsApiResponse,\n ItemsRawResponse,\n CategoriesRawResponse,\n BrandsRawResponse,\n} from \"../types\";\n\nclass PakentoCMSAPI {\n private client: AxiosInstance;\n private baseURL: string;\n private apiKey: string;\n\n constructor() {\n this.baseURL = process.env.PAKENTO_CMS_BASE_URL || \"\";\n this.apiKey = process.env.PAKENTO_API_KEY || \"\";\n\n if (!this.baseURL) {\n throw new Error(\n \"PAKENTO_CMS_BASE_URL is required in environment variables\"\n );\n }\n\n if (!this.apiKey) {\n throw new Error(\"PAKENTO_API_KEY is required in environment variables\");\n }\n\n this.client = axios.create({\n baseURL: this.baseURL,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `users API-Key ${this.apiKey}`,\n },\n });\n\n // Interceptor para imprimir las URLs de las llamadas a la API\n this.client.interceptors.request.use(\n (config) => {\n const fullUrl = `${config.baseURL}${config.url}`;\n console.log(`🌐 API Call: ${config.method?.toUpperCase()} ${fullUrl}`);\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n }\n\n async getItems(params: GetItemsParams = {}): Promise<ItemsApiResponse> {\n try {\n // Construir el objeto where solo si se envían parámetros\n const whereConditions: any = {};\n\n if (params.where?.item_category_id?.equals) {\n whereConditions.item_category_id = {\n equals: params.where.item_category_id.equals,\n };\n }\n\n if (params.where?.item_super_category_id?.equals) {\n whereConditions.item_super_category_id = {\n equals: params.where.item_super_category_id.equals,\n };\n }\n\n if (params.where?.brand_id?.equals) {\n whereConditions.brand_id = {\n equals: params.where.brand_id.equals,\n };\n }\n\n if (params.where?.id?.equals) {\n whereConditions.id = {\n equals: params.where.id.equals,\n };\n }\n\n // Solo incluir where si tiene condiciones\n const variables: any = {\n onlyOffers: params.onlyOffers,\n onlyEcommerce: params.onlyEcommerce,\n limit: params.limit,\n page: params.page,\n search: params.search,\n sort: params.sort,\n minPrice: params.minPrice,\n maxPrice: params.maxPrice,\n };\n\n // Solo agregar where si tiene condiciones\n if (Object.keys(whereConditions).length > 0) {\n variables.where = whereConditions;\n }\n\n const query = `\n query GetEcommerceItems(\n $where: EcommerceItemsWhere\n $onlyOffers: Boolean\n $onlyEcommerce: Boolean\n $limit: Int\n $page: Int\n $search: String\n $sort: String\n $minPrice: Float\n $maxPrice: Float\n ) {\n GetEcommerceItems(\n where: $where\n onlyOffers: $onlyOffers\n onlyEcommerce: $onlyEcommerce\n limit: $limit\n page: $page\n search: $search\n sort: $sort\n minPrice: $minPrice\n maxPrice: $maxPrice\n ) {\n totalDocs\n totalPages\n prevPage\n nextPage\n docs {\n id\n name\n featured\n old_price\n currency_prefix\n description\n price_text\n price\n brand_id\n brand_name\n cover_image_url\n cover_image_thumbnail_url\n item_category_name\n item_category_id\n images {\n alt\n url\n thumbnail_url\n }\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: ItemsRawResponse = response.data.data.GetEcommerceItems;\n\n return {\n data: rawData,\n items: rawData.docs,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n prevPage: rawData.prevPage,\n nextPage: rawData.nextPage,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n }\n\n async getCategories(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesApiResponse> {\n try {\n const query = `\n query GetEcommerceCategories(\n $where: EcommerceCategoriesWhere\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceCategories(\n where: $where\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n image_url\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n\n const rawData: CategoriesRawResponse =\n response.data.data.GetEcommerceCategories;\n\n return {\n data: rawData.docs,\n categories: rawData.docs,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n }\n\n async getBrands(params: GetBrandsParams = {}): Promise<BrandsApiResponse> {\n try {\n const query = `\n query GetEcommerceBrands(\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceBrands(\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n description\n items_count\n image_url\n image_thumbnail_url\n image_alt\n }\n hasNextPage\n hasPrevPage\n limit\n nextPage\n offset\n page\n pagingCounter\n prevPage\n totalDocs\n totalPages\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: BrandsRawResponse = response.data.data.GetEcommerceBrands;\n\n return {\n data: rawData,\n brands: rawData.docs,\n hasNextPage: rawData.hasNextPage,\n hasPrevPage: rawData.hasPrevPage,\n limit: rawData.limit,\n nextPage: rawData.nextPage,\n offset: rawData.offset,\n page: rawData.page,\n pagingCounter: rawData.pagingCounter,\n prevPage: rawData.prevPage,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n }\n}\n\nexport const pakentoCMSAPI = new PakentoCMSAPI();\n"],"mappings":"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","names":["axios"]}
package/dist/index.mjs CHANGED
@@ -32,6 +32,40 @@ var PakentoCMSAPI = class {
32
32
  }
33
33
  async getItems(params = {}) {
34
34
  try {
35
+ const whereConditions = {};
36
+ if (params.where?.item_category_id?.equals) {
37
+ whereConditions.item_category_id = {
38
+ equals: params.where.item_category_id.equals
39
+ };
40
+ }
41
+ if (params.where?.item_super_category_id?.equals) {
42
+ whereConditions.item_super_category_id = {
43
+ equals: params.where.item_super_category_id.equals
44
+ };
45
+ }
46
+ if (params.where?.brand_id?.equals) {
47
+ whereConditions.brand_id = {
48
+ equals: params.where.brand_id.equals
49
+ };
50
+ }
51
+ if (params.where?.id?.equals) {
52
+ whereConditions.id = {
53
+ equals: params.where.id.equals
54
+ };
55
+ }
56
+ const variables = {
57
+ onlyOffers: params.onlyOffers,
58
+ onlyEcommerce: params.onlyEcommerce,
59
+ limit: params.limit,
60
+ page: params.page,
61
+ search: params.search,
62
+ sort: params.sort,
63
+ minPrice: params.minPrice,
64
+ maxPrice: params.maxPrice
65
+ };
66
+ if (Object.keys(whereConditions).length > 0) {
67
+ variables.where = whereConditions;
68
+ }
35
69
  const query = `
36
70
  query GetEcommerceItems(
37
71
  $where: EcommerceItemsWhere
@@ -85,7 +119,7 @@ var PakentoCMSAPI = class {
85
119
  `;
86
120
  const response = await this.client.post("/api/graphql", {
87
121
  query,
88
- variables: params
122
+ variables
89
123
  });
90
124
  if (response.data.errors) {
91
125
  const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/services/api.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosError } from \"axios\";\nimport type {\n GetItemsParams,\n GetCategoriesParams,\n GetBrandsParams,\n ItemsApiResponse,\n CategoriesApiResponse,\n BrandsApiResponse,\n ItemsRawResponse,\n CategoriesRawResponse,\n BrandsRawResponse,\n} from \"../types\";\n\nclass PakentoCMSAPI {\n private client: AxiosInstance;\n private baseURL: string;\n private apiKey: string;\n\n constructor() {\n this.baseURL = process.env.PAKENTO_CMS_BASE_URL || \"\";\n this.apiKey = process.env.PAKENTO_API_KEY || \"\";\n\n if (!this.baseURL) {\n throw new Error(\n \"PAKENTO_CMS_BASE_URL is required in environment variables\"\n );\n }\n\n if (!this.apiKey) {\n throw new Error(\"PAKENTO_API_KEY is required in environment variables\");\n }\n\n this.client = axios.create({\n baseURL: this.baseURL,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `users API-Key ${this.apiKey}`,\n },\n });\n\n // Interceptor para imprimir las URLs de las llamadas a la API\n this.client.interceptors.request.use(\n (config) => {\n const fullUrl = `${config.baseURL}${config.url}`;\n console.log(`🌐 API Call: ${config.method?.toUpperCase()} ${fullUrl}`);\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n }\n\n async getItems(params: GetItemsParams = {}): Promise<ItemsApiResponse> {\n try {\n const query = `\n query GetEcommerceItems(\n $where: EcommerceItemsWhere\n $onlyOffers: Boolean\n $onlyEcommerce: Boolean\n $limit: Int\n $page: Int\n $search: String\n $sort: String\n $minPrice: Float\n $maxPrice: Float\n ) {\n GetEcommerceItems(\n where: $where\n onlyOffers: $onlyOffers\n onlyEcommerce: $onlyEcommerce\n limit: $limit\n page: $page\n search: $search\n sort: $sort\n minPrice: $minPrice\n maxPrice: $maxPrice\n ) {\n totalDocs\n totalPages\n prevPage\n nextPage\n docs {\n id\n name\n featured\n old_price\n currency_prefix\n description\n price_text\n price\n brand_id\n brand_name\n cover_image_url\n cover_image_thumbnail_url\n item_category_name\n item_category_id\n images {\n alt\n url\n thumbnail_url\n }\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: ItemsRawResponse = response.data.data.GetEcommerceItems;\n\n return {\n data: rawData,\n items: rawData.docs,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n prevPage: rawData.prevPage,\n nextPage: rawData.nextPage,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n }\n\n async getCategories(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesApiResponse> {\n try {\n const query = `\n query GetEcommerceCategories(\n $where: EcommerceCategoriesWhere\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceCategories(\n where: $where\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n image_url\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n\n const rawData: CategoriesRawResponse =\n response.data.data.GetEcommerceCategories;\n\n return {\n data: rawData.docs,\n categories: rawData.docs,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n }\n\n async getBrands(params: GetBrandsParams = {}): Promise<BrandsApiResponse> {\n try {\n const query = `\n query GetEcommerceBrands(\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceBrands(\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n description\n items_count\n image_url\n image_thumbnail_url\n image_alt\n }\n hasNextPage\n hasPrevPage\n limit\n nextPage\n offset\n page\n pagingCounter\n prevPage\n totalDocs\n totalPages\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: BrandsRawResponse = response.data.data.GetEcommerceBrands;\n\n return {\n data: rawData,\n brands: rawData.docs,\n hasNextPage: rawData.hasNextPage,\n hasPrevPage: rawData.hasPrevPage,\n limit: rawData.limit,\n nextPage: rawData.nextPage,\n offset: rawData.offset,\n page: rawData.page,\n pagingCounter: rawData.pagingCounter,\n prevPage: rawData.prevPage,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n }\n}\n\nexport const pakentoCMSAPI = new PakentoCMSAPI();\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/services/api.ts"],"sourcesContent":["import axios, { AxiosInstance, AxiosError } from \"axios\";\nimport type {\n GetItemsParams,\n GetCategoriesParams,\n GetBrandsParams,\n ItemsApiResponse,\n CategoriesApiResponse,\n BrandsApiResponse,\n ItemsRawResponse,\n CategoriesRawResponse,\n BrandsRawResponse,\n} from \"../types\";\n\nclass PakentoCMSAPI {\n private client: AxiosInstance;\n private baseURL: string;\n private apiKey: string;\n\n constructor() {\n this.baseURL = process.env.PAKENTO_CMS_BASE_URL || \"\";\n this.apiKey = process.env.PAKENTO_API_KEY || \"\";\n\n if (!this.baseURL) {\n throw new Error(\n \"PAKENTO_CMS_BASE_URL is required in environment variables\"\n );\n }\n\n if (!this.apiKey) {\n throw new Error(\"PAKENTO_API_KEY is required in environment variables\");\n }\n\n this.client = axios.create({\n baseURL: this.baseURL,\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `users API-Key ${this.apiKey}`,\n },\n });\n\n // Interceptor para imprimir las URLs de las llamadas a la API\n this.client.interceptors.request.use(\n (config) => {\n const fullUrl = `${config.baseURL}${config.url}`;\n console.log(`🌐 API Call: ${config.method?.toUpperCase()} ${fullUrl}`);\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n }\n\n async getItems(params: GetItemsParams = {}): Promise<ItemsApiResponse> {\n try {\n // Construir el objeto where solo si se envían parámetros\n const whereConditions: any = {};\n\n if (params.where?.item_category_id?.equals) {\n whereConditions.item_category_id = {\n equals: params.where.item_category_id.equals,\n };\n }\n\n if (params.where?.item_super_category_id?.equals) {\n whereConditions.item_super_category_id = {\n equals: params.where.item_super_category_id.equals,\n };\n }\n\n if (params.where?.brand_id?.equals) {\n whereConditions.brand_id = {\n equals: params.where.brand_id.equals,\n };\n }\n\n if (params.where?.id?.equals) {\n whereConditions.id = {\n equals: params.where.id.equals,\n };\n }\n\n // Solo incluir where si tiene condiciones\n const variables: any = {\n onlyOffers: params.onlyOffers,\n onlyEcommerce: params.onlyEcommerce,\n limit: params.limit,\n page: params.page,\n search: params.search,\n sort: params.sort,\n minPrice: params.minPrice,\n maxPrice: params.maxPrice,\n };\n\n // Solo agregar where si tiene condiciones\n if (Object.keys(whereConditions).length > 0) {\n variables.where = whereConditions;\n }\n\n const query = `\n query GetEcommerceItems(\n $where: EcommerceItemsWhere\n $onlyOffers: Boolean\n $onlyEcommerce: Boolean\n $limit: Int\n $page: Int\n $search: String\n $sort: String\n $minPrice: Float\n $maxPrice: Float\n ) {\n GetEcommerceItems(\n where: $where\n onlyOffers: $onlyOffers\n onlyEcommerce: $onlyEcommerce\n limit: $limit\n page: $page\n search: $search\n sort: $sort\n minPrice: $minPrice\n maxPrice: $maxPrice\n ) {\n totalDocs\n totalPages\n prevPage\n nextPage\n docs {\n id\n name\n featured\n old_price\n currency_prefix\n description\n price_text\n price\n brand_id\n brand_name\n cover_image_url\n cover_image_thumbnail_url\n item_category_name\n item_category_id\n images {\n alt\n url\n thumbnail_url\n }\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: ItemsRawResponse = response.data.data.GetEcommerceItems;\n\n return {\n data: rawData,\n items: rawData.docs,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n prevPage: rawData.prevPage,\n nextPage: rawData.nextPage,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n items: [],\n totalDocs: 0,\n totalPages: 0,\n prevPage: null,\n nextPage: null,\n error: true,\n errorMessage,\n };\n }\n }\n\n async getCategories(\n params: GetCategoriesParams = {}\n ): Promise<CategoriesApiResponse> {\n try {\n const query = `\n query GetEcommerceCategories(\n $where: EcommerceCategoriesWhere\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceCategories(\n where: $where\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n image_url\n }\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n\n const rawData: CategoriesRawResponse =\n response.data.data.GetEcommerceCategories;\n\n return {\n data: rawData.docs,\n categories: rawData.docs,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n categories: [],\n error: true,\n errorMessage,\n };\n }\n }\n\n async getBrands(params: GetBrandsParams = {}): Promise<BrandsApiResponse> {\n try {\n const query = `\n query GetEcommerceBrands(\n $limit: Int\n $page: Int\n $sort: String\n ) {\n GetEcommerceBrands(\n limit: $limit\n page: $page\n sort: $sort\n ) {\n docs {\n id\n name\n description\n items_count\n image_url\n image_thumbnail_url\n image_alt\n }\n hasNextPage\n hasPrevPage\n limit\n nextPage\n offset\n page\n pagingCounter\n prevPage\n totalDocs\n totalPages\n }\n }\n `;\n\n const response = await this.client.post(\"/api/graphql\", {\n query,\n variables: params,\n });\n\n if (response.data.errors) {\n const errorMessage = `GraphQL Error: ${response.data.errors[0].message}`;\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n\n const rawData: BrandsRawResponse = response.data.data.GetEcommerceBrands;\n\n return {\n data: rawData,\n brands: rawData.docs,\n hasNextPage: rawData.hasNextPage,\n hasPrevPage: rawData.hasPrevPage,\n limit: rawData.limit,\n nextPage: rawData.nextPage,\n offset: rawData.offset,\n page: rawData.page,\n pagingCounter: rawData.pagingCounter,\n prevPage: rawData.prevPage,\n totalDocs: rawData.totalDocs,\n totalPages: rawData.totalPages,\n error: false,\n errorMessage: null,\n };\n } catch (error) {\n let errorMessage = \"Error desconocido\";\n\n if (error instanceof AxiosError) {\n const status = error.response?.status;\n if (status === 401) {\n errorMessage = \"API Key inválida o expirada\";\n } else if (status === 404) {\n errorMessage = \"Endpoint no encontrado\";\n } else if (status && status >= 500) {\n errorMessage = \"Error del servidor CMS\";\n } else {\n errorMessage = `Error de conexión: ${error.message}`;\n }\n } else if (error instanceof Error) {\n errorMessage = error.message;\n }\n\n return {\n data: null,\n brands: [],\n hasNextPage: false,\n hasPrevPage: false,\n limit: 0,\n nextPage: 0,\n offset: 0,\n page: 0,\n pagingCounter: 0,\n prevPage: 0,\n totalDocs: 0,\n totalPages: 0,\n error: true,\n errorMessage,\n };\n }\n }\n}\n\nexport const pakentoCMSAPI = new PakentoCMSAPI();\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pakento/cms-sdk",
3
- "version": "2.1.0",
3
+ "version": "2.2.1",
4
4
  "description": "SDK para conectar tiendas en línea con Pakento CMS",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",