@simpleapps-com/augur-api 0.2.3 → 0.2.5

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 (196) hide show
  1. package/README.md +100 -0
  2. package/dist/cjs/client.d.ts +181 -0
  3. package/dist/cjs/client.d.ts.map +1 -1
  4. package/dist/cjs/client.js +449 -0
  5. package/dist/cjs/client.js.map +1 -1
  6. package/dist/cjs/core/base-client.d.ts +104 -0
  7. package/dist/cjs/core/base-client.d.ts.map +1 -1
  8. package/dist/cjs/core/base-client.js +201 -0
  9. package/dist/cjs/core/base-client.js.map +1 -1
  10. package/dist/cjs/index.d.ts +2 -1
  11. package/dist/cjs/index.d.ts.map +1 -1
  12. package/dist/cjs/index.js +1 -1
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/services/agr-site/client.d.ts +522 -2
  15. package/dist/cjs/services/agr-site/client.d.ts.map +1 -1
  16. package/dist/cjs/services/agr-site/client.js +565 -12
  17. package/dist/cjs/services/agr-site/client.js.map +1 -1
  18. package/dist/cjs/services/items/client.d.ts +2 -2
  19. package/dist/cjs/services/items/schemas/categories.d.ts +20 -20
  20. package/dist/cjs/services/joomla/client.d.ts +644 -99
  21. package/dist/cjs/services/joomla/client.d.ts.map +1 -1
  22. package/dist/cjs/services/joomla/client.js +467 -98
  23. package/dist/cjs/services/joomla/client.js.map +1 -1
  24. package/dist/cjs/services/nexus/client.d.ts +1096 -22
  25. package/dist/cjs/services/nexus/client.d.ts.map +1 -1
  26. package/dist/cjs/services/nexus/client.js +754 -22
  27. package/dist/cjs/services/nexus/client.js.map +1 -1
  28. package/dist/cjs/services/orders/client.d.ts +3 -3
  29. package/dist/cjs/services/orders/schemas/orders.d.ts +12 -12
  30. package/dist/cjs/services/orders/schemas/purchase-orders.d.ts +22 -22
  31. package/dist/cjs/services/p21-core/client.d.ts +627 -0
  32. package/dist/cjs/services/p21-core/client.d.ts.map +1 -0
  33. package/dist/cjs/services/p21-core/client.js +704 -0
  34. package/dist/cjs/services/p21-core/client.js.map +1 -0
  35. package/dist/cjs/services/p21-core/index.d.ts +3 -0
  36. package/dist/cjs/services/p21-core/index.d.ts.map +1 -0
  37. package/dist/cjs/services/p21-core/index.js +21 -0
  38. package/dist/cjs/services/p21-core/index.js.map +1 -0
  39. package/dist/cjs/services/p21-core/schemas/address.d.ts +88 -0
  40. package/dist/cjs/services/p21-core/schemas/address.d.ts.map +1 -0
  41. package/dist/cjs/services/p21-core/schemas/address.js +45 -0
  42. package/dist/cjs/services/p21-core/schemas/address.js.map +1 -0
  43. package/dist/cjs/services/p21-core/schemas/cash-drawer.d.ts +96 -0
  44. package/dist/cjs/services/p21-core/schemas/cash-drawer.d.ts.map +1 -0
  45. package/dist/cjs/services/p21-core/schemas/cash-drawer.js +39 -0
  46. package/dist/cjs/services/p21-core/schemas/cash-drawer.js.map +1 -0
  47. package/dist/cjs/services/p21-core/schemas/codes.d.ts +54 -0
  48. package/dist/cjs/services/p21-core/schemas/codes.d.ts.map +1 -0
  49. package/dist/cjs/services/p21-core/schemas/codes.js +25 -0
  50. package/dist/cjs/services/p21-core/schemas/codes.js.map +1 -0
  51. package/dist/cjs/services/p21-core/schemas/company.d.ts +80 -0
  52. package/dist/cjs/services/p21-core/schemas/company.d.ts.map +1 -0
  53. package/dist/cjs/services/p21-core/schemas/company.js +35 -0
  54. package/dist/cjs/services/p21-core/schemas/company.js.map +1 -0
  55. package/dist/cjs/services/p21-core/schemas/health.d.ts +46 -0
  56. package/dist/cjs/services/p21-core/schemas/health.d.ts.map +1 -0
  57. package/dist/cjs/services/p21-core/schemas/health.js +7 -0
  58. package/dist/cjs/services/p21-core/schemas/health.js.map +1 -0
  59. package/dist/cjs/services/p21-core/schemas/index.d.ts +8 -0
  60. package/dist/cjs/services/p21-core/schemas/index.d.ts.map +1 -0
  61. package/dist/cjs/services/p21-core/schemas/index.js +25 -0
  62. package/dist/cjs/services/p21-core/schemas/index.js.map +1 -0
  63. package/dist/cjs/services/p21-core/schemas/location.d.ts +84 -0
  64. package/dist/cjs/services/p21-core/schemas/location.d.ts.map +1 -0
  65. package/dist/cjs/services/p21-core/schemas/location.js +35 -0
  66. package/dist/cjs/services/p21-core/schemas/location.js.map +1 -0
  67. package/dist/cjs/services/p21-core/schemas/payment-types.d.ts +39 -0
  68. package/dist/cjs/services/p21-core/schemas/payment-types.d.ts.map +1 -0
  69. package/dist/cjs/services/p21-core/schemas/payment-types.js +26 -0
  70. package/dist/cjs/services/p21-core/schemas/payment-types.js.map +1 -0
  71. package/dist/cjs/services/p21-core/schemas.d.ts +2 -0
  72. package/dist/cjs/services/p21-core/schemas.d.ts.map +1 -0
  73. package/dist/cjs/services/p21-core/schemas.js +19 -0
  74. package/dist/cjs/services/p21-core/schemas.js.map +1 -0
  75. package/dist/cjs/services/vmi/schemas/inventory.d.ts +6 -6
  76. package/dist/cjs/services/vmi/schemas/products.d.ts +6 -6
  77. package/dist/cjs/services/vmi/schemas/restock.d.ts +12 -12
  78. package/dist/esm/client.d.ts +181 -0
  79. package/dist/esm/client.d.ts.map +1 -1
  80. package/dist/esm/client.js +449 -0
  81. package/dist/esm/client.js.map +1 -1
  82. package/dist/esm/core/base-client.d.ts +104 -0
  83. package/dist/esm/core/base-client.d.ts.map +1 -1
  84. package/dist/esm/core/base-client.js +201 -0
  85. package/dist/esm/core/base-client.js.map +1 -1
  86. package/dist/esm/index.d.ts +2 -1
  87. package/dist/esm/index.d.ts.map +1 -1
  88. package/dist/esm/index.js +1 -1
  89. package/dist/esm/index.js.map +1 -1
  90. package/dist/esm/services/agr-site/client.d.ts +522 -2
  91. package/dist/esm/services/agr-site/client.d.ts.map +1 -1
  92. package/dist/esm/services/agr-site/client.js +565 -12
  93. package/dist/esm/services/agr-site/client.js.map +1 -1
  94. package/dist/esm/services/items/client.d.ts +2 -2
  95. package/dist/esm/services/items/schemas/categories.d.ts +20 -20
  96. package/dist/esm/services/joomla/client.d.ts +644 -99
  97. package/dist/esm/services/joomla/client.d.ts.map +1 -1
  98. package/dist/esm/services/joomla/client.js +467 -98
  99. package/dist/esm/services/joomla/client.js.map +1 -1
  100. package/dist/esm/services/nexus/client.d.ts +1096 -22
  101. package/dist/esm/services/nexus/client.d.ts.map +1 -1
  102. package/dist/esm/services/nexus/client.js +754 -22
  103. package/dist/esm/services/nexus/client.js.map +1 -1
  104. package/dist/esm/services/orders/client.d.ts +3 -3
  105. package/dist/esm/services/orders/schemas/orders.d.ts +12 -12
  106. package/dist/esm/services/orders/schemas/purchase-orders.d.ts +22 -22
  107. package/dist/esm/services/p21-core/client.d.ts +627 -0
  108. package/dist/esm/services/p21-core/client.d.ts.map +1 -0
  109. package/dist/esm/services/p21-core/client.js +700 -0
  110. package/dist/esm/services/p21-core/client.js.map +1 -0
  111. package/dist/esm/services/p21-core/index.d.ts +3 -0
  112. package/dist/esm/services/p21-core/index.d.ts.map +1 -0
  113. package/dist/esm/services/p21-core/index.js +3 -0
  114. package/dist/esm/services/p21-core/index.js.map +1 -0
  115. package/dist/esm/services/p21-core/schemas/address.d.ts +88 -0
  116. package/dist/esm/services/p21-core/schemas/address.d.ts.map +1 -0
  117. package/dist/esm/services/p21-core/schemas/address.js +42 -0
  118. package/dist/esm/services/p21-core/schemas/address.js.map +1 -0
  119. package/dist/esm/services/p21-core/schemas/cash-drawer.d.ts +96 -0
  120. package/dist/esm/services/p21-core/schemas/cash-drawer.d.ts.map +1 -0
  121. package/dist/esm/services/p21-core/schemas/cash-drawer.js +36 -0
  122. package/dist/esm/services/p21-core/schemas/cash-drawer.js.map +1 -0
  123. package/dist/esm/services/p21-core/schemas/codes.d.ts +54 -0
  124. package/dist/esm/services/p21-core/schemas/codes.d.ts.map +1 -0
  125. package/dist/esm/services/p21-core/schemas/codes.js +22 -0
  126. package/dist/esm/services/p21-core/schemas/codes.js.map +1 -0
  127. package/dist/esm/services/p21-core/schemas/company.d.ts +80 -0
  128. package/dist/esm/services/p21-core/schemas/company.d.ts.map +1 -0
  129. package/dist/esm/services/p21-core/schemas/company.js +32 -0
  130. package/dist/esm/services/p21-core/schemas/company.js.map +1 -0
  131. package/dist/esm/services/p21-core/schemas/health.d.ts +46 -0
  132. package/dist/esm/services/p21-core/schemas/health.d.ts.map +1 -0
  133. package/dist/esm/services/p21-core/schemas/health.js +4 -0
  134. package/dist/esm/services/p21-core/schemas/health.js.map +1 -0
  135. package/dist/esm/services/p21-core/schemas/index.d.ts +8 -0
  136. package/dist/esm/services/p21-core/schemas/index.d.ts.map +1 -0
  137. package/dist/esm/services/p21-core/schemas/index.js +9 -0
  138. package/dist/esm/services/p21-core/schemas/index.js.map +1 -0
  139. package/dist/esm/services/p21-core/schemas/location.d.ts +84 -0
  140. package/dist/esm/services/p21-core/schemas/location.d.ts.map +1 -0
  141. package/dist/esm/services/p21-core/schemas/location.js +32 -0
  142. package/dist/esm/services/p21-core/schemas/location.js.map +1 -0
  143. package/dist/esm/services/p21-core/schemas/payment-types.d.ts +39 -0
  144. package/dist/esm/services/p21-core/schemas/payment-types.d.ts.map +1 -0
  145. package/dist/esm/services/p21-core/schemas/payment-types.js +23 -0
  146. package/dist/esm/services/p21-core/schemas/payment-types.js.map +1 -0
  147. package/dist/esm/services/p21-core/schemas.d.ts +2 -0
  148. package/dist/esm/services/p21-core/schemas.d.ts.map +1 -0
  149. package/dist/esm/services/p21-core/schemas.js +3 -0
  150. package/dist/esm/services/p21-core/schemas.js.map +1 -0
  151. package/dist/esm/services/vmi/schemas/inventory.d.ts +6 -6
  152. package/dist/esm/services/vmi/schemas/products.d.ts +6 -6
  153. package/dist/esm/services/vmi/schemas/restock.d.ts +12 -12
  154. package/dist/types/client.d.ts +181 -0
  155. package/dist/types/client.d.ts.map +1 -1
  156. package/dist/types/core/base-client.d.ts +104 -0
  157. package/dist/types/core/base-client.d.ts.map +1 -1
  158. package/dist/types/index.d.ts +2 -1
  159. package/dist/types/index.d.ts.map +1 -1
  160. package/dist/types/services/agr-site/client.d.ts +522 -2
  161. package/dist/types/services/agr-site/client.d.ts.map +1 -1
  162. package/dist/types/services/items/client.d.ts +2 -2
  163. package/dist/types/services/items/schemas/categories.d.ts +20 -20
  164. package/dist/types/services/joomla/client.d.ts +644 -99
  165. package/dist/types/services/joomla/client.d.ts.map +1 -1
  166. package/dist/types/services/nexus/client.d.ts +1096 -22
  167. package/dist/types/services/nexus/client.d.ts.map +1 -1
  168. package/dist/types/services/orders/client.d.ts +3 -3
  169. package/dist/types/services/orders/schemas/orders.d.ts +12 -12
  170. package/dist/types/services/orders/schemas/purchase-orders.d.ts +22 -22
  171. package/dist/types/services/p21-core/client.d.ts +627 -0
  172. package/dist/types/services/p21-core/client.d.ts.map +1 -0
  173. package/dist/types/services/p21-core/index.d.ts +3 -0
  174. package/dist/types/services/p21-core/index.d.ts.map +1 -0
  175. package/dist/types/services/p21-core/schemas/address.d.ts +88 -0
  176. package/dist/types/services/p21-core/schemas/address.d.ts.map +1 -0
  177. package/dist/types/services/p21-core/schemas/cash-drawer.d.ts +96 -0
  178. package/dist/types/services/p21-core/schemas/cash-drawer.d.ts.map +1 -0
  179. package/dist/types/services/p21-core/schemas/codes.d.ts +54 -0
  180. package/dist/types/services/p21-core/schemas/codes.d.ts.map +1 -0
  181. package/dist/types/services/p21-core/schemas/company.d.ts +80 -0
  182. package/dist/types/services/p21-core/schemas/company.d.ts.map +1 -0
  183. package/dist/types/services/p21-core/schemas/health.d.ts +46 -0
  184. package/dist/types/services/p21-core/schemas/health.d.ts.map +1 -0
  185. package/dist/types/services/p21-core/schemas/index.d.ts +8 -0
  186. package/dist/types/services/p21-core/schemas/index.d.ts.map +1 -0
  187. package/dist/types/services/p21-core/schemas/location.d.ts +84 -0
  188. package/dist/types/services/p21-core/schemas/location.d.ts.map +1 -0
  189. package/dist/types/services/p21-core/schemas/payment-types.d.ts +39 -0
  190. package/dist/types/services/p21-core/schemas/payment-types.d.ts.map +1 -0
  191. package/dist/types/services/p21-core/schemas.d.ts +2 -0
  192. package/dist/types/services/p21-core/schemas.d.ts.map +1 -0
  193. package/dist/types/services/vmi/schemas/inventory.d.ts +6 -6
  194. package/dist/types/services/vmi/schemas/products.d.ts +6 -6
  195. package/dist/types/services/vmi/schemas/restock.d.ts +12 -12
  196. package/package.json +1 -1
