@schally/node-akeneo-api-client 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +186 -0
  3. package/dist/akeneo-client.d.ts +28 -0
  4. package/dist/akeneo-client.d.ts.map +1 -0
  5. package/dist/akeneo-client.js +33 -0
  6. package/dist/akeneo-client.js.map +1 -0
  7. package/dist/index.d.ts +6 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +23 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/services/akeneo-api-client.d.ts +11 -0
  12. package/dist/services/akeneo-api-client.d.ts.map +1 -0
  13. package/dist/services/akeneo-api-client.js +91 -0
  14. package/dist/services/akeneo-api-client.js.map +1 -0
  15. package/dist/services/api/asset-manager/asset-attributes-api.service.d.ts +21 -0
  16. package/dist/services/api/asset-manager/asset-attributes-api.service.d.ts.map +1 -0
  17. package/dist/services/api/asset-manager/asset-attributes-api.service.js +44 -0
  18. package/dist/services/api/asset-manager/asset-attributes-api.service.js.map +1 -0
  19. package/dist/services/api/asset-manager/asset-families-api.service.d.ts +15 -0
  20. package/dist/services/api/asset-manager/asset-families-api.service.d.ts.map +1 -0
  21. package/dist/services/api/asset-manager/asset-families-api.service.js +20 -0
  22. package/dist/services/api/asset-manager/asset-families-api.service.js.map +1 -0
  23. package/dist/services/api/asset-manager/asset-media-files-api.service.d.ts +13 -0
  24. package/dist/services/api/asset-manager/asset-media-files-api.service.d.ts.map +1 -0
  25. package/dist/services/api/asset-manager/asset-media-files-api.service.js +26 -0
  26. package/dist/services/api/asset-manager/asset-media-files-api.service.js.map +1 -0
  27. package/dist/services/api/asset-manager/assets-api.service.d.ts +28 -0
  28. package/dist/services/api/asset-manager/assets-api.service.d.ts.map +1 -0
  29. package/dist/services/api/asset-manager/assets-api.service.js +35 -0
  30. package/dist/services/api/asset-manager/assets-api.service.js.map +1 -0
  31. package/dist/services/api/asset-manager/index.d.ts +5 -0
  32. package/dist/services/api/asset-manager/index.d.ts.map +1 -0
  33. package/dist/services/api/asset-manager/index.js +21 -0
  34. package/dist/services/api/asset-manager/index.js.map +1 -0
  35. package/dist/services/api/asset-manager-api.service.d.ts +11 -0
  36. package/dist/services/api/asset-manager-api.service.d.ts.map +1 -0
  37. package/dist/services/api/asset-manager-api.service.js +15 -0
  38. package/dist/services/api/asset-manager-api.service.js.map +1 -0
  39. package/dist/services/api/association-types-api.service.d.ts +21 -0
  40. package/dist/services/api/association-types-api.service.d.ts.map +1 -0
  41. package/dist/services/api/association-types-api.service.js +28 -0
  42. package/dist/services/api/association-types-api.service.js.map +1 -0
  43. package/dist/services/api/attribute-groups-api.service.d.ts +26 -0
  44. package/dist/services/api/attribute-groups-api.service.d.ts.map +1 -0
  45. package/dist/services/api/attribute-groups-api.service.js +28 -0
  46. package/dist/services/api/attribute-groups-api.service.js.map +1 -0
  47. package/dist/services/api/attributes-api.service.d.ts +43 -0
  48. package/dist/services/api/attributes-api.service.d.ts.map +1 -0
  49. package/dist/services/api/attributes-api.service.js +60 -0
  50. package/dist/services/api/attributes-api.service.js.map +1 -0
  51. package/dist/services/api/base-api.service.d.ts +13 -0
  52. package/dist/services/api/base-api.service.d.ts.map +1 -0
  53. package/dist/services/api/base-api.service.js +26 -0
  54. package/dist/services/api/base-api.service.js.map +1 -0
  55. package/dist/services/api/catalog-for-apps/catalog-products-api.service.d.ts +28 -0
  56. package/dist/services/api/catalog-for-apps/catalog-products-api.service.d.ts.map +1 -0
  57. package/dist/services/api/catalog-for-apps/catalog-products-api.service.js +44 -0
  58. package/dist/services/api/catalog-for-apps/catalog-products-api.service.js.map +1 -0
  59. package/dist/services/api/catalog-for-apps/catalogs-api.service.d.ts +13 -0
  60. package/dist/services/api/catalog-for-apps/catalogs-api.service.d.ts.map +1 -0
  61. package/dist/services/api/catalog-for-apps/catalogs-api.service.js +14 -0
  62. package/dist/services/api/catalog-for-apps/catalogs-api.service.js.map +1 -0
  63. package/dist/services/api/catalog-for-apps/index.d.ts +4 -0
  64. package/dist/services/api/catalog-for-apps/index.d.ts.map +1 -0
  65. package/dist/services/api/catalog-for-apps/index.js +20 -0
  66. package/dist/services/api/catalog-for-apps/index.js.map +1 -0
  67. package/dist/services/api/catalog-for-apps/mapping-schemas-api.service.d.ts +13 -0
  68. package/dist/services/api/catalog-for-apps/mapping-schemas-api.service.d.ts.map +1 -0
  69. package/dist/services/api/catalog-for-apps/mapping-schemas-api.service.js +23 -0
  70. package/dist/services/api/catalog-for-apps/mapping-schemas-api.service.js.map +1 -0
  71. package/dist/services/api/catalog-for-apps-api.service.d.ts +10 -0
  72. package/dist/services/api/catalog-for-apps-api.service.d.ts.map +1 -0
  73. package/dist/services/api/catalog-for-apps-api.service.js +14 -0
  74. package/dist/services/api/catalog-for-apps-api.service.js.map +1 -0
  75. package/dist/services/api/categories-api.service.d.ts +39 -0
  76. package/dist/services/api/categories-api.service.d.ts.map +1 -0
  77. package/dist/services/api/categories-api.service.js +40 -0
  78. package/dist/services/api/categories-api.service.js.map +1 -0
  79. package/dist/services/api/channels-api.service.d.ts +21 -0
  80. package/dist/services/api/channels-api.service.d.ts.map +1 -0
  81. package/dist/services/api/channels-api.service.js +28 -0
  82. package/dist/services/api/channels-api.service.js.map +1 -0
  83. package/dist/services/api/currencies-api.service.d.ts +16 -0
  84. package/dist/services/api/currencies-api.service.d.ts.map +1 -0
  85. package/dist/services/api/currencies-api.service.js +17 -0
  86. package/dist/services/api/currencies-api.service.js.map +1 -0
  87. package/dist/services/api/families-api.service.d.ts +38 -0
  88. package/dist/services/api/families-api.service.d.ts.map +1 -0
  89. package/dist/services/api/families-api.service.js +53 -0
  90. package/dist/services/api/families-api.service.js.map +1 -0
  91. package/dist/services/api/index.d.ts +21 -0
  92. package/dist/services/api/index.d.ts.map +1 -0
  93. package/dist/services/api/index.js +37 -0
  94. package/dist/services/api/index.js.map +1 -0
  95. package/dist/services/api/jobs-api.service.d.ts +12 -0
  96. package/dist/services/api/jobs-api.service.d.ts.map +1 -0
  97. package/dist/services/api/jobs-api.service.js +17 -0
  98. package/dist/services/api/jobs-api.service.js.map +1 -0
  99. package/dist/services/api/locales-api.service.d.ts +16 -0
  100. package/dist/services/api/locales-api.service.d.ts.map +1 -0
  101. package/dist/services/api/locales-api.service.js +17 -0
  102. package/dist/services/api/locales-api.service.js.map +1 -0
  103. package/dist/services/api/measurement-families-api.service.d.ts +20 -0
  104. package/dist/services/api/measurement-families-api.service.d.ts.map +1 -0
  105. package/dist/services/api/measurement-families-api.service.js +19 -0
  106. package/dist/services/api/measurement-families-api.service.js.map +1 -0
  107. package/dist/services/api/product-media-files-api.service.d.ts +32 -0
  108. package/dist/services/api/product-media-files-api.service.d.ts.map +1 -0
  109. package/dist/services/api/product-media-files-api.service.js +25 -0
  110. package/dist/services/api/product-media-files-api.service.js.map +1 -0
  111. package/dist/services/api/product-models-api.service.d.ts +39 -0
  112. package/dist/services/api/product-models-api.service.d.ts.map +1 -0
  113. package/dist/services/api/product-models-api.service.js +31 -0
  114. package/dist/services/api/product-models-api.service.js.map +1 -0
  115. package/dist/services/api/product-uuid-api.service.d.ts +22 -0
  116. package/dist/services/api/product-uuid-api.service.d.ts.map +1 -0
  117. package/dist/services/api/product-uuid-api.service.js +31 -0
  118. package/dist/services/api/product-uuid-api.service.js.map +1 -0
  119. package/dist/services/api/products-api.service.d.ts +42 -0
  120. package/dist/services/api/products-api.service.d.ts.map +1 -0
  121. package/dist/services/api/products-api.service.js +31 -0
  122. package/dist/services/api/products-api.service.js.map +1 -0
  123. package/dist/services/api/reference-entities/index.d.ts +4 -0
  124. package/dist/services/api/reference-entities/index.d.ts.map +1 -0
  125. package/dist/services/api/reference-entities/index.js +20 -0
  126. package/dist/services/api/reference-entities/index.js.map +1 -0
  127. package/dist/services/api/reference-entities/reference-entities-attribute-api.service.d.ts +21 -0
  128. package/dist/services/api/reference-entities/reference-entities-attribute-api.service.d.ts.map +1 -0
  129. package/dist/services/api/reference-entities/reference-entities-attribute-api.service.js +46 -0
  130. package/dist/services/api/reference-entities/reference-entities-attribute-api.service.js.map +1 -0
  131. package/dist/services/api/reference-entities/reference-entities-media-files-api.service.d.ts +13 -0
  132. package/dist/services/api/reference-entities/reference-entities-media-files-api.service.d.ts.map +1 -0
  133. package/dist/services/api/reference-entities/reference-entities-media-files-api.service.js +26 -0
  134. package/dist/services/api/reference-entities/reference-entities-media-files-api.service.js.map +1 -0
  135. package/dist/services/api/reference-entities/reference-entities-records-api.service.d.ts +27 -0
  136. package/dist/services/api/reference-entities/reference-entities-records-api.service.d.ts.map +1 -0
  137. package/dist/services/api/reference-entities/reference-entities-records-api.service.js +34 -0
  138. package/dist/services/api/reference-entities/reference-entities-records-api.service.js.map +1 -0
  139. package/dist/services/api/reference-entities-api.service.d.ts +19 -0
  140. package/dist/services/api/reference-entities-api.service.d.ts.map +1 -0
  141. package/dist/services/api/reference-entities-api.service.js +24 -0
  142. package/dist/services/api/reference-entities-api.service.js.map +1 -0
  143. package/dist/services/api/ui-extensions-api.service.d.ts +14 -0
  144. package/dist/services/api/ui-extensions-api.service.d.ts.map +1 -0
  145. package/dist/services/api/ui-extensions-api.service.js +23 -0
  146. package/dist/services/api/ui-extensions-api.service.js.map +1 -0
  147. package/dist/services/api/utilities-api.service.d.ts +11 -0
  148. package/dist/services/api/utilities-api.service.d.ts.map +1 -0
  149. package/dist/services/api/utilities-api.service.js +13 -0
  150. package/dist/services/api/utilities-api.service.js.map +1 -0
  151. package/dist/services/index.d.ts +2 -0
  152. package/dist/services/index.d.ts.map +1 -0
  153. package/dist/services/index.js +18 -0
  154. package/dist/services/index.js.map +1 -0
  155. package/dist/types/api.type.d.ts +22 -0
  156. package/dist/types/api.type.d.ts.map +1 -0
  157. package/dist/types/api.type.js +3 -0
  158. package/dist/types/api.type.js.map +1 -0
  159. package/dist/types/assets.type.d.ts +109 -0
  160. package/dist/types/assets.type.d.ts.map +1 -0
  161. package/dist/types/assets.type.js +16 -0
  162. package/dist/types/assets.type.js.map +1 -0
  163. package/dist/types/association-type.type.d.ts +9 -0
  164. package/dist/types/association-type.type.d.ts.map +1 -0
  165. package/dist/types/association-type.type.js +3 -0
  166. package/dist/types/association-type.type.js.map +1 -0
  167. package/dist/types/attribute-group.type.d.ts +9 -0
  168. package/dist/types/attribute-group.type.d.ts.map +1 -0
  169. package/dist/types/attribute-group.type.js +3 -0
  170. package/dist/types/attribute-group.type.js.map +1 -0
  171. package/dist/types/attribute.type.d.ts +74 -0
  172. package/dist/types/attribute.type.d.ts.map +1 -0
  173. package/dist/types/attribute.type.js +24 -0
  174. package/dist/types/attribute.type.js.map +1 -0
  175. package/dist/types/auth.type.d.ts +13 -0
  176. package/dist/types/auth.type.d.ts.map +1 -0
  177. package/dist/types/auth.type.js +3 -0
  178. package/dist/types/auth.type.js.map +1 -0
  179. package/dist/types/catalog-for-apps.type.d.ts +49 -0
  180. package/dist/types/catalog-for-apps.type.d.ts.map +1 -0
  181. package/dist/types/catalog-for-apps.type.js +3 -0
  182. package/dist/types/catalog-for-apps.type.js.map +1 -0
  183. package/dist/types/category.type.d.ts +21 -0
  184. package/dist/types/category.type.d.ts.map +1 -0
  185. package/dist/types/category.type.js +3 -0
  186. package/dist/types/category.type.js.map +1 -0
  187. package/dist/types/channel.type.d.ts +13 -0
  188. package/dist/types/channel.type.d.ts.map +1 -0
  189. package/dist/types/channel.type.js +3 -0
  190. package/dist/types/channel.type.js.map +1 -0
  191. package/dist/types/currency.type.d.ts +6 -0
  192. package/dist/types/currency.type.d.ts.map +1 -0
  193. package/dist/types/currency.type.js +3 -0
  194. package/dist/types/currency.type.js.map +1 -0
  195. package/dist/types/family.type.d.ts +24 -0
  196. package/dist/types/family.type.d.ts.map +1 -0
  197. package/dist/types/family.type.js +3 -0
  198. package/dist/types/family.type.js.map +1 -0
  199. package/dist/types/index.d.ts +19 -0
  200. package/dist/types/index.d.ts.map +1 -0
  201. package/dist/types/index.js +35 -0
  202. package/dist/types/index.js.map +1 -0
  203. package/dist/types/locale.type.d.ts +5 -0
  204. package/dist/types/locale.type.d.ts.map +1 -0
  205. package/dist/types/locale.type.js +3 -0
  206. package/dist/types/locale.type.js.map +1 -0
  207. package/dist/types/measurement-family.type.d.ts +22 -0
  208. package/dist/types/measurement-family.type.d.ts.map +1 -0
  209. package/dist/types/measurement-family.type.js +3 -0
  210. package/dist/types/measurement-family.type.js.map +1 -0
  211. package/dist/types/product-media-file.type.d.ts +13 -0
  212. package/dist/types/product-media-file.type.d.ts.map +1 -0
  213. package/dist/types/product-media-file.type.js +3 -0
  214. package/dist/types/product-media-file.type.js.map +1 -0
  215. package/dist/types/product-model.type.d.ts +54 -0
  216. package/dist/types/product-model.type.d.ts.map +1 -0
  217. package/dist/types/product-model.type.js +3 -0
  218. package/dist/types/product-model.type.js.map +1 -0
  219. package/dist/types/product.type.d.ts +62 -0
  220. package/dist/types/product.type.d.ts.map +1 -0
  221. package/dist/types/product.type.js +3 -0
  222. package/dist/types/product.type.js.map +1 -0
  223. package/dist/types/reference-entities.type.d.ts +64 -0
  224. package/dist/types/reference-entities.type.d.ts.map +1 -0
  225. package/dist/types/reference-entities.type.js +15 -0
  226. package/dist/types/reference-entities.type.js.map +1 -0
  227. package/dist/types/ui-extension.type.d.ts +35 -0
  228. package/dist/types/ui-extension.type.d.ts.map +1 -0
  229. package/dist/types/ui-extension.type.js +22 -0
  230. package/dist/types/ui-extension.type.js.map +1 -0
  231. package/package.json +70 -0