@@ -36,50 +36,91 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
36
36
  this.content = {
37
37
  /**
38
38
  * Retrieve a paginated list of content items
39
- * @description Returns all content with optional filtering, pagination, and edge caching
39
+ * @description Returns articles, documents, and content with filtering, pagination, and edge caching capabilities
40
+ * @fullPath api.joomla.content.list
41
+ * @service joomla
42
+ * @domain content-management
43
+ * @dataMethod listData() - returns only the content array without metadata
44
+ * @pagination Uses count, total, totalResults for pagination metadata. Supports limit/offset parameters.
45
+ * @caching Supports edgeCache parameter (1-8 hours) for improved performance on content that changes infrequently
46
+ * @discoverable true
47
+ * @searchTerms ["content", "articles", "list content", "cms content", "documents", "blog posts"]
48
+ * @relatedEndpoints ["api.joomla.content.get", "api.joomla.content.getDoc", "api.joomla.tags.list"]
49
+ * @commonPatterns ["list articles", "get content", "blog content", "cms articles", "filter content"]
40
50
  * @param params Optional filtering, pagination, and caching parameters
41
- * @param params.edgeCache Optional cache duration in hours (1, 2, 3, 4, 5, 8)
42
- * @returns Array of content items
51
+ * @param params.categoryIdList Comma-separated list of category IDs to filter content (e.g., '1,2,3')
52
+ * @param params.q Search query for filtering content by title/text
53
+ * @param params.limit Maximum number of content items to return (default: 20, max: 100)
54
+ * @param params.offset Number of items to skip for pagination (default: 0)
55
+ * @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) - recommended for content
56
+ * @returns BaseResponse<ContentItem[]> with pagination metadata and content array
43
57
  * @throws ValidationError When parameters are invalid or response is malformed
44
58
  * @example
45
59
  * ```typescript
46
- * // Get all content
47
- * const content = await client.content.list();
60
+ * // Get all content with full response metadata
61
+ * const response = await api.joomla.content.list();
62
+ * console.log(`Found ${response.total} articles, showing ${response.data.length}`);
48
63
  *
49
- * // Get filtered content
50
- * const filtered = await client.content.list({
64
+ * // Filter content by categories with search
65
+ * const filtered = await api.joomla.content.list({
51
66
  * categoryIdList: '1,2,3',
52
- * limit: 20,
53
- * q: 'search term'
67
+ * q: 'product review',
68
+ * limit: 10
54
69
  * });
55
70
  *
56
- * // Get content with 4-hour edge caching
57
- * const cached = await client.content.list({
58
- * edgeCache: 4, // Cache for 4 hours
59
- * categoryIdList: '1,2,3',
71
+ * // Get just content data without metadata
72
+ * const articles = await api.joomla.content.listData({
73
+ * categoryIdList: '5',
60
74
  * limit: 20
61
75
  * });
76
+ * articles.forEach(article => console.log(article.title, article.alias));
77
+ *
78
+ * // Use aggressive caching for content (recommended)
79
+ * const cachedContent = await api.joomla.content.list({
80
+ * edgeCache: 4, // Cache for 4 hours - content changes infrequently
81
+ * categoryIdList: '1,2,3'
82
+ * });
62
83
  * ```
63
84
  */
64
85
  list: this.createListMethod('/content', schemas_1.ContentListParamsSchema, schemas_1.ContentListResponseSchema),
65
86
  /**
66
- * Get content details by ID
67
- * @description Returns a single content item by its ID or alias with optional edge caching
68
- * @param contentId Content ID (number) or alias lookup (use 0 with params.alias)
87
+ * Get content details by ID or alias
88
+ * @description Returns a single content item by its ID or alias with optional edge caching and full content metadata
89
+ * @fullPath api.joomla.content.get
90
+ * @service joomla
91
+ * @domain content-management
92
+ * @dataMethod getData(contentId, params) - returns only the content object without metadata
93
+ * @caching Supports edgeCache parameter (1-8 hours) for improved performance
94
+ * @aliasLookup Supports alias-based lookup by using contentId=0 with params.alias
95
+ * @discoverable true
96
+ * @searchTerms ["get content", "content details", "article details", "content by id", "single content"]
97
+ * @relatedEndpoints ["api.joomla.content.list", "api.joomla.content.getDoc", "api.joomla.tags.list"]
98
+ * @commonPatterns ["get content by id", "fetch article", "content details lookup", "get by alias"]
99
+ * @param contentId Content ID (number) or use 0 for alias lookup
69
100
  * @param params Optional parameters for alias lookup and caching
70
- * @param params.edgeCache Optional cache duration in hours (1, 2, 3, 4, 5, 8)
71
- * @returns Content item details
101
+ * @param params.alias Content alias for lookup when contentId is 0
102
+ * @param params.catid Category ID for alias lookup specificity
103
+ * @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) for improved performance
104
+ * @returns BaseResponse<ContentItem> with complete content details and metadata
72
105
  * @throws ValidationError When parameters are invalid or response is malformed
73
106
  * @example
74
107
  * ```typescript
75
- * // Get by ID
76
- * const content = await client.content.get(123);
108
+ * // Get content by ID with full response metadata
109
+ * const response = await api.joomla.content.get(123);
110
+ * console.log('Article:', response.data.title, 'Status:', response.status);
111
+ *
112
+ * // Get content by alias
113
+ * const byAlias = await api.joomla.content.get(0, {
114
+ * alias: 'my-article',
115
+ * catid: 45
116
+ * });
77
117
  *
78
- * // Get by alias
79
- * const content = await client.content.get(0, { alias: 'my-article', catid: 45 });
118
+ * // Get just content data without metadata
119
+ * const article = await api.joomla.content.getData(123);
120
+ * console.log(article.title, article.introtext, article.fulltext);
80
121
  *
81
- * // Get with 8-hour edge caching
82
- * const cachedContent = await client.content.get(123, { edgeCache: 8 });
122
+ * // Use edge caching for frequently accessed content
123
+ * const cachedContent = await api.joomla.content.get(123, { edgeCache: 8 });
83
124
  * ```
84
125
  */
85
126
  get: async (contentId, params) => {
@@ -103,6 +144,40 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
103
144
  * ```
104
145
  */
105
146
  getDoc: this.createDocMethod('/content/{id}/doc', schemas_1.ContentDocumentResponseSchema),
147
+ /**
148
+ * Retrieve a paginated list of content items (data only)
149
+ * @description Returns only the data array from content items response
150
+ * @param params Optional filtering, pagination, and caching parameters
151
+ * @returns Array of content items (data only)
152
+ * @throws ValidationError When parameters are invalid or response is malformed
153
+ */
154
+ listData: async (params) => {
155
+ const response = await this.content.list(params);
156
+ return response.data;
157
+ },
158
+ /**
159
+ * Get content details by ID (data only)
160
+ * @description Returns only the data from content item details response
161
+ * @param contentId Content ID (number) or alias lookup (use 0 with params.alias)
162
+ * @param params Optional parameters for alias lookup and caching
163
+ * @returns Content item details (data only)
164
+ * @throws ValidationError When parameters are invalid or response is malformed
165
+ */
166
+ getData: async (contentId, params) => {
167
+ const response = await this.content.get(contentId, params);
168
+ return response.data;
169
+ },
170
+ /**
171
+ * Get content documentation (data only)
172
+ * @description Returns only the data from enhanced content document response
173
+ * @param contentId Content ID (number) or alias lookup (use 0 with query params)
174
+ * @returns Enhanced content document (data only)
175
+ * @throws ValidationError When response is malformed
176
+ */
177
+ getDocData: async (contentId) => {
178
+ const response = await this.content.getDoc(contentId);
179
+ return response.data;
180
+ },
106
181
  };
107
182
  /**
108
183
  * User endpoints
@@ -111,43 +186,80 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
111
186
  this.users = {
112
187
  /**
113
188
  * Retrieve a paginated list of users
114
- * @description Returns all users with optional filtering, pagination, and edge caching
189
+ * @description Returns all users with optional filtering, pagination, and edge caching for user management operations
190
+ * @fullPath api.joomla.users.list
191
+ * @service joomla
192
+ * @domain user-management
193
+ * @dataMethod listData() - returns only the user array without metadata
194
+ * @pagination Uses count, total, totalResults for pagination metadata. Supports limit/offset parameters.
195
+ * @caching Supports edgeCache parameter (1-8 hours) for improved performance
196
+ * @discoverable true
197
+ * @searchTerms ["users", "list users", "get users", "user management", "accounts", "profiles"]
198
+ * @relatedEndpoints ["api.joomla.userGroups.list", "api.customers.customer.list", "api.joomla.users.get"]
199
+ * @commonPatterns ["list all users", "search users", "paginate users", "filter users"]
115
200
  * @param params Optional filtering, pagination, and caching parameters
116
- * @param params.edgeCache Optional cache duration in hours (1, 2, 3, 4, 5, 8)
117
- * @returns Paginated user list with total count
201
+ * @param params.q Search query for filtering users by username/email
202
+ * @param params.limit Maximum number of users to return (default: 20, max: 100)
203
+ * @param params.offset Number of users to skip for pagination (default: 0)
204
+ * @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) for improved performance
205
+ * @returns BaseResponse<User[]> with pagination metadata and user array
118
206
  * @throws ValidationError When parameters are invalid or response is malformed
119
207
  * @example
120
208
  * ```typescript
121
- * // Get all users
122
- * const users = await client.users.list();
123
- * console.log(`Found ${users.total} users, showing ${users.data.length}`);
209
+ * // Get all users with full response metadata
210
+ * const response = await api.joomla.users.list();
211
+ * console.log(`Found ${response.total} users, showing ${response.data.length}`);
212
+ * console.log('Pagination:', { count: response.count, total: response.total });
124
213
  *
125
- * // Search users
126
- * const searchResults = await client.users.list({ q: 'admin', limit: 5 });
214
+ * // Search users with filtering
215
+ * const searchResults = await api.joomla.users.list({
216
+ * q: 'admin',
217
+ * limit: 10,
218
+ * offset: 0
219
+ * });
127
220
  *
128
- * // Get users with 2-hour edge caching
129
- * const cachedUsers = await client.users.list({
221
+ * // Get just user data without metadata (using data method)
222
+ * const users = await api.joomla.users.listData({ limit: 20 });
223
+ * users.forEach(user => console.log(user.username, user.email));
224
+ *
225
+ * // Use edge caching for performance
226
+ * const cachedUsers = await api.joomla.users.list({
130
227
  * edgeCache: 2, // Cache for 2 hours
131
- * limit: 20
228
+ * limit: 50
132
229
  * });
133
230
  * ```
134
231
  */
135
232
  list: this.createListMethod('/users', schemas_1.UserListParamsSchema, schemas_1.UserListResponseSchema),
136
233
  /**
137
234
  * Get user details by ID
138
- * @description Returns detailed information for a specific user with optional edge caching
139
- * @param userId User ID (number or string)
235
+ * @description Returns detailed information for a specific user including profile data and metadata
236
+ * @fullPath api.joomla.users.get
237
+ * @service joomla
238
+ * @domain user-management
239
+ * @dataMethod getData(userId, params) - returns only the user object without metadata
240
+ * @caching Supports edgeCache parameter (1-8 hours) for improved performance
241
+ * @discoverable true
242
+ * @searchTerms ["get user", "user details", "user profile", "user by id", "single user"]
243
+ * @relatedEndpoints ["api.joomla.users.list", "api.joomla.users.getDoc", "api.joomla.users.getTrinityDoc"]
244
+ * @commonPatterns ["get user by id", "fetch user profile", "user details lookup"]
245
+ * @param userId User ID (number or string) - the unique identifier for the user
140
246
  * @param params Optional caching parameters
141
- * @param params.edgeCache Optional cache duration in hours (1, 2, 3, 4, 5, 8)
142
- * @returns User details including profile information
143
- * @throws ValidationError When response is malformed
247
+ * @param params.edgeCache Cache duration in hours (1, 2, 3, 4, 5, 8) for improved performance
248
+ * @returns BaseResponse<User> with complete user details and metadata
249
+ * @throws ValidationError When userId is invalid or response is malformed
144
250
  * @example
145
251
  * ```typescript
146
- * const user = await client.users.get(123);
252
+ * // Get user with full response metadata
253
+ * const response = await api.joomla.users.get(123);
254
+ * console.log('User:', response.data.username, response.data.email);
255
+ * console.log('Status:', response.status, response.message);
256
+ *
257
+ * // Get just user data without metadata
258
+ * const user = await api.joomla.users.getData(123);
147
259
  * console.log(user.username, user.email, user.registerDate);
148
260
  *
149
- * // Get with 1-hour edge caching
150
- * const cachedUser = await client.users.get(123, { edgeCache: 1 });
261
+ * // Use edge caching for frequently accessed users
262
+ * const cachedUser = await api.joomla.users.get(123, { edgeCache: 1 });
151
263
  * ```
152
264
  */
153
265
  get: this.createGetMethod('/users/{id}', schemas_1.UserResponseSchema),
@@ -201,15 +313,32 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
201
313
  */
202
314
  groups: {
203
315
  /**
204
- * Get user's groups
205
- * @description Returns all groups that a specific user belongs to
206
- * @param userId User ID (string)
316
+ * Get user's group memberships
317
+ * @description Returns all groups that a specific user belongs to with membership details
318
+ * @fullPath api.joomla.users.groups.list
319
+ * @service joomla
320
+ * @domain user-management
321
+ * @dataMethod listData(userId, params) - returns only the group memberships array without metadata
322
+ * @discoverable true
323
+ * @searchTerms ["user groups", "group membership", "user permissions", "user roles"]
324
+ * @relatedEndpoints ["api.joomla.userGroups.list", "api.joomla.users.groups.createMapping", "api.joomla.users.get"]
325
+ * @commonPatterns ["get user groups", "user permissions", "group membership", "user roles"]
326
+ * @param userId User ID (string) - the unique identifier for the user
207
327
  * @param params Optional pagination parameters
208
- * @returns Array of user group memberships
328
+ * @param params.limit Maximum number of group memberships to return (default: 20)
329
+ * @param params.offset Number of memberships to skip for pagination (default: 0)
330
+ * @returns BaseResponse<UserGroupMembership[]> with group membership details and metadata
209
331
  * @throws ValidationError When response is malformed
210
332
  * @example
211
333
  * ```typescript
212
- * const groups = await client.users.groups.list('123');
334
+ * // Get user's groups with full response metadata
335
+ * const response = await api.joomla.users.groups.list('123');
336
+ * response.data.forEach(group => {
337
+ * console.log(`Group: ${group.title} (ID: ${group.groupId})`);
338
+ * });
339
+ *
340
+ * // Get just group memberships data without metadata
341
+ * const groups = await api.joomla.users.groups.listData('123');
213
342
  * groups.forEach(group => console.log(group.title, group.groupId));
214
343
  * ```
215
344
  */
@@ -262,29 +391,88 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
262
391
  responseSchema: schemas_1.UserGroupMappingResponseSchema,
263
392
  }, request, { id: String(userId) });
264
393
  },
394
+ /**
395
+ * Get user's groups (data only)
396
+ * @description Returns only the data array from user group memberships response
397
+ * @param userId User ID (string)
398
+ * @param params Optional pagination parameters
399
+ * @returns Array of user group memberships (data only)
400
+ * @throws ValidationError When response is malformed
401
+ */
402
+ listData: async (userId, params) => {
403
+ const response = await this.users.groups.list(userId, params);
404
+ return response.data;
405
+ },
406
+ /**
407
+ * Get specific user group membership (data only)
408
+ * @description Returns only the data from user group membership details response
409
+ * @param userId User ID (string)
410
+ * @param groupId Group ID (number or string)
411
+ * @returns User group membership details (data only)
412
+ * @throws ValidationError When response is malformed
413
+ */
414
+ getData: async (userId, groupId) => {
415
+ const response = await this.users.groups.get(userId, groupId);
416
+ return response.data;
417
+ },
418
+ /**
419
+ * Create or update user group mapping (data only)
420
+ * @description Returns only the data from created/updated group mapping response
421
+ * @param userId User ID (number or string)
422
+ * @param request Group mapping request data
423
+ * @returns Group mapping information (data only)
424
+ * @throws ValidationError When request is invalid or response is malformed
425
+ */
426
+ createMappingData: async (userId, request) => {
427
+ const response = await this.users.groups.createMapping(userId, request);
428
+ return response.data;
429
+ },
265
430
  },
266
431
  /**
267
- * Verify user password
268
- * @description Verifies if the provided username and password are valid, supporting cross-site authentication
269
- *
270
- * Cross-site authentication:
271
- * - When called from 'augur_info' site, can authenticate users from any other site
272
- * - Include optional 'siteId' parameter to authenticate against a different site
273
- * - Returned JWT token will be scoped to the target site, not augur_info
274
- *
275
- * @param request Object containing username, password, and optional siteId for cross-site auth
276
- * @returns Object with verification status, user ID, username, token (if verified), and email
277
- *
432
+ * Verify user credentials and authenticate
433
+ * @description Verifies username/password combination and returns authentication token, supports cross-site authentication
434
+ * @fullPath api.joomla.users.verifyPassword
435
+ * @service joomla
436
+ * @domain authentication
437
+ * @dataMethod verifyPasswordData(request) - returns only the verification result without metadata
438
+ * @crossSite Supports authentication across multiple sites when called from 'augur_info' site
439
+ * @discoverable true
440
+ * @searchTerms ["verify password", "authenticate", "login", "user authentication", "credentials", "sign in"]
441
+ * @relatedEndpoints ["api.joomla.users.get", "api.joomla.users.create", "api.customers.customer.get"]
442
+ * @commonPatterns ["user login", "authenticate user", "verify credentials", "password check"]
443
+ * @param request Authentication request containing username, password, and optional siteId
444
+ * @param request.username User's username for authentication
445
+ * @param request.password User's password for verification
446
+ * @param request.siteId Optional site ID for cross-site authentication (when using augur_info)
447
+ * @returns BaseResponse<VerifyPasswordResult> with verification status, user info, and JWT token
448
+ * @throws ValidationError When credentials are invalid or request is malformed
278
449
  * @example
279
- * // Standard authentication
280
- * await client.users.verifyPassword({ username: 'user', password: 'pass' });
450
+ * ```typescript
451
+ * // Standard authentication with full response
452
+ * const response = await api.joomla.users.verifyPassword({
453
+ * username: 'johndoe',
454
+ * password: 'securePassword123'
455
+ * });
281
456
  *
282
- * // Cross-site authentication (when using augur_info as x-site-id header)
283
- * await client.users.verifyPassword({
284
- * username: 'user',
285
- * password: 'pass',
457
+ * if (response.data.verified) {
458
+ * console.log('Login successful:', response.data.username);
459
+ * console.log('JWT Token:', response.data.token);
460
+ * console.log('User ID:', response.data.userId);
461
+ * }
462
+ *
463
+ * // Cross-site authentication (when using augur_info site)
464
+ * const crossSiteAuth = await api.joomla.users.verifyPassword({
465
+ * username: 'johndoe',
466
+ * password: 'securePassword123',
286
467
  * siteId: 'customer_site_1'
287
468
  * });
469
+ *
470
+ * // Get just verification data without metadata
471
+ * const authResult = await api.joomla.users.verifyPasswordData({
472
+ * username: 'johndoe',
473
+ * password: 'securePassword123'
474
+ * });
475
+ * ```
288
476
  */
289
477
  verifyPassword: async (request) => {
290
478
  return this.executeRequest({
@@ -295,20 +483,43 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
295
483
  }, request);
296
484
  },
297
485
  /**
298
- * Create a new user
299
- * @description Creates a new user account in the system
486
+ * Create a new user account
487
+ * @description Creates a new user account in the system with username, email, name, and password
488
+ * @fullPath api.joomla.users.create
489
+ * @service joomla
490
+ * @domain user-management
491
+ * @dataMethod createData(request) - returns only the created user object without metadata
492
+ * @discoverable true
493
+ * @searchTerms ["create user", "new user", "user registration", "add user", "register user"]
494
+ * @relatedEndpoints ["api.joomla.users.list", "api.joomla.users.get", "api.joomla.users.verifyPassword"]
495
+ * @commonPatterns ["register new user", "create account", "add user account", "user signup"]
300
496
  * @param request User creation request data including username, email, name, and password
301
- * @returns Created user information with ID, username, and email
497
+ * @param request.username Unique username for the new user (required)
498
+ * @param request.email Valid email address for the user (required)
499
+ * @param request.name Full display name for the user (required)
500
+ * @param request.password Secure password for the user (required, minimum 8 characters)
501
+ * @returns BaseResponse<User> with created user information including ID, username, and email
302
502
  * @throws ValidationError When request is invalid or response is malformed
303
503
  * @example
304
504
  * ```typescript
305
- * const newUser = await client.users.create({
505
+ * // Create new user with full response metadata
506
+ * const response = await api.joomla.users.create({
306
507
  * username: 'newuser',
307
508
  * email: 'user@example.com',
308
509
  * name: 'New User',
309
510
  * password: 'SecurePass123!'
310
511
  * });
311
- * console.log('Created user:', newUser.id, newUser.username);
512
+ * console.log('Created user:', response.data.id, response.data.username);
513
+ * console.log('Status:', response.status, response.message);
514
+ *
515
+ * // Get just created user data without metadata
516
+ * const newUser = await api.joomla.users.createData({
517
+ * username: 'johndoe',
518
+ * email: 'john@example.com',
519
+ * name: 'John Doe',
520
+ * password: 'MySecurePassword123!'
521
+ * });
522
+ * console.log('New user ID:', newUser.id, 'Email:', newUser.email);
312
523
  * ```
313
524
  */
314
525
  create: this.createCreateMethod('/users', schemas_1.CreateUserRequestSchema, schemas_1.CreateUserResponseSchema),
@@ -345,6 +556,96 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
345
556
  * ```
346
557
  */
347
558
  block: this.createDeleteMethod('/users/{id}', schemas_1.BlockUserResponseSchema),
559
+ /**
560
+ * Retrieve a paginated list of users (data only)
561
+ * @description Returns only the data array from users response
562
+ * @param params Optional filtering, pagination, and caching parameters
563
+ * @returns Array of users (data only)
564
+ * @throws ValidationError When parameters are invalid or response is malformed
565
+ */
566
+ listData: async (params) => {
567
+ const response = await this.users.list(params);
568
+ return response.data;
569
+ },
570
+ /**
571
+ * Get user details by ID (data only)
572
+ * @description Returns only the data from user details response
573
+ * @param userId User ID (number or string)
574
+ * @param params Optional caching parameters
575
+ * @returns User details (data only)
576
+ * @throws ValidationError When response is malformed
577
+ */
578
+ getData: async (userId, params) => {
579
+ const response = await this.users.get(userId, params);
580
+ return response.data;
581
+ },
582
+ /**
583
+ * Get user documentation (data only)
584
+ * @description Returns only the data from enhanced user document response
585
+ * @param userId User ID (number or string)
586
+ * @returns Enhanced user document (data only)
587
+ * @throws ValidationError When response is malformed
588
+ */
589
+ getDocData: async (userId) => {
590
+ const response = await this.users.getDoc(userId);
591
+ return response.data;
592
+ },
593
+ /**
594
+ * Get Trinity user documentation (data only)
595
+ * @description Returns only the data from specialized Trinity business logic document response
596
+ * @param userId User ID (number or string)
597
+ * @param params Optional filtering and pagination parameters
598
+ * @returns Trinity document (data only)
599
+ * @throws ValidationError When parameters are invalid or response is malformed
600
+ */
601
+ getTrinityDocData: async (userId, params) => {
602
+ const response = await this.users.getTrinityDoc(userId, params);
603
+ return response.data;
604
+ },
605
+ /**
606
+ * Verify user password (data only)
607
+ * @description Returns only the data from password verification response
608
+ * @param request Object containing username, password, and optional siteId for cross-site auth
609
+ * @returns Verification result (data only)
610
+ */
611
+ verifyPasswordData: async (request) => {
612
+ const response = await this.users.verifyPassword(request);
613
+ return response.data;
614
+ },
615
+ /**
616
+ * Create a new user (data only)
617
+ * @description Returns only the data from created user response
618
+ * @param request User creation request data including username, email, name, and password
619
+ * @returns Created user information (data only)
620
+ * @throws ValidationError When request is invalid or response is malformed
621
+ */
622
+ createData: async (request) => {
623
+ const response = await this.users.create(request);
624
+ return response.data;
625
+ },
626
+ /**
627
+ * Update an existing user (data only)
628
+ * @description Returns only the data from updated user response
629
+ * @param userId User ID (number or string)
630
+ * @param request User update data with optional fields to modify
631
+ * @returns Updated user object (data only)
632
+ * @throws ValidationError When request is invalid or response is malformed
633
+ */
634
+ updateData: async (userId, request) => {
635
+ const response = await this.users.update(userId, request);
636
+ return response.data;
637
+ },
638
+ /**
639
+ * Block (deactivate) a user (data only)
640
+ * @description Returns only the data from user blocking response
641
+ * @param userId User ID (number or string)
642
+ * @returns Blocking operation result (data only)
643
+ * @throws ValidationError When response is malformed
644
+ */
645
+ blockData: async (userId) => {
646
+ const response = await this.users.block(userId);
647
+ return response.data;
648
+ },
348
649
  };
349
650
  /**
350
651
  * User Groups endpoints
@@ -352,31 +653,47 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
352
653
  */
353
654
  this.userGroups = {
354
655
  /**
355
- * Get user groups
356
- * @description Returns hierarchical list of user groups with optional filtering, ordering, and edge caching
656
+ * Get hierarchical list of user groups
657
+ * @description Returns system-wide user groups with hierarchy information, filtering, and caching
658
+ * @fullPath api.joomla.userGroups.list
659
+ * @service joomla
660
+ * @domain user-management
661
+ * @dataMethod listData(params) - returns only the user groups array without metadata
662
+ * @hierarchy Returns groups with level and parent relationship information
663
+ * @caching Supports edgeCache parameter (1-8 hours) - recommended since groups rarely change
664
+ * @discoverable true
665
+ * @searchTerms ["user groups", "groups", "permissions", "roles", "group hierarchy", "user roles"]
666
+ * @relatedEndpoints ["api.joomla.users.groups.list", "api.joomla.users.list", "api.joomla.users.groups.createMapping"]
667
+ * @commonPatterns ["list user groups", "get groups", "group permissions", "user roles", "group hierarchy"]
357
668
  * @param params Optional filtering, ordering, and caching parameters
358
- * @param params.edgeCache Optional cache duration in hours (1, 2, 3, 4, 5, 8)
359
- * @returns Array of user groups with hierarchy information
669
+ * @param params.orderBy Sort order (e.g., 'title|ASC', 'title|DESC', 'level|ASC')
670
+ * @param params.parentIdList Comma-separated list of parent group IDs to filter (e.g., '1,2')
671
+ * @param params.edgeCache Cache duration in hours (1-8) - highly recommended since groups rarely change
672
+ * @returns BaseResponse<UserGroup[]> with hierarchy metadata and groups array
360
673
  * @throws ValidationError When parameters are invalid or response is malformed
361
674
  * @example
362
675
  * ```typescript
363
- * // Get all user groups
364
- * const groups = await client.userGroups.list();
676
+ * // Get all user groups with hierarchy information
677
+ * const response = await api.joomla.userGroups.list();
678
+ * response.data.forEach(group => {
679
+ * console.log(`${group.title} (Level: ${group.level}, Parent: ${group.parentId})`);
680
+ * });
365
681
  *
366
- * // Get filtered groups
367
- * const filtered = await client.userGroups.list({
368
- * orderBy: 'title|DESC',
682
+ * // Filter and order groups
683
+ * const ordered = await api.joomla.userGroups.list({
684
+ * orderBy: 'title|ASC',
369
685
  * parentIdList: '1,2'
370
686
  * });
371
687
  *
372
- * // Get groups with 8-hour edge caching (groups rarely change)
373
- * const cachedGroups = await client.userGroups.list({
374
- * edgeCache: 8, // Cache for 8 hours
375
- * orderBy: 'title|ASC'
688
+ * // Get just groups data without metadata
689
+ * const groups = await api.joomla.userGroups.listData({
690
+ * orderBy: 'level|ASC'
376
691
  * });
377
692
  *
378
- * groups.forEach(group => {
379
- * console.log(`${group.title} (Level: ${group.level})`);
693
+ * // Use long caching since groups rarely change
694
+ * const cachedGroups = await api.joomla.userGroups.list({
695
+ * edgeCache: 8, // Cache for 8 hours - groups change very infrequently
696
+ * orderBy: 'title|ASC'
380
697
  * });
381
698
  * ```
382
699
  */
@@ -388,6 +705,17 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
388
705
  responseSchema: schemas_1.UserGroupListResponseSchema,
389
706
  }, params);
390
707
  },
708
+ /**
709
+ * Get user groups (data only)
710
+ * @description Returns only the data array from user groups response
711
+ * @param params Optional filtering, ordering, and caching parameters
712
+ * @returns Array of user groups (data only)
713
+ * @throws ValidationError When parameters are invalid or response is malformed
714
+ */
715
+ listData: async (params) => {
716
+ const response = await this.userGroups.list(params);
717
+ return response.data;
718
+ },
391
719
  };
392
720
  /**
393
721
  * Tags endpoints
@@ -395,36 +723,66 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
395
723
  */
396
724
  this.tags = {
397
725
  /**
398
- * Get tags
399
- * @description Returns hierarchical list of content tags with optional filtering, search, and edge caching
726
+ * Get hierarchical list of content tags
727
+ * @description Returns content tags with hierarchy, usage information, filtering, search, and edge caching
728
+ * @fullPath api.joomla.tags.list
729
+ * @service joomla
730
+ * @domain content-management
731
+ * @dataMethod listData(params) - returns only the tags array without metadata
732
+ * @hierarchy Returns tags with level and parent relationship information
733
+ * @caching Supports edgeCache parameter (1-8 hours) - recommended for reference data
734
+ * @discoverable true
735
+ * @searchTerms ["tags", "content tags", "taxonomy", "categories", "tag hierarchy"]
736
+ * @relatedEndpoints ["api.joomla.content.list", "api.joomla.content.get", "api.joomla.userGroups.list"]
737
+ * @commonPatterns ["list tags", "get tags", "search tags", "content taxonomy", "tag filtering"]
400
738
  * @param params Optional filtering, search, and caching parameters
401
- * @param params.edgeCache Optional cache duration in hours (1, 2, 3, 4, 5, 8)
402
- * @returns Array of tags with hierarchy and usage information
739
+ * @param params.q Search query for filtering tags by title
740
+ * @param params.catId Category ID to filter tags by category
741
+ * @param params.limit Maximum number of tags to return (default: 20, max: 100)
742
+ * @param params.offset Number of tags to skip for pagination (default: 0)
743
+ * @param params.edgeCache Cache duration in hours (1-8) - recommended for reference data
744
+ * @returns BaseResponse<Tag[]> with hierarchy metadata and tags array
403
745
  * @throws ValidationError When parameters are invalid or response is malformed
404
746
  * @example
405
747
  * ```typescript
406
- * // Get all tags
407
- * const tags = await client.tags.list();
748
+ * // Get all tags with hierarchy information
749
+ * const response = await api.joomla.tags.list();
750
+ * response.data.forEach(tag => {
751
+ * console.log(`${tag.title} (${tag.hits} hits, Level: ${tag.level})`);
752
+ * });
408
753
  *
409
- * // Search tags
410
- * const searchTags = await client.tags.list({
754
+ * // Search tags by keyword
755
+ * const searchTags = await api.joomla.tags.list({
411
756
  * q: 'technology',
412
757
  * catId: 1,
413
758
  * limit: 10
414
759
  * });
415
760
  *
416
- * // Get tags with 5-hour edge caching (reference data)
417
- * const cachedTags = await client.tags.list({
418
- * edgeCache: 5, // Cache for 5 hours
761
+ * // Get just tags data without metadata
762
+ * const tags = await api.joomla.tags.listData({
419
763
  * limit: 50
420
764
  * });
765
+ * tags.forEach(tag => console.log(tag.title, tag.alias));
421
766
  *
422
- * tags.forEach(tag => {
423
- * console.log(`${tag.title} (${tag.hits} hits)`);
767
+ * // Use caching for reference data (recommended)
768
+ * const cachedTags = await api.joomla.tags.list({
769
+ * edgeCache: 5, // Cache for 5 hours - tags are reference data
770
+ * limit: 100
424
771
  * });
425
772
  * ```
426
773
  */
427
774
  list: this.createListMethod('/tags', schemas_1.TagListParamsSchema, schemas_1.TagListResponseSchema),
775
+ /**
776
+ * Get tags (data only)
777
+ * @description Returns only the data array from tags response
778
+ * @param params Optional filtering, search, and caching parameters
779
+ * @returns Array of tags (data only)
780
+ * @throws ValidationError When parameters are invalid or response is malformed
781
+ */
782
+ listData: async (params) => {
783
+ const response = await this.tags.list(params);
784
+ return response.data;
785
+ },
428
786
  };
429
787
  /**
430
788
  * Menu endpoints
@@ -451,6 +809,17 @@ class JoomlaClient extends base_client_1.BaseServiceClient {
451
809
  responseSchema: schemas_1.ContentDocumentResponseSchema,
452
810
  }, undefined, { id: menuId });
453
811
  },
812
+ /**
813
+ * Get menu documentation (data only)
814
+ * @description Returns only the data from enhanced menu item document response
815
+ * @param menuId Menu item ID (string)
816
+ * @returns Menu document (data only)
817
+ * @throws ValidationError When response is malformed
818
+ */
819
+ getDocData: async (menuId) => {
820
+ const response = await this.menu.getDoc(menuId);
821
+ return response.data;
822
+ },
454
823
  };
455
824
  /**
456
825
  * Check service health (no bearer token required)