package/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Maximilien Schall-Fonteilles
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,186 @@
1
+ # Node Akeneo API Client
2
+
3
+ [![npm version](https://img.shields.io/npm/v/node-akeneo-api-client.svg)](https://www.npmjs.com/package/node-akeneo-api-client)
4
+ [![License](https://img.shields.io/github/license/schallym/node-akeneo-api-client.svg)](LICENSE)
5
+ [![Coverage Status](https://img.shields.io/codecov/c/github/schallym/node-akeneo-api-client.svg)](https://codecov.io/gh/schallym/node-akeneo-api-client)
6
+
7
+ A complete and up-to-date Node.js client for the Akeneo PIM REST API. This library provides a simple and intuitive interface to interact with all Akeneo PIM endpoints, supporting both Community and Enterprise editions.
8
+
9
+ ## Features
10
+
11
+ - 🚀 **Complete API Coverage** - Supports all Akeneo REST API endpoints
12
+ - 📦 **TypeScript Support** - Full TypeScript definitions included
13
+ - 🔐 **Multiple Authentication Methods** - Classic connection and App connection
14
+ - 🔄 **Automatic Token Refresh** - Handles token expiration automatically
15
+ - 📄 **Pagination Support** - Built-in pagination handling for large datasets
16
+ - 🛡️ **Error Handling** - Comprehensive error handling with detailed messages
17
+ - 🧪 **Well Tested** - Extensive test coverage
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install node-akeneo-api-client
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ ### Basic Setup
28
+
29
+ ```javascript
30
+ const { AkeneoClient } = require('node-akeneo-api-client');
31
+
32
+ // Initialize with classic connection
33
+ const client = new AkeneoClient({
34
+ baseUrl: 'https://your-akeneo-instance.com',
35
+ clientId: 'your-client-id',
36
+ clientSecret: 'your-client-secret',
37
+ username: 'your-username',
38
+ password: 'your-password'
39
+ });
40
+
41
+ // Or initialize with App token
42
+ const client = new AkeneoClient({
43
+ baseUrl: 'https://your-akeneo-instance.com',
44
+ accessToken: 'your-app-token',
45
+ clientId: 'app-client-id',
46
+ });
47
+ ```
48
+
49
+ ### Basic Usage Examples
50
+
51
+ ```javascript
52
+ // List activated products with count
53
+ const products = await client.products.list({
54
+ limit: 10,
55
+ search: JSON.stringify({ enabled: [{ operator: '=', value: true }] }),
56
+ with_count: true
57
+ });
58
+
59
+ // Get a specific product
60
+ const product = await client.products.get('product-sku');
61
+
62
+ // Create a new product
63
+ const newProduct = await client.products.create({
64
+ identifier: 'new-product-sku',
65
+ family: 'accessories',
66
+ values: {
67
+ name: [{
68
+ locale: null,
69
+ scope: null,
70
+ data: 'My New Product'
71
+ }]
72
+ }
73
+ });
74
+
75
+ // Update a product
76
+ await client.products.update('product-sku', {
77
+ values: {
78
+ description: [{
79
+ locale: 'en_US',
80
+ scope: null,
81
+ data: 'Updated description'
82
+ }]
83
+ }
84
+ });
85
+
86
+ // Delete a product
87
+ await client.products.delete('product-sku');
88
+ ```
89
+
90
+ ## API Reference
91
+
92
+ ### Available Endpoints
93
+
94
+ Please refer to the [official Akeneo API documentation](https://api.akeneo.com/api-reference-index.html) for detailed information on each endpoint.
95
+
96
+ ### Error Handling
97
+
98
+ ```javascript
99
+ try {
100
+ const product = await client.products.get('non-existent-sku');
101
+ } catch (error) {
102
+ if (error.status === 404) {
103
+ console.log('Product not found');
104
+ } else if (error.status === 401) {
105
+ console.log('Authentication failed');
106
+ } else {
107
+ console.log('API Error:', error.message);
108
+ }
109
+ }
110
+ ```
111
+
112
+ ## TypeScript Support
113
+
114
+ This library is written in TypeScript and includes comprehensive type definitions:
115
+
116
+ ```typescript
117
+ import { AkeneoClient, Product, Category, Family } from 'node-akeneo-api-client';
118
+
119
+ const client = new AkeneoClient({
120
+ baseUrl: 'https://your-akeneo-instance.com',
121
+ clientId: 'your-client-id',
122
+ clientSecret: 'your-client-secret',
123
+ username: 'your-username',
124
+ password: 'your-password'
125
+ });
126
+
127
+ // TypeScript will provide full autocompletion and type checking
128
+ const products: Product[] = await client.products.getAll();
129
+ const category: Category = await client.categories.get('category-code');
130
+ ```
131
+
132
+ ## Contributing
133
+
134
+ We welcome contributions from the community! Please read our [Contributing Guide](CONTRIBUTING.md) to get started.
135
+
136
+ ### Reporting Issues
137
+
138
+ If you find a bug or want to request a feature:
139
+
140
+ 1. Check if the issue already exists in the [Issues](https://github.com/schallym/node-akeneo-api-client/issues) section
141
+ 2. If not, create a new issue with:
142
+ - Clear description of the problem or feature request
143
+ - Steps to reproduce (for bugs)
144
+ - Expected vs actual behavior
145
+ - Your environment details (Node.js version, OS, etc.)
146
+
147
+ ### Code of Conduct
148
+
149
+ By participating in this project, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md).
150
+
151
+ ## Supported Akeneo Versions
152
+
153
+ - Akeneo PIM Cloud Edition
154
+
155
+ Most API endpoints are supported for both Community and Enterprise editions, but some features may be exclusive to the Cloud edition.
156
+ Always refer to the [Akeneo API documentation](https://api.akeneo.com/api-reference-index.html) for specific endpoint availability.
157
+
158
+ ## Requirements
159
+
160
+ - Node.js 20.0 or higher
161
+
162
+ ## License
163
+
164
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
165
+
166
+ ## Changelog
167
+
168
+ See [CHANGELOG.md](CHANGELOG.md) for a detailed list of changes.
169
+
170
+ ## Support
171
+
172
+ - 🐛 [Bug Reports](https://github.com/schallym/node-akeneo-api-client/issues)
173
+
174
+ ## Related Projects
175
+
176
+ - [Official Akeneo PHP Client](https://github.com/akeneo/api-php-client)
177
+ - [Akeneo API Documentation](https://api.akeneo.com/)
178
+
179
+ ## Acknowledgments
180
+
181
+ - Thanks to all contributors who have helped make this project better
182
+ - Built with ❤️ for the Akeneo community
183
+
184
+ ---
185
+
186
+ Made with ❤️ by [schallym](https://github.com/schallym) and [contributors](https://github.com/schallym/node-akeneo-api-client/graphs/contributors).
@@ -0,0 +1,28 @@
1
+ import { AssetManagerApi, AssociationTypesApi, AttributeGroupsApi, AttributesApi, CatalogForAppsApi, CategoriesApi, ChannelsApi, CurrenciesApi, FamiliesApi, JobsApi, LocalesApi, MeasurementFamiliesApi, ProductMediaFilesApi, ProductModelsApi, ProductsApi, ProductsUuidApi, ReferenceEntitiesApi, UIExtensionsApi, UtilitiesApi } from './services/api';
2
+ import { AkeneoAuthAppConfig, AkeneoAuthConnectionConfig } from './types';
3
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
4
+ export declare class AkeneoClient {
5
+ private readonly apiClient;
6
+ readonly httpClient: AxiosInstance;
7
+ readonly products: ProductsApi;
8
+ readonly productsUuid: ProductsUuidApi;
9
+ readonly productModels: ProductModelsApi;
10
+ readonly productMediaFiles: ProductMediaFilesApi;
11
+ readonly jobs: JobsApi;
12
+ readonly families: FamiliesApi;
13
+ readonly attributes: AttributesApi;
14
+ readonly attributeGroups: AttributeGroupsApi;
15
+ readonly associationTypes: AssociationTypesApi;
16
+ readonly categories: CategoriesApi;
17
+ readonly channels: ChannelsApi;
18
+ readonly locales: LocalesApi;
19
+ readonly currencies: CurrenciesApi;
20
+ readonly measurementFamilies: MeasurementFamiliesApi;
21
+ readonly referenceEntities: ReferenceEntitiesApi;
22
+ readonly assetManager: AssetManagerApi;
23
+ readonly utilities: UtilitiesApi;
24
+ readonly catalogForApps: CatalogForAppsApi;
25
+ readonly uiExtensions: UIExtensionsApi;
26
+ constructor(config: AkeneoAuthConnectionConfig | AkeneoAuthAppConfig, axiosOption?: AxiosRequestConfig);
27
+ }
28
+ //# sourceMappingURL=akeneo-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"akeneo-client.d.ts","sourceRoot":"","sources":["../src/akeneo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG1D,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IAGnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;IACjD,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;gBAE3B,MAAM,EAAE,0BAA0B,GAAG,mBAAmB,EAAE,WAAW,CAAC,EAAE,kBAAkB;CAyBvG"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AkeneoClient = void 0;
4
+ const api_1 = require("./services/api");
5
+ const services_1 = require("./services");
6
+ class AkeneoClient {
7
+ constructor(config, axiosOption) {
8
+ this.apiClient = new services_1.AkeneoApiClient(config, axiosOption);
9
+ this.httpClient = this.apiClient.httpClient;
10
+ // Initialize all api services
11
+ this.products = new api_1.ProductsApi(this.apiClient);
12
+ this.productsUuid = new api_1.ProductsUuidApi(this.apiClient);
13
+ this.productModels = new api_1.ProductModelsApi(this.apiClient);
14
+ this.productMediaFiles = new api_1.ProductMediaFilesApi(this.apiClient);
15
+ this.jobs = new api_1.JobsApi(this.apiClient);
16
+ this.families = new api_1.FamiliesApi(this.apiClient);
17
+ this.attributes = new api_1.AttributesApi(this.apiClient);
18
+ this.attributeGroups = new api_1.AttributeGroupsApi(this.apiClient);
19
+ this.associationTypes = new api_1.AssociationTypesApi(this.apiClient);
20
+ this.categories = new api_1.CategoriesApi(this.apiClient);
21
+ this.channels = new api_1.ChannelsApi(this.apiClient);
22
+ this.locales = new api_1.LocalesApi(this.apiClient);
23
+ this.currencies = new api_1.CurrenciesApi(this.apiClient);
24
+ this.measurementFamilies = new api_1.MeasurementFamiliesApi(this.apiClient);
25
+ this.referenceEntities = new api_1.ReferenceEntitiesApi(this.apiClient);
26
+ this.assetManager = new api_1.AssetManagerApi(this.apiClient);
27
+ this.utilities = new api_1.UtilitiesApi(this.apiClient);
28
+ this.catalogForApps = new api_1.CatalogForAppsApi(this.apiClient);
29
+ this.uiExtensions = new api_1.UIExtensionsApi(this.apiClient);
30
+ }
31
+ }
32
+ exports.AkeneoClient = AkeneoClient;
33
+ //# sourceMappingURL=akeneo-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"akeneo-client.js","sourceRoot":"","sources":["../src/akeneo-client.ts"],"names":[],"mappings":";;;AAAA,wCAoBwB;AAGxB,yCAA6C;AAE7C,MAAa,YAAY;IAyBvB,YAAY,MAAwD,EAAE,WAAgC;QACpG,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAE5C,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,0BAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,aAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,mBAAmB,GAAG,IAAI,4BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,iBAAiB,GAAG,IAAI,0BAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF;AAlDD,oCAkDC"}
@@ -0,0 +1,6 @@
1
+ export * from './akeneo-client';
2
+ import { AkeneoAuthAppConfig, AkeneoAuthConnectionConfig } from './types';
3
+ import { AxiosRequestConfig } from 'axios';
4
+ import { AkeneoClient } from './akeneo-client';
5
+ export declare function createClient(config: AkeneoAuthConnectionConfig | AkeneoAuthAppConfig, axiosOption?: AxiosRequestConfig): AkeneoClient;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,wBAAgB,YAAY,CAC1B,MAAM,EAAE,0BAA0B,GAAG,mBAAmB,EACxD,WAAW,CAAC,EAAE,kBAAkB,GAC/B,YAAY,CAEd"}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createClient = createClient;
18
+ __exportStar(require("./akeneo-client"), exports);
19
+ const akeneo_client_1 = require("./akeneo-client");
20
+ function createClient(config, axiosOption) {
21
+ return new akeneo_client_1.AkeneoClient(config, axiosOption);
22
+ }
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,oCAKC;AAXD,kDAAgC;AAIhC,mDAA+C;AAE/C,SAAgB,YAAY,CAC1B,MAAwD,EACxD,WAAgC;IAEhC,OAAO,IAAI,4BAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
+ import { AkeneoAuthAppConfig, AkeneoAuthConnectionConfig } from '../types';
3
+ export declare class AkeneoApiClient {
4
+ private readonly authConfig;
5
+ readonly httpClient: AxiosInstance;
6
+ private readonly axiosConfig;
7
+ constructor(authConfig: AkeneoAuthAppConfig | AkeneoAuthConnectionConfig, axiosConfig?: AxiosRequestConfig);
8
+ private createHttpClientFromConnection;
9
+ private createHttpClientFromApp;
10
+ }
11
+ //# sourceMappingURL=akeneo-api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"akeneo-api-client.d.ts","sourceRoot":"","sources":["../../src/services/akeneo-api-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAc3E,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAG9B,UAAU,EAAE,mBAAmB,GAAG,0BAA0B,EAC7E,WAAW,GAAE,kBAAuB;IAOtC,OAAO,CAAC,8BAA8B;IA2DtC,OAAO,CAAC,uBAAuB;CAqBhC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AkeneoApiClient = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const defaultAxiosConfig = {
9
+ insecure: false,
10
+ retryOnError: true,
11
+ httpAgent: false,
12
+ httpsAgent: false,
13
+ timeout: 300000, // 5mn
14
+ proxy: false,
15
+ basePath: '',
16
+ adapter: undefined,
17
+ maxContentLength: 1073741824, // 1GB
18
+ };
19
+ class AkeneoApiClient {
20
+ constructor(authConfig, axiosConfig = {}) {
21
+ this.authConfig = authConfig;
22
+ this.axiosConfig = { ...defaultAxiosConfig, ...axiosConfig };
23
+ this.httpClient =
24
+ 'accessToken' in authConfig ? this.createHttpClientFromApp() : this.createHttpClientFromConnection();
25
+ }
26
+ createHttpClientFromConnection() {
27
+ const authConfig = this.authConfig;
28
+ const instance = axios_1.default.create({
29
+ ...this.axiosConfig,
30
+ baseURL: authConfig.baseUrl,
31
+ });
32
+ let accessToken = '';
33
+ const base64Encoded = Buffer.from(`${authConfig.clientId}:${authConfig.secret}`).toString('base64');
34
+ const refreshAccessToken = async () => {
35
+ const tokenResponse = await axios_1.default.post(`${authConfig.baseUrl}/api/oauth/v1/token`, {
36
+ grant_type: 'password',
37
+ username: authConfig.username,
38
+ password: authConfig.password,
39
+ }, {
40
+ headers: {
41
+ Authorization: `Basic ${base64Encoded}`,
42
+ },
43
+ });
44
+ accessToken = tokenResponse.data.access_token;
45
+ return tokenResponse.data.access_token;
46
+ };
47
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
+ // @ts-ignore
49
+ instance.interceptors.request.use(async (config) => ({
50
+ ...config,
51
+ headers: {
52
+ ...config.headers,
53
+ Authorization: `Bearer ${accessToken || (await refreshAccessToken())}`,
54
+ },
55
+ }));
56
+ instance.interceptors.response.use((response) => response, async (error) => {
57
+ const originalRequest = error.config;
58
+ if (error.response &&
59
+ (error.response.status === 403 || error.response.status === 401) &&
60
+ !originalRequest._retry) {
61
+ originalRequest._retry = true;
62
+ accessToken = '';
63
+ originalRequest.headers['X-PIM-TOKEN'] = await refreshAccessToken();
64
+ return instance(originalRequest);
65
+ }
66
+ return Promise.reject(error);
67
+ });
68
+ return instance;
69
+ }
70
+ createHttpClientFromApp() {
71
+ const authConfig = this.authConfig;
72
+ const instance = axios_1.default.create({
73
+ ...this.axiosConfig,
74
+ baseURL: authConfig.baseUrl,
75
+ });
76
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
77
+ // @ts-expect-error
78
+ instance.interceptors.request.use(async (config) => ({
79
+ ...config,
80
+ headers: {
81
+ ...config.headers,
82
+ 'X-PIM-URL': authConfig.baseUrl,
83
+ 'X-PIM-TOKEN': authConfig.accessToken,
84
+ 'X-PIM-CLIENT-ID': authConfig.clientId,
85
+ },
86
+ }));
87
+ return instance;
88
+ }
89
+ }
90
+ exports.AkeneoApiClient = AkeneoApiClient;
91
+ //# sourceMappingURL=akeneo-api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"akeneo-api-client.js","sourceRoot":"","sources":["../../src/services/akeneo-api-client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgF;AAGhF,MAAM,kBAAkB,GAAG;IACzB,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,MAAM,EAAE,MAAM;IACvB,KAAK,EAAE,KAAc;IACrB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,UAAU,EAAE,MAAM;CACrC,CAAC;AAEF,MAAa,eAAe;IAI1B,YACmB,UAA4D,EAC7E,cAAkC,EAAE;QADnB,eAAU,GAAV,UAAU,CAAkD;QAG7E,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7D,IAAI,CAAC,UAAU;YACb,aAAa,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC;IACzG,CAAC;IAEO,8BAA8B;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAwC,CAAC;QACjE,MAAM,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC;YAC5B,GAAG,IAAI,CAAC,WAAW;YACnB,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAkB,CAAC;QAEpB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpG,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;YACpC,MAAM,aAAa,GAAG,MAAM,eAAK,CAAC,IAAI,CACpC,GAAG,UAAU,CAAC,OAAO,qBAAqB,EAC1C;gBACE,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,EACD;gBACE,OAAO,EAAE;oBACP,aAAa,EAAE,SAAS,aAAa,EAAE;iBACxC;aACF,CACF,CAAC;YAEF,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;YAC9C,OAAO,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;QACzC,CAAC,CAAC;QAEF,6DAA6D;QAC7D,aAAa;QACb,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;gBACjB,aAAa,EAAE,UAAU,WAAW,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,EAAE;aACvE;SACF,CAAC,CAAC,CAAC;QAEJ,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAChC,CAAC,QAAuB,EAAE,EAAE,CAAC,QAAQ,EACrC,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;YACrC,IACE,KAAK,CAAC,QAAQ;gBACd,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;gBAChE,CAAC,eAAe,CAAC,MAAM,EACvB,CAAC;gBACD,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC9B,WAAW,GAAG,EAAE,CAAC;gBACjB,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBACpE,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,uBAAuB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAiC,CAAC;QAC1D,MAAM,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC;YAC5B,GAAG,IAAI,CAAC,WAAW;YACnB,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAkB,CAAC;QAEpB,6DAA6D;QAC7D,mBAAmB;QACnB,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;gBACjB,WAAW,EAAE,UAAU,CAAC,OAAO;gBAC/B,aAAa,EAAE,UAAU,CAAC,WAAW;gBACrC,iBAAiB,EAAE,UAAU,CAAC,QAAQ;aACvC;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA7FD,0CA6FC"}
@@ -0,0 +1,21 @@
1
+ import { AkeneoApiClient } from '../../akeneo-api-client';
2
+ import { AssetAttribute, AssetAttributeOption } from '../../../types';
3
+ export type UpdateOrCreateAssetAttributeRequest = Partial<Omit<AssetAttribute, 'code' | 'type'> & {
4
+ code: string;
5
+ } & Required<Pick<AssetAttribute, 'code' | 'type'>>>;
6
+ export type UpdateOrCreateAssetAttributeOptionRequest = Partial<Omit<AssetAttributeOption, 'code'> & {
7
+ code: string;
8
+ } & Required<Pick<AssetAttributeOption, 'code'>>>;
9
+ export declare class AssetAttributesApi {
10
+ private client;
11
+ private readonly endpoint;
12
+ constructor(client: AkeneoApiClient);
13
+ get(assetFamilyCode: string, code: string): Promise<AssetAttribute>;
14
+ list(assetFamilyCode: string): Promise<AssetAttribute[]>;
15
+ updateOrCreate(assetFamilyCode: string, data: UpdateOrCreateAssetAttributeRequest): Promise<void>;
16
+ getAttributeOption(assetFamilyCode: string, attributeCode: string, optionCode: string): Promise<AssetAttributeOption>;
17
+ listAttributeOptions(assetFamilyCode: string, attributeCode: string): Promise<AssetAttributeOption[]>;
18
+ updateOrCreateAttributeOption(assetFamilyCode: string, attributeCode: string, data: UpdateOrCreateAssetAttributeOptionRequest): Promise<void>;
19
+ private completeEndpoint;
20
+ }
21
+ //# sourceMappingURL=asset-attributes-api.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-attributes-api.service.d.ts","sourceRoot":"","sources":["../../../../src/services/api/asset-manager/asset-attributes-api.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,MAAM,mCAAmC,GAAG,OAAO,CACvD,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CACpD,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG,OAAO,CAC7D,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CACjD,CAAC;AAEF,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEd,MAAM,EAAE,eAAe;IAI9B,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnE,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAMxD,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxG,kBAAkB,CACtB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC;IAQ1B,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAQrG,6BAA6B,CACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,yCAAyC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAOhB,OAAO,CAAC,gBAAgB;CAGzB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetAttributesApi = void 0;
4
+ class AssetAttributesApi {
5
+ constructor(client) {
6
+ this.client = client;
7
+ this.endpoint = '/api/rest/v1/asset-families/{asset_family_code}/attributes';
8
+ }
9
+ async get(assetFamilyCode, code) {
10
+ return this.client.httpClient.get(`${this.completeEndpoint(assetFamilyCode)}/${code}`).then((response) => {
11
+ return response.data;
12
+ });
13
+ }
14
+ async list(assetFamilyCode) {
15
+ return this.client.httpClient.get(this.completeEndpoint(assetFamilyCode)).then((response) => {
16
+ return response.data;
17
+ });
18
+ }
19
+ async updateOrCreate(assetFamilyCode, data) {
20
+ await this.client.httpClient.patch(`${this.completeEndpoint(assetFamilyCode)}/${data.code}`, data);
21
+ }
22
+ async getAttributeOption(assetFamilyCode, attributeCode, optionCode) {
23
+ return this.client.httpClient
24
+ .get(`${this.completeEndpoint(assetFamilyCode)}/${attributeCode}/options/${optionCode}`)
25
+ .then((response) => {
26
+ return response.data;
27
+ });
28
+ }
29
+ async listAttributeOptions(assetFamilyCode, attributeCode) {
30
+ return this.client.httpClient
31
+ .get(`${this.completeEndpoint(assetFamilyCode)}/${attributeCode}/options`)
32
+ .then((response) => {
33
+ return response.data;
34
+ });
35
+ }
36
+ async updateOrCreateAttributeOption(assetFamilyCode, attributeCode, data) {
37
+ return this.client.httpClient.patch(`${this.completeEndpoint(assetFamilyCode)}/${attributeCode}/options/${data.code}`, data);
38
+ }
39
+ completeEndpoint(assetFamilyCode) {
40
+ return this.endpoint.replace('{asset_family_code}', assetFamilyCode);
41
+ }
42
+ }
43
+ exports.AssetAttributesApi = AssetAttributesApi;
44
+ //# sourceMappingURL=asset-attributes-api.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-attributes-api.service.js","sourceRoot":"","sources":["../../../../src/services/api/asset-manager/asset-attributes-api.service.ts"],"names":[],"mappings":";;;AAeA,MAAa,kBAAkB;IAG7B,YAAoB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QACzC,IAAI,CAAC,QAAQ,GAAG,4DAA4D,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,eAAuB,EAAE,IAAY;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACvG,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,eAAuB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC1F,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,eAAuB,EAAE,IAAyC;QAC5F,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IACrG,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,eAAuB,EACvB,aAAqB,EACrB,UAAkB;QAElB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU;aAC1B,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,aAAa,YAAY,UAAU,EAAE,CAAC;aACvF,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,eAAuB,EAAE,aAAqB;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU;aAC1B,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,aAAa,UAAU,CAAC;aACzE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,eAAuB,EACvB,aAAqB,EACrB,IAA+C;QAE/C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CACjC,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,aAAa,YAAY,IAAI,CAAC,IAAI,EAAE,EACjF,IAAI,CACL,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,eAAuB;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;CACF;AAzDD,gDAyDC"}
@@ -0,0 +1,15 @@
1
+ import { AssetFamily, PaginatedResponse } from '../../../types';
2
+ import { AkeneoApiClient } from '../../akeneo-api-client';
3
+ export type AssetFamiliesSearchParams = {
4
+ search_after?: string;
5
+ };
6
+ export type UpdateOrCreateAssetFamilyRequest = Partial<Omit<AssetFamily, 'code'>> & Required<Pick<AssetFamily, 'code'>>;
7
+ export declare class AssetFamiliesApi {
8
+ private readonly client;
9
+ private readonly endpoint;
10
+ constructor(client: AkeneoApiClient);
11
+ get(code: string): Promise<AssetFamily>;
12
+ list(params?: AssetFamiliesSearchParams): Promise<PaginatedResponse<AssetFamily>>;
13
+ updateOrCreate(data: UpdateOrCreateAssetFamilyRequest): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=asset-families-api.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-families-api.service.d.ts","sourceRoot":"","sources":["../../../../src/services/api/asset-manager/asset-families-api.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AAExH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,MAAM,EAAE,eAAe;IAI9C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvC,IAAI,CAAC,MAAM,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAIjF,cAAc,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5E"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetFamiliesApi = void 0;
4
+ class AssetFamiliesApi {
5
+ constructor(client) {
6
+ this.client = client;
7
+ this.endpoint = '/api/rest/v1/asset-families';
8
+ }
9
+ async get(code) {
10
+ return this.client.httpClient.get(`${this.endpoint}/${code}`).then((response) => response.data);
11
+ }
12
+ async list(params) {
13
+ return this.client.httpClient.get(this.endpoint, { params }).then((response) => response.data);
14
+ }
15
+ async updateOrCreate(data) {
16
+ await this.client.httpClient.patch(`${this.endpoint}/${data.code}`, data);
17
+ }
18
+ }
19
+ exports.AssetFamiliesApi = AssetFamiliesApi;
20
+ //# sourceMappingURL=asset-families-api.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-families-api.service.js","sourceRoot":"","sources":["../../../../src/services/api/asset-manager/asset-families-api.service.ts"],"names":[],"mappings":";;;AASA,MAAa,gBAAgB;IAG3B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAClD,IAAI,CAAC,QAAQ,GAAG,6BAA6B,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAkC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAsC;QACzD,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;CACF;AAlBD,4CAkBC"}
@@ -0,0 +1,13 @@
1
+ import { AkeneoApiClient } from '../../akeneo-api-client';
2
+ export type CreateAssetRecordRequest = {
3
+ code: string;
4
+ file: Blob | File | string;
5
+ };
6
+ export declare class AssetMediaFilesApi {
7
+ private readonly client;
8
+ private readonly endpoint;
9
+ constructor(client: AkeneoApiClient);
10
+ create(data: CreateAssetRecordRequest): Promise<void>;
11
+ download(code: string): Promise<ArrayBuffer>;
12
+ }
13
+ //# sourceMappingURL=asset-media-files-api.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-media-files-api.service.d.ts","sourceRoot":"","sources":["../../../../src/services/api/asset-manager/asset-media-files-api.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CAC5B,CAAC;AAEF,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,MAAM,EAAE,eAAe;IAI9C,MAAM,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAKnD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetMediaFilesApi = void 0;
4
+ class AssetMediaFilesApi {
5
+ constructor(client) {
6
+ this.client = client;
7
+ this.endpoint = '/api/rest/v1/asset-media-files';
8
+ }
9
+ async create(data) {
10
+ const formData = new FormData();
11
+ formData.append('file', data.file);
12
+ formData.append('code', data.code);
13
+ await this.client.httpClient.post(`${this.endpoint}`, formData, {
14
+ headers: {
15
+ 'Content-Type': 'multipart/form-data',
16
+ },
17
+ });
18
+ }
19
+ async download(code) {
20
+ return this.client.httpClient.get(`${this.endpoint}/${code}`, { responseType: 'arraybuffer' }).then((response) => {
21
+ return response.data;
22
+ });
23
+ }
24
+ }
25
+ exports.AssetMediaFilesApi = AssetMediaFilesApi;
26
+ //# sourceMappingURL=asset-media-files-api.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-media-files-api.service.js","sourceRoot":"","sources":["../../../../src/services/api/asset-manager/asset-media-files-api.service.ts"],"names":[],"mappings":";;;AAOA,MAAa,kBAAkB;IAG7B,YAA6B,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;QAClD,IAAI,CAAC,QAAQ,GAAG,gCAAgC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAA8B;QACzC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE;YAC9D,OAAO,EAAE;gBACP,cAAc,EAAE,qBAAqB;aACtC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/G,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxBD,gDAwBC"}
@@ -0,0 +1,28 @@
1
+ import { AkeneoApiClient } from '../../akeneo-api-client';
2
+ import { Asset, PaginatedResponse } from '../../../types';
3
+ export type AssetRecordSearchParams = {
4
+ search?: string;
5
+ channel?: string;
6
+ locales?: string;
7
+ search_after?: string;
8
+ };
9
+ export type UpdateOrCreateAssetRecordRequest = Partial<Omit<Asset, 'code' | 'created' | 'updated'> & {
10
+ code: string;
11
+ } & Required<Pick<Asset, 'code'>>>;
12
+ export type SeveralAssetRecordsUpdateOrCreationResponseLine = {
13
+ code: string;
14
+ status_code: number;
15
+ message?: string;
16
+ };
17
+ export declare class AssetsApi {
18
+ private readonly client;
19
+ private readonly endpoint;
20
+ constructor(client: AkeneoApiClient);
21
+ get(assetFamilyCode: string, assetCode: string): Promise<Asset>;
22
+ list(assetFamilyCode: string, params?: AssetRecordSearchParams): Promise<PaginatedResponse<Asset>>;
23
+ updateOrCreate(assetFamilyCode: string, data: UpdateOrCreateAssetRecordRequest): Promise<void>;
24
+ updateOrCreateSeveral(assetFamilyCode: string, data: UpdateOrCreateAssetRecordRequest[]): Promise<SeveralAssetRecordsUpdateOrCreationResponseLine[]>;
25
+ delete(assetFamilyCode: string, assetCode: string): Promise<void>;
26
+ private completeEndpoint;
27
+ }
28
+ //# sourceMappingURL=assets-api.service.d.ts.map