@revenexx/node 0.1.1 → 0.2.0

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 (1634) hide show
  1. package/README.md +1 -3
  2. package/dist/client.d.mts +142 -2
  3. package/dist/client.d.ts +142 -2
  4. package/dist/client.js +4 -4
  5. package/dist/client.js.map +1 -1
  6. package/dist/client.mjs +4 -4
  7. package/dist/client.mjs.map +1 -1
  8. package/dist/enums/accept-line-decision.d.mts +6 -0
  9. package/dist/enums/accept-line-decision.d.ts +6 -0
  10. package/dist/enums/accept-line-decision.js +11 -0
  11. package/dist/enums/accept-line-decision.js.map +1 -0
  12. package/dist/enums/accept-line-decision.mjs +10 -0
  13. package/dist/enums/accept-line-decision.mjs.map +1 -0
  14. package/dist/enums/accept-result-origin.d.mts +6 -0
  15. package/dist/enums/accept-result-origin.d.ts +6 -0
  16. package/dist/enums/accept-result-origin.js +11 -0
  17. package/dist/enums/accept-result-origin.js.map +1 -0
  18. package/dist/enums/accept-result-origin.mjs +10 -0
  19. package/dist/enums/accept-result-origin.mjs.map +1 -0
  20. package/dist/enums/accept-result-status.d.mts +12 -0
  21. package/dist/enums/accept-result-status.d.ts +12 -0
  22. package/dist/enums/accept-result-status.js +17 -0
  23. package/dist/enums/accept-result-status.js.map +1 -0
  24. package/dist/enums/accept-result-status.mjs +16 -0
  25. package/dist/enums/accept-result-status.mjs.map +1 -0
  26. package/dist/enums/action.d.mts +10 -0
  27. package/dist/enums/action.d.ts +10 -0
  28. package/dist/enums/action.js +15 -0
  29. package/dist/enums/action.js.map +1 -0
  30. package/dist/enums/action.mjs +14 -0
  31. package/dist/enums/action.mjs.map +1 -0
  32. package/dist/enums/allocation.d.mts +6 -0
  33. package/dist/enums/allocation.d.ts +6 -0
  34. package/dist/enums/allocation.js +11 -0
  35. package/dist/enums/allocation.js.map +1 -0
  36. package/dist/enums/allocation.mjs +10 -0
  37. package/dist/enums/allocation.mjs.map +1 -0
  38. package/dist/enums/asset-store-visibility.d.mts +6 -0
  39. package/dist/enums/asset-store-visibility.d.ts +6 -0
  40. package/dist/enums/asset-store-visibility.js +11 -0
  41. package/dist/enums/asset-store-visibility.js.map +1 -0
  42. package/dist/enums/asset-store-visibility.mjs +10 -0
  43. package/dist/enums/asset-store-visibility.mjs.map +1 -0
  44. package/dist/enums/assignment-role-create-request-tone.d.mts +9 -0
  45. package/dist/enums/assignment-role-create-request-tone.d.ts +9 -0
  46. package/dist/enums/assignment-role-create-request-tone.js +14 -0
  47. package/dist/enums/assignment-role-create-request-tone.js.map +1 -0
  48. package/dist/enums/assignment-role-create-request-tone.mjs +13 -0
  49. package/dist/enums/assignment-role-create-request-tone.mjs.map +1 -0
  50. package/dist/enums/assignment-role-tone.d.mts +9 -0
  51. package/dist/enums/assignment-role-tone.d.ts +9 -0
  52. package/dist/enums/assignment-role-tone.js +14 -0
  53. package/dist/enums/assignment-role-tone.js.map +1 -0
  54. package/dist/enums/assignment-role-tone.mjs +13 -0
  55. package/dist/enums/assignment-role-tone.mjs.map +1 -0
  56. package/dist/enums/assignment-role-update-request-tone.d.mts +9 -0
  57. package/dist/enums/assignment-role-update-request-tone.d.ts +9 -0
  58. package/dist/enums/assignment-role-update-request-tone.js +14 -0
  59. package/dist/enums/assignment-role-update-request-tone.js.map +1 -0
  60. package/dist/enums/assignment-role-update-request-tone.mjs +13 -0
  61. package/dist/enums/assignment-role-update-request-tone.mjs.map +1 -0
  62. package/dist/enums/attach-request-direction.d.mts +6 -0
  63. package/dist/enums/attach-request-direction.d.ts +6 -0
  64. package/dist/enums/attach-request-direction.js +11 -0
  65. package/dist/enums/attach-request-direction.js.map +1 -0
  66. package/dist/enums/attach-request-direction.mjs +10 -0
  67. package/dist/enums/attach-request-direction.mjs.map +1 -0
  68. package/dist/enums/attach-request-visibility.d.mts +6 -0
  69. package/dist/enums/attach-request-visibility.d.ts +6 -0
  70. package/dist/enums/attach-request-visibility.js +11 -0
  71. package/dist/enums/attach-request-visibility.js.map +1 -0
  72. package/dist/enums/attach-request-visibility.mjs +10 -0
  73. package/dist/enums/attach-request-visibility.mjs.map +1 -0
  74. package/dist/enums/audience.d.mts +5 -0
  75. package/dist/enums/audience.d.ts +5 -0
  76. package/dist/enums/audience.js +10 -0
  77. package/dist/enums/audience.js.map +1 -0
  78. package/dist/enums/audience.mjs +9 -0
  79. package/dist/enums/audience.mjs.map +1 -0
  80. package/dist/enums/auth-mfa-challenge-request-factor.d.mts +5 -0
  81. package/dist/enums/auth-mfa-challenge-request-factor.d.ts +5 -0
  82. package/dist/enums/auth-mfa-challenge-request-factor.js +10 -0
  83. package/dist/enums/auth-mfa-challenge-request-factor.js.map +1 -0
  84. package/dist/enums/auth-mfa-challenge-request-factor.mjs +9 -0
  85. package/dist/enums/auth-mfa-challenge-request-factor.mjs.map +1 -0
  86. package/dist/enums/availability-state-tone.d.mts +9 -0
  87. package/dist/enums/availability-state-tone.d.ts +9 -0
  88. package/dist/enums/availability-state-tone.js +14 -0
  89. package/dist/enums/availability-state-tone.js.map +1 -0
  90. package/dist/enums/availability-state-tone.mjs +13 -0
  91. package/dist/enums/availability-state-tone.mjs.map +1 -0
  92. package/dist/enums/banner-draft-layout.d.mts +7 -0
  93. package/dist/enums/banner-draft-layout.d.ts +7 -0
  94. package/dist/enums/banner-draft-layout.js +12 -0
  95. package/dist/enums/banner-draft-layout.js.map +1 -0
  96. package/dist/enums/banner-draft-layout.mjs +11 -0
  97. package/dist/enums/banner-draft-layout.mjs.map +1 -0
  98. package/dist/enums/banner-draft-update-request-layout.d.mts +7 -0
  99. package/dist/enums/banner-draft-update-request-layout.d.ts +7 -0
  100. package/dist/enums/banner-draft-update-request-layout.js +12 -0
  101. package/dist/enums/banner-draft-update-request-layout.js.map +1 -0
  102. package/dist/enums/banner-draft-update-request-layout.mjs +11 -0
  103. package/dist/enums/banner-draft-update-request-layout.mjs.map +1 -0
  104. package/dist/enums/budget-change-reason.d.mts +2 -1
  105. package/dist/enums/budget-change-reason.d.ts +2 -1
  106. package/dist/enums/budget-change-reason.js +1 -0
  107. package/dist/enums/budget-change-reason.js.map +1 -1
  108. package/dist/enums/budget-change-reason.mjs +1 -0
  109. package/dist/enums/budget-change-reason.mjs.map +1 -1
  110. package/dist/enums/budget-movement-result-status.d.mts +2 -1
  111. package/dist/enums/budget-movement-result-status.d.ts +2 -1
  112. package/dist/enums/budget-movement-result-status.js +1 -0
  113. package/dist/enums/budget-movement-result-status.js.map +1 -1
  114. package/dist/enums/budget-movement-result-status.mjs +1 -0
  115. package/dist/enums/budget-movement-result-status.mjs.map +1 -1
  116. package/dist/enums/budget-release-scope.d.mts +6 -0
  117. package/dist/enums/budget-release-scope.d.ts +6 -0
  118. package/dist/enums/budget-release-scope.js +11 -0
  119. package/dist/enums/budget-release-scope.js.map +1 -0
  120. package/dist/enums/budget-release-scope.mjs +10 -0
  121. package/dist/enums/budget-release-scope.mjs.map +1 -0
  122. package/dist/enums/budget-release-status.d.mts +9 -0
  123. package/dist/enums/budget-release-status.d.ts +9 -0
  124. package/dist/enums/budget-release-status.js +14 -0
  125. package/dist/enums/budget-release-status.js.map +1 -0
  126. package/dist/enums/budget-release-status.mjs +13 -0
  127. package/dist/enums/budget-release-status.mjs.map +1 -0
  128. package/dist/enums/budget-type.d.mts +6 -0
  129. package/dist/enums/budget-type.d.ts +6 -0
  130. package/dist/enums/budget-type.js +11 -0
  131. package/dist/enums/budget-type.js.map +1 -0
  132. package/dist/enums/budget-type.mjs +10 -0
  133. package/dist/enums/budget-type.mjs.map +1 -0
  134. package/dist/enums/condition-match.d.mts +6 -0
  135. package/dist/enums/condition-match.d.ts +6 -0
  136. package/dist/enums/condition-match.js +11 -0
  137. package/dist/enums/condition-match.js.map +1 -0
  138. package/dist/enums/condition-match.mjs +10 -0
  139. package/dist/enums/condition-match.mjs.map +1 -0
  140. package/dist/enums/consent-manager-vocabularies-get-name.d.mts +10 -0
  141. package/dist/enums/consent-manager-vocabularies-get-name.d.ts +10 -0
  142. package/dist/enums/consent-manager-vocabularies-get-name.js +15 -0
  143. package/dist/enums/consent-manager-vocabularies-get-name.js.map +1 -0
  144. package/dist/enums/consent-manager-vocabularies-get-name.mjs +14 -0
  145. package/dist/enums/consent-manager-vocabularies-get-name.mjs.map +1 -0
  146. package/dist/enums/consent-record-action.d.mts +10 -0
  147. package/dist/enums/consent-record-action.d.ts +10 -0
  148. package/dist/enums/consent-record-action.js +15 -0
  149. package/dist/enums/consent-record-action.js.map +1 -0
  150. package/dist/enums/consent-record-action.mjs +14 -0
  151. package/dist/enums/consent-record-action.mjs.map +1 -0
  152. package/dist/enums/consent-record-create-request-action.d.mts +10 -0
  153. package/dist/enums/consent-record-create-request-action.d.ts +10 -0
  154. package/dist/enums/consent-record-create-request-action.js +15 -0
  155. package/dist/enums/consent-record-create-request-action.js.map +1 -0
  156. package/dist/enums/consent-record-create-request-action.mjs +14 -0
  157. package/dist/enums/consent-record-create-request-action.mjs.map +1 -0
  158. package/dist/enums/consent-record-create-request-surface.d.mts +8 -0
  159. package/dist/enums/consent-record-create-request-surface.d.ts +8 -0
  160. package/dist/enums/consent-record-create-request-surface.js +13 -0
  161. package/dist/enums/consent-record-create-request-surface.js.map +1 -0
  162. package/dist/enums/consent-record-create-request-surface.mjs +12 -0
  163. package/dist/enums/consent-record-create-request-surface.mjs.map +1 -0
  164. package/dist/enums/consent-record-surface.d.mts +8 -0
  165. package/dist/enums/consent-record-surface.d.ts +8 -0
  166. package/dist/enums/consent-record-surface.js +13 -0
  167. package/dist/enums/consent-record-surface.js.map +1 -0
  168. package/dist/enums/consent-record-surface.mjs +12 -0
  169. package/dist/enums/consent-record-surface.mjs.map +1 -0
  170. package/dist/enums/consent-vocabulary-source.d.mts +5 -0
  171. package/dist/enums/consent-vocabulary-source.d.ts +5 -0
  172. package/dist/enums/consent-vocabulary-source.js +10 -0
  173. package/dist/enums/consent-vocabulary-source.js.map +1 -0
  174. package/dist/enums/consent-vocabulary-source.mjs +9 -0
  175. package/dist/enums/consent-vocabulary-source.mjs.map +1 -0
  176. package/dist/enums/contact-order-approval-mode.d.mts +7 -0
  177. package/dist/enums/contact-order-approval-mode.d.ts +7 -0
  178. package/dist/enums/contact-order-approval-mode.js +12 -0
  179. package/dist/enums/contact-order-approval-mode.js.map +1 -0
  180. package/dist/enums/contact-order-approval-mode.mjs +11 -0
  181. package/dist/enums/contact-order-approval-mode.mjs.map +1 -0
  182. package/dist/enums/contact-point-kind-create-request-tone.d.mts +9 -0
  183. package/dist/enums/contact-point-kind-create-request-tone.d.ts +9 -0
  184. package/dist/enums/contact-point-kind-create-request-tone.js +14 -0
  185. package/dist/enums/contact-point-kind-create-request-tone.js.map +1 -0
  186. package/dist/enums/contact-point-kind-create-request-tone.mjs +13 -0
  187. package/dist/enums/contact-point-kind-create-request-tone.mjs.map +1 -0
  188. package/dist/enums/contact-point-kind-tone.d.mts +9 -0
  189. package/dist/enums/contact-point-kind-tone.d.ts +9 -0
  190. package/dist/enums/contact-point-kind-tone.js +14 -0
  191. package/dist/enums/contact-point-kind-tone.js.map +1 -0
  192. package/dist/enums/contact-point-kind-tone.mjs +13 -0
  193. package/dist/enums/contact-point-kind-tone.mjs.map +1 -0
  194. package/dist/enums/contact-point-kind-update-request-tone.d.mts +9 -0
  195. package/dist/enums/contact-point-kind-update-request-tone.d.ts +9 -0
  196. package/dist/enums/contact-point-kind-update-request-tone.js +14 -0
  197. package/dist/enums/contact-point-kind-update-request-tone.js.map +1 -0
  198. package/dist/enums/contact-point-kind-update-request-tone.mjs +13 -0
  199. package/dist/enums/contact-point-kind-update-request-tone.mjs.map +1 -0
  200. package/dist/enums/cookie-create-request-kind.d.mts +9 -0
  201. package/dist/enums/cookie-create-request-kind.d.ts +9 -0
  202. package/dist/enums/cookie-create-request-kind.js +14 -0
  203. package/dist/enums/cookie-create-request-kind.js.map +1 -0
  204. package/dist/enums/cookie-create-request-kind.mjs +13 -0
  205. package/dist/enums/cookie-create-request-kind.mjs.map +1 -0
  206. package/dist/enums/cookie-kind.d.mts +9 -0
  207. package/dist/enums/cookie-kind.d.ts +9 -0
  208. package/dist/enums/cookie-kind.js +14 -0
  209. package/dist/enums/cookie-kind.js.map +1 -0
  210. package/dist/enums/cookie-kind.mjs +13 -0
  211. package/dist/enums/cookie-kind.mjs.map +1 -0
  212. package/dist/enums/cookie-update-request-kind.d.mts +9 -0
  213. package/dist/enums/cookie-update-request-kind.d.ts +9 -0
  214. package/dist/enums/cookie-update-request-kind.js +14 -0
  215. package/dist/enums/cookie-update-request-kind.js.map +1 -0
  216. package/dist/enums/cookie-update-request-kind.mjs +13 -0
  217. package/dist/enums/cookie-update-request-kind.mjs.map +1 -0
  218. package/dist/enums/cost-center-budget-type.d.mts +2 -1
  219. package/dist/enums/cost-center-budget-type.d.ts +2 -1
  220. package/dist/enums/cost-center-budget-type.js +1 -0
  221. package/dist/enums/cost-center-budget-type.js.map +1 -1
  222. package/dist/enums/cost-center-budget-type.mjs +1 -0
  223. package/dist/enums/cost-center-budget-type.mjs.map +1 -1
  224. package/dist/enums/cost-center-create-request-budget-type.d.mts +6 -0
  225. package/dist/enums/cost-center-create-request-budget-type.d.ts +6 -0
  226. package/dist/enums/cost-center-create-request-budget-type.js +11 -0
  227. package/dist/enums/cost-center-create-request-budget-type.js.map +1 -0
  228. package/dist/enums/cost-center-create-request-budget-type.mjs +10 -0
  229. package/dist/enums/cost-center-create-request-budget-type.mjs.map +1 -0
  230. package/dist/enums/cost-center-restriction-create-request-type.d.mts +2 -1
  231. package/dist/enums/cost-center-restriction-create-request-type.d.ts +2 -1
  232. package/dist/enums/cost-center-restriction-create-request-type.js +1 -0
  233. package/dist/enums/cost-center-restriction-create-request-type.js.map +1 -1
  234. package/dist/enums/cost-center-restriction-create-request-type.mjs +1 -0
  235. package/dist/enums/cost-center-restriction-create-request-type.mjs.map +1 -1
  236. package/dist/enums/cost-center-restriction-type.d.mts +2 -1
  237. package/dist/enums/cost-center-restriction-type.d.ts +2 -1
  238. package/dist/enums/cost-center-restriction-type.js +1 -0
  239. package/dist/enums/cost-center-restriction-type.js.map +1 -1
  240. package/dist/enums/cost-center-restriction-type.mjs +1 -0
  241. package/dist/enums/cost-center-restriction-type.mjs.map +1 -1
  242. package/dist/enums/cost-center-restriction-update-request-type.d.mts +2 -1
  243. package/dist/enums/cost-center-restriction-update-request-type.d.ts +2 -1
  244. package/dist/enums/cost-center-restriction-update-request-type.js +1 -0
  245. package/dist/enums/cost-center-restriction-update-request-type.js.map +1 -1
  246. package/dist/enums/cost-center-restriction-update-request-type.mjs +1 -0
  247. package/dist/enums/cost-center-restriction-update-request-type.mjs.map +1 -1
  248. package/dist/enums/cost-center-update-request-budget-type.d.mts +6 -0
  249. package/dist/enums/cost-center-update-request-budget-type.d.ts +6 -0
  250. package/dist/enums/cost-center-update-request-budget-type.js +11 -0
  251. package/dist/enums/cost-center-update-request-budget-type.js.map +1 -0
  252. package/dist/enums/cost-center-update-request-budget-type.mjs +10 -0
  253. package/dist/enums/cost-center-update-request-budget-type.mjs.map +1 -0
  254. package/dist/enums/cost-centers-restrictions-create-type.d.mts +2 -1
  255. package/dist/enums/cost-centers-restrictions-create-type.d.ts +2 -1
  256. package/dist/enums/cost-centers-restrictions-create-type.js +1 -0
  257. package/dist/enums/cost-centers-restrictions-create-type.js.map +1 -1
  258. package/dist/enums/cost-centers-restrictions-create-type.mjs +1 -0
  259. package/dist/enums/cost-centers-restrictions-create-type.mjs.map +1 -1
  260. package/dist/enums/cost-centers-vocabulary-name.d.mts +8 -0
  261. package/dist/enums/cost-centers-vocabulary-name.d.ts +8 -0
  262. package/dist/enums/cost-centers-vocabulary-name.js +13 -0
  263. package/dist/enums/cost-centers-vocabulary-name.js.map +1 -0
  264. package/dist/enums/cost-centers-vocabulary-name.mjs +12 -0
  265. package/dist/enums/cost-centers-vocabulary-name.mjs.map +1 -0
  266. package/dist/enums/cost-centers-vocabulary-source.d.mts +5 -0
  267. package/dist/enums/cost-centers-vocabulary-source.d.ts +5 -0
  268. package/dist/enums/cost-centers-vocabulary-source.js +10 -0
  269. package/dist/enums/cost-centers-vocabulary-source.js.map +1 -0
  270. package/dist/enums/cost-centers-vocabulary-source.mjs +9 -0
  271. package/dist/enums/cost-centers-vocabulary-source.mjs.map +1 -0
  272. package/dist/enums/cost-centers-vocabulary-summary-name.d.mts +8 -0
  273. package/dist/enums/cost-centers-vocabulary-summary-name.d.ts +8 -0
  274. package/dist/enums/cost-centers-vocabulary-summary-name.js +13 -0
  275. package/dist/enums/cost-centers-vocabulary-summary-name.js.map +1 -0
  276. package/dist/enums/cost-centers-vocabulary-summary-name.mjs +12 -0
  277. package/dist/enums/cost-centers-vocabulary-summary-name.mjs.map +1 -0
  278. package/dist/enums/cost-centers-vocabulary-tone.d.mts +9 -0
  279. package/dist/enums/cost-centers-vocabulary-tone.d.ts +9 -0
  280. package/dist/enums/cost-centers-vocabulary-tone.js +14 -0
  281. package/dist/enums/cost-centers-vocabulary-tone.js.map +1 -0
  282. package/dist/enums/cost-centers-vocabulary-tone.mjs +13 -0
  283. package/dist/enums/cost-centers-vocabulary-tone.mjs.map +1 -0
  284. package/dist/enums/credit-limit-mode.d.mts +7 -0
  285. package/dist/enums/credit-limit-mode.d.ts +7 -0
  286. package/dist/enums/credit-limit-mode.js +12 -0
  287. package/dist/enums/credit-limit-mode.js.map +1 -0
  288. package/dist/enums/credit-limit-mode.mjs +11 -0
  289. package/dist/enums/credit-limit-mode.mjs.map +1 -0
  290. package/dist/enums/customers-vocabularies-get-name.d.mts +5 -1
  291. package/dist/enums/customers-vocabularies-get-name.d.ts +5 -1
  292. package/dist/enums/customers-vocabularies-get-name.js +4 -0
  293. package/dist/enums/customers-vocabularies-get-name.js.map +1 -1
  294. package/dist/enums/customers-vocabularies-get-name.mjs +4 -0
  295. package/dist/enums/customers-vocabularies-get-name.mjs.map +1 -1
  296. package/dist/enums/deleted.d.mts +5 -0
  297. package/dist/enums/deleted.d.ts +5 -0
  298. package/dist/enums/deleted.js +10 -0
  299. package/dist/enums/deleted.js.map +1 -0
  300. package/dist/enums/deleted.mjs +9 -0
  301. package/dist/enums/deleted.mjs.map +1 -0
  302. package/dist/enums/direct-order-status.d.mts +10 -0
  303. package/dist/enums/direct-order-status.d.ts +10 -0
  304. package/dist/enums/direct-order-status.js +15 -0
  305. package/dist/enums/direct-order-status.js.map +1 -0
  306. package/dist/enums/direct-order-status.mjs +14 -0
  307. package/dist/enums/direct-order-status.mjs.map +1 -0
  308. package/dist/enums/document-kind-tone.d.mts +9 -0
  309. package/dist/enums/document-kind-tone.d.ts +9 -0
  310. package/dist/enums/document-kind-tone.js +14 -0
  311. package/dist/enums/document-kind-tone.js.map +1 -0
  312. package/dist/enums/document-kind-tone.mjs +13 -0
  313. package/dist/enums/document-kind-tone.mjs.map +1 -0
  314. package/dist/enums/document-source.d.mts +6 -0
  315. package/dist/enums/document-source.d.ts +6 -0
  316. package/dist/enums/document-source.js +11 -0
  317. package/dist/enums/document-source.js.map +1 -0
  318. package/dist/enums/document-source.mjs +10 -0
  319. package/dist/enums/document-source.mjs.map +1 -0
  320. package/dist/enums/document-visibility.d.mts +6 -0
  321. package/dist/enums/document-visibility.d.ts +6 -0
  322. package/dist/enums/document-visibility.js +11 -0
  323. package/dist/enums/document-visibility.js.map +1 -0
  324. package/dist/enums/document-visibility.mjs +10 -0
  325. package/dist/enums/document-visibility.mjs.map +1 -0
  326. package/dist/enums/document-vocabulary-default-tone.d.mts +9 -0
  327. package/dist/enums/document-vocabulary-default-tone.d.ts +9 -0
  328. package/dist/enums/document-vocabulary-default-tone.js +14 -0
  329. package/dist/enums/document-vocabulary-default-tone.js.map +1 -0
  330. package/dist/enums/document-vocabulary-default-tone.mjs +13 -0
  331. package/dist/enums/document-vocabulary-default-tone.mjs.map +1 -0
  332. package/dist/enums/document-vocabulary-name.d.mts +6 -0
  333. package/dist/enums/document-vocabulary-name.d.ts +6 -0
  334. package/dist/enums/document-vocabulary-name.js +11 -0
  335. package/dist/enums/document-vocabulary-name.js.map +1 -0
  336. package/dist/enums/document-vocabulary-name.mjs +10 -0
  337. package/dist/enums/document-vocabulary-name.mjs.map +1 -0
  338. package/dist/enums/document-vocabulary-path-name.d.mts +6 -0
  339. package/dist/enums/document-vocabulary-path-name.d.ts +6 -0
  340. package/dist/enums/document-vocabulary-path-name.js +11 -0
  341. package/dist/enums/document-vocabulary-path-name.js.map +1 -0
  342. package/dist/enums/document-vocabulary-path-name.mjs +10 -0
  343. package/dist/enums/document-vocabulary-path-name.mjs.map +1 -0
  344. package/dist/enums/document-vocabulary-source.d.mts +6 -0
  345. package/dist/enums/document-vocabulary-source.d.ts +6 -0
  346. package/dist/enums/document-vocabulary-source.js +11 -0
  347. package/dist/enums/document-vocabulary-source.js.map +1 -0
  348. package/dist/enums/document-vocabulary-source.mjs +10 -0
  349. package/dist/enums/document-vocabulary-source.mjs.map +1 -0
  350. package/dist/enums/document-vocabulary-tone.d.mts +9 -0
  351. package/dist/enums/document-vocabulary-tone.d.ts +9 -0
  352. package/dist/enums/document-vocabulary-tone.js +14 -0
  353. package/dist/enums/document-vocabulary-tone.js.map +1 -0
  354. package/dist/enums/document-vocabulary-tone.mjs +13 -0
  355. package/dist/enums/document-vocabulary-tone.mjs.map +1 -0
  356. package/dist/enums/documents-documents-list-source.d.mts +6 -0
  357. package/dist/enums/documents-documents-list-source.d.ts +6 -0
  358. package/dist/enums/documents-documents-list-source.js +11 -0
  359. package/dist/enums/documents-documents-list-source.js.map +1 -0
  360. package/dist/enums/documents-documents-list-source.mjs +10 -0
  361. package/dist/enums/documents-documents-list-source.mjs.map +1 -0
  362. package/dist/enums/factor.d.mts +5 -0
  363. package/dist/enums/factor.d.ts +5 -0
  364. package/dist/enums/factor.js +10 -0
  365. package/dist/enums/factor.js.map +1 -0
  366. package/dist/enums/factor.mjs +9 -0
  367. package/dist/enums/factor.mjs.map +1 -0
  368. package/dist/enums/google-signals.d.mts +11 -0
  369. package/dist/enums/google-signals.d.ts +11 -0
  370. package/dist/enums/google-signals.js +16 -0
  371. package/dist/enums/google-signals.js.map +1 -0
  372. package/dist/enums/google-signals.mjs +15 -0
  373. package/dist/enums/google-signals.mjs.map +1 -0
  374. package/dist/enums/inventories-vocabularies-get-name.d.mts +1 -0
  375. package/dist/enums/inventories-vocabularies-get-name.d.ts +1 -0
  376. package/dist/enums/inventories-vocabularies-get-name.js +1 -0
  377. package/dist/enums/inventories-vocabularies-get-name.js.map +1 -1
  378. package/dist/enums/inventories-vocabularies-get-name.mjs +1 -0
  379. package/dist/enums/inventories-vocabularies-get-name.mjs.map +1 -1
  380. package/dist/enums/inventory-receive-warning-code.d.mts +5 -0
  381. package/dist/enums/inventory-receive-warning-code.d.ts +5 -0
  382. package/dist/enums/inventory-receive-warning-code.js +10 -0
  383. package/dist/enums/inventory-receive-warning-code.js.map +1 -0
  384. package/dist/enums/inventory-receive-warning-code.mjs +9 -0
  385. package/dist/enums/inventory-receive-warning-code.mjs.map +1 -0
  386. package/dist/enums/inventory-unorderable-reason.d.mts +7 -0
  387. package/dist/enums/inventory-unorderable-reason.d.ts +7 -0
  388. package/dist/enums/inventory-unorderable-reason.js +12 -0
  389. package/dist/enums/inventory-unorderable-reason.js.map +1 -0
  390. package/dist/enums/inventory-unorderable-reason.mjs +11 -0
  391. package/dist/enums/inventory-unorderable-reason.mjs.map +1 -0
  392. package/dist/enums/inventory-vocabulary-source.d.mts +2 -1
  393. package/dist/enums/inventory-vocabulary-source.d.ts +2 -1
  394. package/dist/enums/inventory-vocabulary-source.js +1 -0
  395. package/dist/enums/inventory-vocabulary-source.js.map +1 -1
  396. package/dist/enums/inventory-vocabulary-source.mjs +1 -0
  397. package/dist/enums/inventory-vocabulary-source.mjs.map +1 -1
  398. package/dist/enums/kind.d.mts +5 -3
  399. package/dist/enums/kind.d.ts +5 -3
  400. package/dist/enums/kind.js +5 -3
  401. package/dist/enums/kind.js.map +1 -1
  402. package/dist/enums/kind.mjs +5 -3
  403. package/dist/enums/kind.mjs.map +1 -1
  404. package/dist/enums/layout.d.mts +7 -0
  405. package/dist/enums/layout.d.ts +7 -0
  406. package/dist/enums/layout.js +12 -0
  407. package/dist/enums/layout.js.map +1 -0
  408. package/dist/enums/layout.mjs +11 -0
  409. package/dist/enums/layout.mjs.map +1 -0
  410. package/dist/enums/legal-basis-override.d.mts +7 -0
  411. package/dist/enums/legal-basis-override.d.ts +7 -0
  412. package/dist/enums/legal-basis-override.js +12 -0
  413. package/dist/enums/legal-basis-override.js.map +1 -0
  414. package/dist/enums/legal-basis-override.mjs +11 -0
  415. package/dist/enums/legal-basis-override.mjs.map +1 -0
  416. package/dist/enums/legal-basis.d.mts +7 -0
  417. package/dist/enums/legal-basis.d.ts +7 -0
  418. package/dist/enums/legal-basis.js +12 -0
  419. package/dist/enums/legal-basis.js.map +1 -0
  420. package/dist/enums/legal-basis.mjs +11 -0
  421. package/dist/enums/legal-basis.mjs.map +1 -0
  422. package/dist/enums/load.d.mts +7 -0
  423. package/dist/enums/load.d.ts +7 -0
  424. package/dist/enums/load.js +12 -0
  425. package/dist/enums/load.js.map +1 -0
  426. package/dist/enums/load.mjs +11 -0
  427. package/dist/enums/load.mjs.map +1 -0
  428. package/dist/enums/match-mode.d.mts +6 -0
  429. package/dist/enums/match-mode.d.ts +6 -0
  430. package/dist/enums/match-mode.js +11 -0
  431. package/dist/enums/match-mode.js.map +1 -0
  432. package/dist/enums/match-mode.mjs +10 -0
  433. package/dist/enums/match-mode.mjs.map +1 -0
  434. package/dist/enums/note-request-visibility.d.mts +6 -0
  435. package/dist/enums/note-request-visibility.d.ts +6 -0
  436. package/dist/enums/note-request-visibility.js +11 -0
  437. package/dist/enums/note-request-visibility.js.map +1 -0
  438. package/dist/enums/note-request-visibility.mjs +10 -0
  439. package/dist/enums/note-request-visibility.mjs.map +1 -0
  440. package/dist/enums/order-approval-mode.d.mts +7 -0
  441. package/dist/enums/order-approval-mode.d.ts +7 -0
  442. package/dist/enums/order-approval-mode.js +12 -0
  443. package/dist/enums/order-approval-mode.js.map +1 -0
  444. package/dist/enums/order-approval-mode.mjs +11 -0
  445. package/dist/enums/order-approval-mode.mjs.map +1 -0
  446. package/dist/enums/order-discount-effect-kind.d.mts +9 -0
  447. package/dist/enums/order-discount-effect-kind.d.ts +9 -0
  448. package/dist/enums/order-discount-effect-kind.js +14 -0
  449. package/dist/enums/order-discount-effect-kind.js.map +1 -0
  450. package/dist/enums/order-discount-effect-kind.mjs +13 -0
  451. package/dist/enums/order-discount-effect-kind.mjs.map +1 -0
  452. package/dist/enums/order-discount-placement.d.mts +7 -0
  453. package/dist/enums/order-discount-placement.d.ts +7 -0
  454. package/dist/enums/order-discount-placement.js +12 -0
  455. package/dist/enums/order-discount-placement.js.map +1 -0
  456. package/dist/enums/order-discount-placement.mjs +11 -0
  457. package/dist/enums/order-discount-placement.mjs.map +1 -0
  458. package/dist/enums/order-discount-source.d.mts +6 -0
  459. package/dist/enums/order-discount-source.d.ts +6 -0
  460. package/dist/enums/order-discount-source.js +11 -0
  461. package/dist/enums/order-discount-source.js.map +1 -0
  462. package/dist/enums/order-discount-source.mjs +10 -0
  463. package/dist/enums/order-discount-source.mjs.map +1 -0
  464. package/dist/enums/order-discount-target.d.mts +7 -0
  465. package/dist/enums/order-discount-target.d.ts +7 -0
  466. package/dist/enums/order-discount-target.js +12 -0
  467. package/dist/enums/order-discount-target.js.map +1 -0
  468. package/dist/enums/order-discount-target.mjs +11 -0
  469. package/dist/enums/order-discount-target.mjs.map +1 -0
  470. package/dist/enums/order-discount-value-type.d.mts +7 -0
  471. package/dist/enums/order-discount-value-type.d.ts +7 -0
  472. package/dist/enums/order-discount-value-type.js +12 -0
  473. package/dist/enums/order-discount-value-type.js.map +1 -0
  474. package/dist/enums/order-discount-value-type.mjs +11 -0
  475. package/dist/enums/order-discount-value-type.mjs.map +1 -0
  476. package/dist/enums/order-item-type.d.mts +2 -1
  477. package/dist/enums/order-item-type.d.ts +2 -1
  478. package/dist/enums/order-item-type.js +1 -0
  479. package/dist/enums/order-item-type.js.map +1 -1
  480. package/dist/enums/order-item-type.mjs +1 -0
  481. package/dist/enums/order-item-type.mjs.map +1 -1
  482. package/dist/enums/order-list-skip-reason.d.mts +6 -0
  483. package/dist/enums/order-list-skip-reason.d.ts +6 -0
  484. package/dist/enums/order-list-skip-reason.js +11 -0
  485. package/dist/enums/order-list-skip-reason.js.map +1 -0
  486. package/dist/enums/order-list-skip-reason.mjs +10 -0
  487. package/dist/enums/order-list-skip-reason.mjs.map +1 -0
  488. package/dist/enums/order-return-refund-mode.d.mts +6 -0
  489. package/dist/enums/order-return-refund-mode.d.ts +6 -0
  490. package/dist/enums/order-return-refund-mode.js +11 -0
  491. package/dist/enums/order-return-refund-mode.js.map +1 -0
  492. package/dist/enums/order-return-refund-mode.mjs +10 -0
  493. package/dist/enums/order-return-refund-mode.mjs.map +1 -0
  494. package/dist/enums/order-vocabulary-name.d.mts +7 -0
  495. package/dist/enums/order-vocabulary-name.d.ts +7 -0
  496. package/dist/enums/order-vocabulary-name.js +7 -0
  497. package/dist/enums/order-vocabulary-name.js.map +1 -1
  498. package/dist/enums/order-vocabulary-name.mjs +7 -0
  499. package/dist/enums/order-vocabulary-name.mjs.map +1 -1
  500. package/dist/enums/order-vocabulary-summary-name.d.mts +7 -0
  501. package/dist/enums/order-vocabulary-summary-name.d.ts +7 -0
  502. package/dist/enums/order-vocabulary-summary-name.js +7 -0
  503. package/dist/enums/order-vocabulary-summary-name.js.map +1 -1
  504. package/dist/enums/order-vocabulary-summary-name.mjs +7 -0
  505. package/dist/enums/order-vocabulary-summary-name.mjs.map +1 -1
  506. package/dist/enums/orders-vocabularies-get-name.d.mts +7 -0
  507. package/dist/enums/orders-vocabularies-get-name.d.ts +7 -0
  508. package/dist/enums/orders-vocabularies-get-name.js +7 -0
  509. package/dist/enums/orders-vocabularies-get-name.js.map +1 -1
  510. package/dist/enums/orders-vocabularies-get-name.mjs +7 -0
  511. package/dist/enums/orders-vocabularies-get-name.mjs.map +1 -1
  512. package/dist/enums/organization-credit-limit-mode.d.mts +7 -0
  513. package/dist/enums/organization-credit-limit-mode.d.ts +7 -0
  514. package/dist/enums/organization-credit-limit-mode.js +12 -0
  515. package/dist/enums/organization-credit-limit-mode.js.map +1 -0
  516. package/dist/enums/organization-credit-limit-mode.mjs +11 -0
  517. package/dist/enums/organization-credit-limit-mode.mjs.map +1 -0
  518. package/dist/enums/organization-shipping-advice.d.mts +6 -0
  519. package/dist/enums/organization-shipping-advice.d.ts +6 -0
  520. package/dist/enums/organization-shipping-advice.js +11 -0
  521. package/dist/enums/organization-shipping-advice.js.map +1 -0
  522. package/dist/enums/organization-shipping-advice.mjs +10 -0
  523. package/dist/enums/organization-shipping-advice.mjs.map +1 -0
  524. package/dist/enums/origin.d.mts +6 -0
  525. package/dist/enums/origin.d.ts +6 -0
  526. package/dist/enums/origin.js +11 -0
  527. package/dist/enums/origin.js.map +1 -0
  528. package/dist/enums/origin.mjs +10 -0
  529. package/dist/enums/origin.mjs.map +1 -0
  530. package/dist/enums/pages-seed-mode.d.mts +6 -0
  531. package/dist/enums/pages-seed-mode.d.ts +6 -0
  532. package/dist/enums/pages-seed-mode.js +11 -0
  533. package/dist/enums/pages-seed-mode.js.map +1 -0
  534. package/dist/enums/pages-seed-mode.mjs +10 -0
  535. package/dist/enums/pages-seed-mode.mjs.map +1 -0
  536. package/dist/enums/price-line-price-reason.d.mts +10 -0
  537. package/dist/enums/price-line-price-reason.d.ts +10 -0
  538. package/dist/enums/price-line-price-reason.js +15 -0
  539. package/dist/enums/price-line-price-reason.js.map +1 -0
  540. package/dist/enums/price-line-price-reason.mjs +14 -0
  541. package/dist/enums/price-line-price-reason.mjs.map +1 -0
  542. package/dist/enums/price-tax-unresolved-reason.d.mts +1 -0
  543. package/dist/enums/price-tax-unresolved-reason.d.ts +1 -0
  544. package/dist/enums/price-tax-unresolved-reason.js +1 -0
  545. package/dist/enums/price-tax-unresolved-reason.js.map +1 -1
  546. package/dist/enums/price-tax-unresolved-reason.mjs +1 -0
  547. package/dist/enums/price-tax-unresolved-reason.mjs.map +1 -1
  548. package/dist/enums/procurement-vocabularies-get-name.d.mts +14 -0
  549. package/dist/enums/procurement-vocabularies-get-name.d.ts +14 -0
  550. package/dist/enums/procurement-vocabularies-get-name.js +19 -0
  551. package/dist/enums/procurement-vocabularies-get-name.js.map +1 -0
  552. package/dist/enums/procurement-vocabularies-get-name.mjs +18 -0
  553. package/dist/enums/procurement-vocabularies-get-name.mjs.map +1 -0
  554. package/dist/enums/procurement-vocabulary-default-tone.d.mts +9 -0
  555. package/dist/enums/procurement-vocabulary-default-tone.d.ts +9 -0
  556. package/dist/enums/procurement-vocabulary-default-tone.js +14 -0
  557. package/dist/enums/procurement-vocabulary-default-tone.js.map +1 -0
  558. package/dist/enums/procurement-vocabulary-default-tone.mjs +13 -0
  559. package/dist/enums/procurement-vocabulary-default-tone.mjs.map +1 -0
  560. package/dist/enums/procurement-vocabulary-name.d.mts +14 -0
  561. package/dist/enums/procurement-vocabulary-name.d.ts +14 -0
  562. package/dist/enums/procurement-vocabulary-name.js +19 -0
  563. package/dist/enums/procurement-vocabulary-name.js.map +1 -0
  564. package/dist/enums/procurement-vocabulary-name.mjs +18 -0
  565. package/dist/enums/procurement-vocabulary-name.mjs.map +1 -0
  566. package/dist/enums/procurement-vocabulary-source.d.mts +5 -0
  567. package/dist/enums/procurement-vocabulary-source.d.ts +5 -0
  568. package/dist/enums/procurement-vocabulary-source.js +10 -0
  569. package/dist/enums/procurement-vocabulary-source.js.map +1 -0
  570. package/dist/enums/procurement-vocabulary-source.mjs +9 -0
  571. package/dist/enums/procurement-vocabulary-source.mjs.map +1 -0
  572. package/dist/enums/procurement-vocabulary-summary-name.d.mts +14 -0
  573. package/dist/enums/procurement-vocabulary-summary-name.d.ts +14 -0
  574. package/dist/enums/procurement-vocabulary-summary-name.js +19 -0
  575. package/dist/enums/procurement-vocabulary-summary-name.js.map +1 -0
  576. package/dist/enums/procurement-vocabulary-summary-name.mjs +18 -0
  577. package/dist/enums/procurement-vocabulary-summary-name.mjs.map +1 -0
  578. package/dist/enums/procurement-vocabulary-value-tone.d.mts +9 -0
  579. package/dist/enums/procurement-vocabulary-value-tone.d.ts +9 -0
  580. package/dist/enums/procurement-vocabulary-value-tone.js +14 -0
  581. package/dist/enums/procurement-vocabulary-value-tone.js.map +1 -0
  582. package/dist/enums/procurement-vocabulary-value-tone.mjs +13 -0
  583. package/dist/enums/procurement-vocabulary-value-tone.mjs.map +1 -0
  584. package/dist/enums/products-list-kind.d.mts +7 -0
  585. package/dist/enums/products-list-kind.d.ts +7 -0
  586. package/dist/enums/products-list-kind.js +12 -0
  587. package/dist/enums/products-list-kind.js.map +1 -0
  588. package/dist/enums/products-list-kind.mjs +11 -0
  589. package/dist/enums/products-list-kind.mjs.map +1 -0
  590. package/dist/enums/products-product-categories-list-source.d.mts +6 -0
  591. package/dist/enums/products-product-categories-list-source.d.ts +6 -0
  592. package/dist/enums/products-product-categories-list-source.js +11 -0
  593. package/dist/enums/products-product-categories-list-source.js.map +1 -0
  594. package/dist/enums/products-product-categories-list-source.mjs +10 -0
  595. package/dist/enums/products-product-categories-list-source.mjs.map +1 -0
  596. package/dist/enums/promotion-bundle-allocation.d.mts +6 -0
  597. package/dist/enums/promotion-bundle-allocation.d.ts +6 -0
  598. package/dist/enums/promotion-bundle-allocation.js +11 -0
  599. package/dist/enums/promotion-bundle-allocation.js.map +1 -0
  600. package/dist/enums/promotion-bundle-allocation.mjs +10 -0
  601. package/dist/enums/promotion-bundle-allocation.mjs.map +1 -0
  602. package/dist/enums/promotion-bundle-patch-allocation.d.mts +6 -0
  603. package/dist/enums/promotion-bundle-patch-allocation.d.ts +6 -0
  604. package/dist/enums/promotion-bundle-patch-allocation.js +11 -0
  605. package/dist/enums/promotion-bundle-patch-allocation.js.map +1 -0
  606. package/dist/enums/promotion-bundle-patch-allocation.mjs +10 -0
  607. package/dist/enums/promotion-bundle-patch-allocation.mjs.map +1 -0
  608. package/dist/enums/promotion-bundle-write-allocation.d.mts +6 -0
  609. package/dist/enums/promotion-bundle-write-allocation.d.ts +6 -0
  610. package/dist/enums/promotion-bundle-write-allocation.js +11 -0
  611. package/dist/enums/promotion-bundle-write-allocation.js.map +1 -0
  612. package/dist/enums/promotion-bundle-write-allocation.mjs +10 -0
  613. package/dist/enums/promotion-bundle-write-allocation.mjs.map +1 -0
  614. package/dist/enums/promotion-condition-kind.d.mts +6 -0
  615. package/dist/enums/promotion-condition-kind.d.ts +6 -0
  616. package/dist/enums/promotion-condition-kind.js +11 -0
  617. package/dist/enums/promotion-condition-kind.js.map +1 -0
  618. package/dist/enums/promotion-condition-kind.mjs +10 -0
  619. package/dist/enums/promotion-condition-kind.mjs.map +1 -0
  620. package/dist/enums/promotion-condition-match-mode.d.mts +6 -0
  621. package/dist/enums/promotion-condition-match-mode.d.ts +6 -0
  622. package/dist/enums/promotion-condition-match-mode.js +11 -0
  623. package/dist/enums/promotion-condition-match-mode.js.map +1 -0
  624. package/dist/enums/promotion-condition-match-mode.mjs +10 -0
  625. package/dist/enums/promotion-condition-match-mode.mjs.map +1 -0
  626. package/dist/enums/promotion-condition-match.d.mts +6 -0
  627. package/dist/enums/promotion-condition-match.d.ts +6 -0
  628. package/dist/enums/promotion-condition-match.js +11 -0
  629. package/dist/enums/promotion-condition-match.js.map +1 -0
  630. package/dist/enums/promotion-condition-match.mjs +10 -0
  631. package/dist/enums/promotion-condition-match.mjs.map +1 -0
  632. package/dist/enums/promotion-condition-patch-kind.d.mts +6 -0
  633. package/dist/enums/promotion-condition-patch-kind.d.ts +6 -0
  634. package/dist/enums/promotion-condition-patch-kind.js +11 -0
  635. package/dist/enums/promotion-condition-patch-kind.js.map +1 -0
  636. package/dist/enums/promotion-condition-patch-kind.mjs +10 -0
  637. package/dist/enums/promotion-condition-patch-kind.mjs.map +1 -0
  638. package/dist/enums/promotion-condition-patch-match-mode.d.mts +6 -0
  639. package/dist/enums/promotion-condition-patch-match-mode.d.ts +6 -0
  640. package/dist/enums/promotion-condition-patch-match-mode.js +11 -0
  641. package/dist/enums/promotion-condition-patch-match-mode.js.map +1 -0
  642. package/dist/enums/promotion-condition-patch-match-mode.mjs +10 -0
  643. package/dist/enums/promotion-condition-patch-match-mode.mjs.map +1 -0
  644. package/dist/enums/promotion-condition-write-kind.d.mts +6 -0
  645. package/dist/enums/promotion-condition-write-kind.d.ts +6 -0
  646. package/dist/enums/promotion-condition-write-kind.js +11 -0
  647. package/dist/enums/promotion-condition-write-kind.js.map +1 -0
  648. package/dist/enums/promotion-condition-write-kind.mjs +10 -0
  649. package/dist/enums/promotion-condition-write-kind.mjs.map +1 -0
  650. package/dist/enums/promotion-condition-write-match-mode.d.mts +6 -0
  651. package/dist/enums/promotion-condition-write-match-mode.d.ts +6 -0
  652. package/dist/enums/promotion-condition-write-match-mode.js +11 -0
  653. package/dist/enums/promotion-condition-write-match-mode.js.map +1 -0
  654. package/dist/enums/promotion-condition-write-match-mode.mjs +10 -0
  655. package/dist/enums/promotion-condition-write-match-mode.mjs.map +1 -0
  656. package/dist/enums/promotion-effect-kind.d.mts +10 -0
  657. package/dist/enums/promotion-effect-kind.d.ts +10 -0
  658. package/dist/enums/promotion-effect-kind.js +15 -0
  659. package/dist/enums/promotion-effect-kind.js.map +1 -0
  660. package/dist/enums/promotion-effect-kind.mjs +14 -0
  661. package/dist/enums/promotion-effect-kind.mjs.map +1 -0
  662. package/dist/enums/promotion-effect-patch-kind.d.mts +10 -0
  663. package/dist/enums/promotion-effect-patch-kind.d.ts +10 -0
  664. package/dist/enums/promotion-effect-patch-kind.js +15 -0
  665. package/dist/enums/promotion-effect-patch-kind.js.map +1 -0
  666. package/dist/enums/promotion-effect-patch-kind.mjs +14 -0
  667. package/dist/enums/promotion-effect-patch-kind.mjs.map +1 -0
  668. package/dist/enums/promotion-effect-patch-target-scope.d.mts +10 -0
  669. package/dist/enums/promotion-effect-patch-target-scope.d.ts +10 -0
  670. package/dist/enums/promotion-effect-patch-target-scope.js +15 -0
  671. package/dist/enums/promotion-effect-patch-target-scope.js.map +1 -0
  672. package/dist/enums/promotion-effect-patch-target-scope.mjs +14 -0
  673. package/dist/enums/promotion-effect-patch-target-scope.mjs.map +1 -0
  674. package/dist/enums/promotion-effect-patch-unit-choice.d.mts +8 -0
  675. package/dist/enums/promotion-effect-patch-unit-choice.d.ts +8 -0
  676. package/dist/enums/promotion-effect-patch-unit-choice.js +13 -0
  677. package/dist/enums/promotion-effect-patch-unit-choice.js.map +1 -0
  678. package/dist/enums/promotion-effect-patch-unit-choice.mjs +12 -0
  679. package/dist/enums/promotion-effect-patch-unit-choice.mjs.map +1 -0
  680. package/dist/enums/promotion-effect-patch-value-type.d.mts +7 -0
  681. package/dist/enums/promotion-effect-patch-value-type.d.ts +7 -0
  682. package/dist/enums/promotion-effect-patch-value-type.js +12 -0
  683. package/dist/enums/promotion-effect-patch-value-type.js.map +1 -0
  684. package/dist/enums/promotion-effect-patch-value-type.mjs +11 -0
  685. package/dist/enums/promotion-effect-patch-value-type.mjs.map +1 -0
  686. package/dist/enums/promotion-effect-target-scope.d.mts +10 -0
  687. package/dist/enums/promotion-effect-target-scope.d.ts +10 -0
  688. package/dist/enums/promotion-effect-target-scope.js +15 -0
  689. package/dist/enums/promotion-effect-target-scope.js.map +1 -0
  690. package/dist/enums/promotion-effect-target-scope.mjs +14 -0
  691. package/dist/enums/promotion-effect-target-scope.mjs.map +1 -0
  692. package/dist/enums/promotion-effect-unit-choice.d.mts +8 -0
  693. package/dist/enums/promotion-effect-unit-choice.d.ts +8 -0
  694. package/dist/enums/promotion-effect-unit-choice.js +13 -0
  695. package/dist/enums/promotion-effect-unit-choice.js.map +1 -0
  696. package/dist/enums/promotion-effect-unit-choice.mjs +12 -0
  697. package/dist/enums/promotion-effect-unit-choice.mjs.map +1 -0
  698. package/dist/enums/promotion-effect-value-type.d.mts +7 -0
  699. package/dist/enums/promotion-effect-value-type.d.ts +7 -0
  700. package/dist/enums/promotion-effect-value-type.js +12 -0
  701. package/dist/enums/promotion-effect-value-type.js.map +1 -0
  702. package/dist/enums/promotion-effect-value-type.mjs +11 -0
  703. package/dist/enums/promotion-effect-value-type.mjs.map +1 -0
  704. package/dist/enums/promotion-effect-write-kind.d.mts +10 -0
  705. package/dist/enums/promotion-effect-write-kind.d.ts +10 -0
  706. package/dist/enums/promotion-effect-write-kind.js +15 -0
  707. package/dist/enums/promotion-effect-write-kind.js.map +1 -0
  708. package/dist/enums/promotion-effect-write-kind.mjs +14 -0
  709. package/dist/enums/promotion-effect-write-kind.mjs.map +1 -0
  710. package/dist/enums/promotion-effect-write-target-scope.d.mts +10 -0
  711. package/dist/enums/promotion-effect-write-target-scope.d.ts +10 -0
  712. package/dist/enums/promotion-effect-write-target-scope.js +15 -0
  713. package/dist/enums/promotion-effect-write-target-scope.js.map +1 -0
  714. package/dist/enums/promotion-effect-write-target-scope.mjs +14 -0
  715. package/dist/enums/promotion-effect-write-target-scope.mjs.map +1 -0
  716. package/dist/enums/promotion-effect-write-unit-choice.d.mts +8 -0
  717. package/dist/enums/promotion-effect-write-unit-choice.d.ts +8 -0
  718. package/dist/enums/promotion-effect-write-unit-choice.js +13 -0
  719. package/dist/enums/promotion-effect-write-unit-choice.js.map +1 -0
  720. package/dist/enums/promotion-effect-write-unit-choice.mjs +12 -0
  721. package/dist/enums/promotion-effect-write-unit-choice.mjs.map +1 -0
  722. package/dist/enums/promotion-effect-write-value-type.d.mts +7 -0
  723. package/dist/enums/promotion-effect-write-value-type.d.ts +7 -0
  724. package/dist/enums/promotion-effect-write-value-type.js +12 -0
  725. package/dist/enums/promotion-effect-write-value-type.js.map +1 -0
  726. package/dist/enums/promotion-effect-write-value-type.mjs +11 -0
  727. package/dist/enums/promotion-effect-write-value-type.mjs.map +1 -0
  728. package/dist/enums/promotion-patch-condition-match.d.mts +6 -0
  729. package/dist/enums/promotion-patch-condition-match.d.ts +6 -0
  730. package/dist/enums/promotion-patch-condition-match.js +11 -0
  731. package/dist/enums/promotion-patch-condition-match.js.map +1 -0
  732. package/dist/enums/promotion-patch-condition-match.mjs +10 -0
  733. package/dist/enums/promotion-patch-condition-match.mjs.map +1 -0
  734. package/dist/enums/promotion-patch-reach.d.mts +6 -0
  735. package/dist/enums/promotion-patch-reach.d.ts +6 -0
  736. package/dist/enums/promotion-patch-reach.js +11 -0
  737. package/dist/enums/promotion-patch-reach.js.map +1 -0
  738. package/dist/enums/promotion-patch-reach.mjs +10 -0
  739. package/dist/enums/promotion-patch-reach.mjs.map +1 -0
  740. package/dist/enums/promotion-patch-recurrence-kind.d.mts +7 -0
  741. package/dist/enums/promotion-patch-recurrence-kind.d.ts +7 -0
  742. package/dist/enums/promotion-patch-recurrence-kind.js +12 -0
  743. package/dist/enums/promotion-patch-recurrence-kind.js.map +1 -0
  744. package/dist/enums/promotion-patch-recurrence-kind.mjs +11 -0
  745. package/dist/enums/promotion-patch-recurrence-kind.mjs.map +1 -0
  746. package/dist/enums/promotion-patch-return-behaviour.d.mts +6 -0
  747. package/dist/enums/promotion-patch-return-behaviour.d.ts +6 -0
  748. package/dist/enums/promotion-patch-return-behaviour.js +11 -0
  749. package/dist/enums/promotion-patch-return-behaviour.js.map +1 -0
  750. package/dist/enums/promotion-patch-return-behaviour.mjs +10 -0
  751. package/dist/enums/promotion-patch-return-behaviour.mjs.map +1 -0
  752. package/dist/enums/promotion-patch-status.d.mts +8 -0
  753. package/dist/enums/promotion-patch-status.d.ts +8 -0
  754. package/dist/enums/promotion-patch-status.js +13 -0
  755. package/dist/enums/promotion-patch-status.js.map +1 -0
  756. package/dist/enums/promotion-patch-status.mjs +12 -0
  757. package/dist/enums/promotion-patch-status.mjs.map +1 -0
  758. package/dist/enums/promotion-reach.d.mts +6 -0
  759. package/dist/enums/promotion-reach.d.ts +6 -0
  760. package/dist/enums/promotion-reach.js +11 -0
  761. package/dist/enums/promotion-reach.js.map +1 -0
  762. package/dist/enums/promotion-reach.mjs +10 -0
  763. package/dist/enums/promotion-reach.mjs.map +1 -0
  764. package/dist/enums/promotion-recurrence-kind.d.mts +7 -0
  765. package/dist/enums/promotion-recurrence-kind.d.ts +7 -0
  766. package/dist/enums/promotion-recurrence-kind.js +12 -0
  767. package/dist/enums/promotion-recurrence-kind.js.map +1 -0
  768. package/dist/enums/promotion-recurrence-kind.mjs +11 -0
  769. package/dist/enums/promotion-recurrence-kind.mjs.map +1 -0
  770. package/dist/enums/promotion-release-request-reason.d.mts +8 -0
  771. package/dist/enums/promotion-release-request-reason.d.ts +8 -0
  772. package/dist/enums/promotion-release-request-reason.js +13 -0
  773. package/dist/enums/promotion-release-request-reason.js.map +1 -0
  774. package/dist/enums/promotion-release-request-reason.mjs +12 -0
  775. package/dist/enums/promotion-release-request-reason.mjs.map +1 -0
  776. package/dist/enums/promotion-return-behaviour.d.mts +6 -0
  777. package/dist/enums/promotion-return-behaviour.d.ts +6 -0
  778. package/dist/enums/promotion-return-behaviour.js +11 -0
  779. package/dist/enums/promotion-return-behaviour.js.map +1 -0
  780. package/dist/enums/promotion-return-behaviour.mjs +10 -0
  781. package/dist/enums/promotion-return-behaviour.mjs.map +1 -0
  782. package/dist/enums/promotion-status.d.mts +8 -0
  783. package/dist/enums/promotion-status.d.ts +8 -0
  784. package/dist/enums/promotion-status.js +13 -0
  785. package/dist/enums/promotion-status.js.map +1 -0
  786. package/dist/enums/promotion-status.mjs +12 -0
  787. package/dist/enums/promotion-status.mjs.map +1 -0
  788. package/dist/enums/promotion-write-condition-match.d.mts +6 -0
  789. package/dist/enums/promotion-write-condition-match.d.ts +6 -0
  790. package/dist/enums/promotion-write-condition-match.js +11 -0
  791. package/dist/enums/promotion-write-condition-match.js.map +1 -0
  792. package/dist/enums/promotion-write-condition-match.mjs +10 -0
  793. package/dist/enums/promotion-write-condition-match.mjs.map +1 -0
  794. package/dist/enums/promotion-write-reach.d.mts +6 -0
  795. package/dist/enums/promotion-write-reach.d.ts +6 -0
  796. package/dist/enums/promotion-write-reach.js +11 -0
  797. package/dist/enums/promotion-write-reach.js.map +1 -0
  798. package/dist/enums/promotion-write-reach.mjs +10 -0
  799. package/dist/enums/promotion-write-reach.mjs.map +1 -0
  800. package/dist/enums/promotion-write-recurrence-kind.d.mts +7 -0
  801. package/dist/enums/promotion-write-recurrence-kind.d.ts +7 -0
  802. package/dist/enums/promotion-write-recurrence-kind.js +12 -0
  803. package/dist/enums/promotion-write-recurrence-kind.js.map +1 -0
  804. package/dist/enums/promotion-write-recurrence-kind.mjs +11 -0
  805. package/dist/enums/promotion-write-recurrence-kind.mjs.map +1 -0
  806. package/dist/enums/promotion-write-return-behaviour.d.mts +6 -0
  807. package/dist/enums/promotion-write-return-behaviour.d.ts +6 -0
  808. package/dist/enums/promotion-write-return-behaviour.js +11 -0
  809. package/dist/enums/promotion-write-return-behaviour.js.map +1 -0
  810. package/dist/enums/promotion-write-return-behaviour.mjs +10 -0
  811. package/dist/enums/promotion-write-return-behaviour.mjs.map +1 -0
  812. package/dist/enums/promotion-write-status.d.mts +8 -0
  813. package/dist/enums/promotion-write-status.d.ts +8 -0
  814. package/dist/enums/promotion-write-status.js +13 -0
  815. package/dist/enums/promotion-write-status.js.map +1 -0
  816. package/dist/enums/promotion-write-status.mjs +12 -0
  817. package/dist/enums/promotion-write-status.mjs.map +1 -0
  818. package/dist/enums/promotions-batches-create-status.d.mts +6 -0
  819. package/dist/enums/promotions-batches-create-status.d.ts +6 -0
  820. package/dist/enums/promotions-batches-create-status.js +11 -0
  821. package/dist/enums/promotions-batches-create-status.js.map +1 -0
  822. package/dist/enums/promotions-batches-create-status.mjs +10 -0
  823. package/dist/enums/promotions-batches-create-status.mjs.map +1 -0
  824. package/dist/enums/promotions-conditions-create-kind.d.mts +6 -0
  825. package/dist/enums/promotions-conditions-create-kind.d.ts +6 -0
  826. package/dist/enums/promotions-conditions-create-kind.js +11 -0
  827. package/dist/enums/promotions-conditions-create-kind.js.map +1 -0
  828. package/dist/enums/promotions-conditions-create-kind.mjs +10 -0
  829. package/dist/enums/promotions-conditions-create-kind.mjs.map +1 -0
  830. package/dist/enums/promotions-effects-create-kind.d.mts +10 -0
  831. package/dist/enums/promotions-effects-create-kind.d.ts +10 -0
  832. package/dist/enums/promotions-effects-create-kind.js +15 -0
  833. package/dist/enums/promotions-effects-create-kind.js.map +1 -0
  834. package/dist/enums/promotions-effects-create-kind.mjs +14 -0
  835. package/dist/enums/promotions-effects-create-kind.mjs.map +1 -0
  836. package/dist/enums/promotions-groups-create-mode.d.mts +7 -0
  837. package/dist/enums/promotions-groups-create-mode.d.ts +7 -0
  838. package/dist/enums/promotions-groups-create-mode.js +12 -0
  839. package/dist/enums/promotions-groups-create-mode.js.map +1 -0
  840. package/dist/enums/promotions-groups-create-mode.mjs +11 -0
  841. package/dist/enums/promotions-groups-create-mode.mjs.map +1 -0
  842. package/dist/enums/promotions-promotions-create-status.d.mts +8 -0
  843. package/dist/enums/promotions-promotions-create-status.d.ts +8 -0
  844. package/dist/enums/promotions-promotions-create-status.js +13 -0
  845. package/dist/enums/promotions-promotions-create-status.js.map +1 -0
  846. package/dist/enums/promotions-promotions-create-status.mjs +12 -0
  847. package/dist/enums/promotions-promotions-create-status.mjs.map +1 -0
  848. package/dist/enums/promotions-redemptions-release-reason.d.mts +8 -0
  849. package/dist/enums/promotions-redemptions-release-reason.d.ts +8 -0
  850. package/dist/enums/promotions-redemptions-release-reason.js +13 -0
  851. package/dist/enums/promotions-redemptions-release-reason.js.map +1 -0
  852. package/dist/enums/promotions-redemptions-release-reason.mjs +12 -0
  853. package/dist/enums/promotions-redemptions-release-reason.mjs.map +1 -0
  854. package/dist/enums/protocol.d.mts +6 -0
  855. package/dist/enums/protocol.d.ts +6 -0
  856. package/dist/enums/protocol.js +11 -0
  857. package/dist/enums/protocol.js.map +1 -0
  858. package/dist/enums/protocol.mjs +10 -0
  859. package/dist/enums/protocol.mjs.map +1 -0
  860. package/dist/enums/punchout-entry-probe-result-entry-probe-status.d.mts +12 -0
  861. package/dist/enums/punchout-entry-probe-result-entry-probe-status.d.ts +12 -0
  862. package/dist/enums/punchout-entry-probe-result-entry-probe-status.js +17 -0
  863. package/dist/enums/punchout-entry-probe-result-entry-probe-status.js.map +1 -0
  864. package/dist/enums/punchout-entry-probe-result-entry-probe-status.mjs +16 -0
  865. package/dist/enums/punchout-entry-probe-result-entry-probe-status.mjs.map +1 -0
  866. package/dist/enums/punchout-entry-test-result-protocol.d.mts +7 -0
  867. package/dist/enums/punchout-entry-test-result-protocol.d.ts +7 -0
  868. package/dist/enums/punchout-entry-test-result-protocol.js +12 -0
  869. package/dist/enums/punchout-entry-test-result-protocol.js.map +1 -0
  870. package/dist/enums/punchout-entry-test-result-protocol.mjs +11 -0
  871. package/dist/enums/punchout-entry-test-result-protocol.mjs.map +1 -0
  872. package/dist/enums/punchout-field-mapping-import-request-protocol.d.mts +6 -0
  873. package/dist/enums/punchout-field-mapping-import-request-protocol.d.ts +6 -0
  874. package/dist/enums/punchout-field-mapping-import-request-protocol.js +11 -0
  875. package/dist/enums/punchout-field-mapping-import-request-protocol.js.map +1 -0
  876. package/dist/enums/punchout-field-mapping-import-request-protocol.mjs +10 -0
  877. package/dist/enums/punchout-field-mapping-import-request-protocol.mjs.map +1 -0
  878. package/dist/enums/punchout-return-preview-protocol.d.mts +7 -0
  879. package/dist/enums/punchout-return-preview-protocol.d.ts +7 -0
  880. package/dist/enums/punchout-return-preview-protocol.js +12 -0
  881. package/dist/enums/punchout-return-preview-protocol.js.map +1 -0
  882. package/dist/enums/punchout-return-preview-protocol.mjs +11 -0
  883. package/dist/enums/punchout-return-preview-protocol.mjs.map +1 -0
  884. package/dist/enums/punchout-vocabularies-get-name.d.mts +7 -0
  885. package/dist/enums/punchout-vocabularies-get-name.d.ts +7 -0
  886. package/dist/enums/punchout-vocabularies-get-name.js +12 -0
  887. package/dist/enums/punchout-vocabularies-get-name.js.map +1 -0
  888. package/dist/enums/punchout-vocabularies-get-name.mjs +11 -0
  889. package/dist/enums/punchout-vocabularies-get-name.mjs.map +1 -0
  890. package/dist/enums/purpose-create-request-google-signals.d.mts +11 -0
  891. package/dist/enums/purpose-create-request-google-signals.d.ts +11 -0
  892. package/dist/enums/purpose-create-request-google-signals.js +16 -0
  893. package/dist/enums/purpose-create-request-google-signals.js.map +1 -0
  894. package/dist/enums/purpose-create-request-google-signals.mjs +15 -0
  895. package/dist/enums/purpose-create-request-google-signals.mjs.map +1 -0
  896. package/dist/enums/purpose-create-request-legal-basis.d.mts +7 -0
  897. package/dist/enums/purpose-create-request-legal-basis.d.ts +7 -0
  898. package/dist/enums/purpose-create-request-legal-basis.js +12 -0
  899. package/dist/enums/purpose-create-request-legal-basis.js.map +1 -0
  900. package/dist/enums/purpose-create-request-legal-basis.mjs +11 -0
  901. package/dist/enums/purpose-create-request-legal-basis.mjs.map +1 -0
  902. package/dist/enums/purpose-legal-basis.d.mts +7 -0
  903. package/dist/enums/purpose-legal-basis.d.ts +7 -0
  904. package/dist/enums/purpose-legal-basis.js +12 -0
  905. package/dist/enums/purpose-legal-basis.js.map +1 -0
  906. package/dist/enums/purpose-legal-basis.mjs +11 -0
  907. package/dist/enums/purpose-legal-basis.mjs.map +1 -0
  908. package/dist/enums/purpose-update-request-google-signals.d.mts +11 -0
  909. package/dist/enums/purpose-update-request-google-signals.d.ts +11 -0
  910. package/dist/enums/purpose-update-request-google-signals.js +16 -0
  911. package/dist/enums/purpose-update-request-google-signals.js.map +1 -0
  912. package/dist/enums/purpose-update-request-google-signals.mjs +15 -0
  913. package/dist/enums/purpose-update-request-google-signals.mjs.map +1 -0
  914. package/dist/enums/purpose-update-request-legal-basis.d.mts +7 -0
  915. package/dist/enums/purpose-update-request-legal-basis.d.ts +7 -0
  916. package/dist/enums/purpose-update-request-legal-basis.js +12 -0
  917. package/dist/enums/purpose-update-request-legal-basis.js.map +1 -0
  918. package/dist/enums/purpose-update-request-legal-basis.mjs +11 -0
  919. package/dist/enums/purpose-update-request-legal-basis.mjs.map +1 -0
  920. package/dist/enums/quote-attachment-direction.d.mts +6 -0
  921. package/dist/enums/quote-attachment-direction.d.ts +6 -0
  922. package/dist/enums/quote-attachment-direction.js +11 -0
  923. package/dist/enums/quote-attachment-direction.js.map +1 -0
  924. package/dist/enums/quote-attachment-direction.mjs +10 -0
  925. package/dist/enums/quote-attachment-direction.mjs.map +1 -0
  926. package/dist/enums/quote-attachment-visibility.d.mts +6 -0
  927. package/dist/enums/quote-attachment-visibility.d.ts +6 -0
  928. package/dist/enums/quote-attachment-visibility.js +11 -0
  929. package/dist/enums/quote-attachment-visibility.js.map +1 -0
  930. package/dist/enums/quote-attachment-visibility.mjs +10 -0
  931. package/dist/enums/quote-attachment-visibility.mjs.map +1 -0
  932. package/dist/enums/quote-detail-origin.d.mts +6 -0
  933. package/dist/enums/quote-detail-origin.d.ts +6 -0
  934. package/dist/enums/quote-detail-origin.js +11 -0
  935. package/dist/enums/quote-detail-origin.js.map +1 -0
  936. package/dist/enums/quote-detail-origin.mjs +10 -0
  937. package/dist/enums/quote-detail-origin.mjs.map +1 -0
  938. package/dist/enums/quote-detail-status.d.mts +12 -0
  939. package/dist/enums/quote-detail-status.d.ts +12 -0
  940. package/dist/enums/quote-detail-status.js +17 -0
  941. package/dist/enums/quote-detail-status.js.map +1 -0
  942. package/dist/enums/quote-detail-status.mjs +16 -0
  943. package/dist/enums/quote-detail-status.mjs.map +1 -0
  944. package/dist/enums/quote-event-visibility.d.mts +6 -0
  945. package/dist/enums/quote-event-visibility.d.ts +6 -0
  946. package/dist/enums/quote-event-visibility.js +11 -0
  947. package/dist/enums/quote-event-visibility.js.map +1 -0
  948. package/dist/enums/quote-event-visibility.mjs +10 -0
  949. package/dist/enums/quote-event-visibility.mjs.map +1 -0
  950. package/dist/enums/quote-item-decision.d.mts +7 -0
  951. package/dist/enums/quote-item-decision.d.ts +7 -0
  952. package/dist/enums/quote-item-decision.js +12 -0
  953. package/dist/enums/quote-item-decision.js.map +1 -0
  954. package/dist/enums/quote-item-decision.mjs +11 -0
  955. package/dist/enums/quote-item-decision.mjs.map +1 -0
  956. package/dist/enums/quote-item-price-reason.d.mts +10 -0
  957. package/dist/enums/quote-item-price-reason.d.ts +10 -0
  958. package/dist/enums/quote-item-price-reason.js +15 -0
  959. package/dist/enums/quote-item-price-reason.js.map +1 -0
  960. package/dist/enums/quote-item-price-reason.mjs +14 -0
  961. package/dist/enums/quote-item-price-reason.mjs.map +1 -0
  962. package/dist/enums/quote-line-input-price-reason.d.mts +10 -0
  963. package/dist/enums/quote-line-input-price-reason.d.ts +10 -0
  964. package/dist/enums/quote-line-input-price-reason.js +15 -0
  965. package/dist/enums/quote-line-input-price-reason.js.map +1 -0
  966. package/dist/enums/quote-line-input-price-reason.mjs +14 -0
  967. package/dist/enums/quote-line-input-price-reason.mjs.map +1 -0
  968. package/dist/enums/quote-origin.d.mts +6 -0
  969. package/dist/enums/quote-origin.d.ts +6 -0
  970. package/dist/enums/quote-origin.js +11 -0
  971. package/dist/enums/quote-origin.js.map +1 -0
  972. package/dist/enums/quote-origin.mjs +10 -0
  973. package/dist/enums/quote-origin.mjs.map +1 -0
  974. package/dist/enums/quote-status.d.mts +12 -0
  975. package/dist/enums/quote-status.d.ts +12 -0
  976. package/dist/enums/quote-status.js +17 -0
  977. package/dist/enums/quote-status.js.map +1 -0
  978. package/dist/enums/quote-status.mjs +16 -0
  979. package/dist/enums/quote-status.mjs.map +1 -0
  980. package/dist/enums/quotes-trail-attach-direction.d.mts +6 -0
  981. package/dist/enums/quotes-trail-attach-direction.d.ts +6 -0
  982. package/dist/enums/quotes-trail-attach-direction.js +11 -0
  983. package/dist/enums/quotes-trail-attach-direction.js.map +1 -0
  984. package/dist/enums/quotes-trail-attach-direction.mjs +10 -0
  985. package/dist/enums/quotes-trail-attach-direction.mjs.map +1 -0
  986. package/dist/enums/reach.d.mts +6 -0
  987. package/dist/enums/reach.d.ts +6 -0
  988. package/dist/enums/reach.js +11 -0
  989. package/dist/enums/reach.js.map +1 -0
  990. package/dist/enums/reach.mjs +10 -0
  991. package/dist/enums/reach.mjs.map +1 -0
  992. package/dist/enums/recurrence-kind.d.mts +7 -0
  993. package/dist/enums/recurrence-kind.d.ts +7 -0
  994. package/dist/enums/recurrence-kind.js +12 -0
  995. package/dist/enums/recurrence-kind.js.map +1 -0
  996. package/dist/enums/recurrence-kind.mjs +11 -0
  997. package/dist/enums/recurrence-kind.mjs.map +1 -0
  998. package/dist/enums/redemption-state.d.mts +7 -0
  999. package/dist/enums/redemption-state.d.ts +7 -0
  1000. package/dist/enums/redemption-state.js +12 -0
  1001. package/dist/enums/redemption-state.js.map +1 -0
  1002. package/dist/enums/redemption-state.mjs +11 -0
  1003. package/dist/enums/redemption-state.mjs.map +1 -0
  1004. package/dist/enums/return-behaviour.d.mts +6 -0
  1005. package/dist/enums/return-behaviour.d.ts +6 -0
  1006. package/dist/enums/return-behaviour.js +11 -0
  1007. package/dist/enums/return-behaviour.js.map +1 -0
  1008. package/dist/enums/return-behaviour.mjs +10 -0
  1009. package/dist/enums/return-behaviour.mjs.map +1 -0
  1010. package/dist/enums/sales-rep-vocabulary-default-tone.d.mts +9 -0
  1011. package/dist/enums/sales-rep-vocabulary-default-tone.d.ts +9 -0
  1012. package/dist/enums/sales-rep-vocabulary-default-tone.js +14 -0
  1013. package/dist/enums/sales-rep-vocabulary-default-tone.js.map +1 -0
  1014. package/dist/enums/sales-rep-vocabulary-default-tone.mjs +13 -0
  1015. package/dist/enums/sales-rep-vocabulary-default-tone.mjs.map +1 -0
  1016. package/dist/enums/sales-rep-vocabulary-source.d.mts +5 -0
  1017. package/dist/enums/sales-rep-vocabulary-source.d.ts +5 -0
  1018. package/dist/enums/sales-rep-vocabulary-source.js +10 -0
  1019. package/dist/enums/sales-rep-vocabulary-source.js.map +1 -0
  1020. package/dist/enums/sales-rep-vocabulary-source.mjs +9 -0
  1021. package/dist/enums/sales-rep-vocabulary-source.mjs.map +1 -0
  1022. package/dist/enums/sales-reps-vocabularies-get-name.d.mts +5 -0
  1023. package/dist/enums/sales-reps-vocabularies-get-name.d.ts +5 -0
  1024. package/dist/enums/sales-reps-vocabularies-get-name.js +10 -0
  1025. package/dist/enums/sales-reps-vocabularies-get-name.js.map +1 -0
  1026. package/dist/enums/sales-reps-vocabularies-get-name.mjs +9 -0
  1027. package/dist/enums/sales-reps-vocabularies-get-name.mjs.map +1 -0
  1028. package/dist/enums/seed-request-mode.d.mts +6 -0
  1029. package/dist/enums/seed-request-mode.d.ts +6 -0
  1030. package/dist/enums/seed-request-mode.js +11 -0
  1031. package/dist/enums/seed-request-mode.js.map +1 -0
  1032. package/dist/enums/seed-request-mode.mjs +10 -0
  1033. package/dist/enums/seed-request-mode.mjs.map +1 -0
  1034. package/dist/enums/seed-result-mode.d.mts +6 -0
  1035. package/dist/enums/seed-result-mode.d.ts +6 -0
  1036. package/dist/enums/seed-result-mode.js +11 -0
  1037. package/dist/enums/seed-result-mode.js.map +1 -0
  1038. package/dist/enums/seed-result-mode.mjs +10 -0
  1039. package/dist/enums/seed-result-mode.mjs.map +1 -0
  1040. package/dist/enums/segment-member-source.d.mts +2 -1
  1041. package/dist/enums/segment-member-source.d.ts +2 -1
  1042. package/dist/enums/segment-member-source.js +1 -0
  1043. package/dist/enums/segment-member-source.js.map +1 -1
  1044. package/dist/enums/segment-member-source.mjs +1 -0
  1045. package/dist/enums/segment-member-source.mjs.map +1 -1
  1046. package/dist/enums/shipping-advice.d.mts +6 -0
  1047. package/dist/enums/shipping-advice.d.ts +6 -0
  1048. package/dist/enums/shipping-advice.js +11 -0
  1049. package/dist/enums/shipping-advice.js.map +1 -0
  1050. package/dist/enums/shipping-advice.mjs +10 -0
  1051. package/dist/enums/shipping-advice.mjs.map +1 -0
  1052. package/dist/enums/shipping-tax-unresolved-reason.d.mts +2 -1
  1053. package/dist/enums/shipping-tax-unresolved-reason.d.ts +2 -1
  1054. package/dist/enums/shipping-tax-unresolved-reason.js +1 -0
  1055. package/dist/enums/shipping-tax-unresolved-reason.js.map +1 -1
  1056. package/dist/enums/shipping-tax-unresolved-reason.mjs +1 -0
  1057. package/dist/enums/shipping-tax-unresolved-reason.mjs.map +1 -1
  1058. package/dist/enums/source.d.mts +2 -1
  1059. package/dist/enums/source.d.ts +2 -1
  1060. package/dist/enums/source.js +1 -0
  1061. package/dist/enums/source.js.map +1 -1
  1062. package/dist/enums/source.mjs +1 -0
  1063. package/dist/enums/source.mjs.map +1 -1
  1064. package/dist/enums/stacking-group-mode.d.mts +7 -0
  1065. package/dist/enums/stacking-group-mode.d.ts +7 -0
  1066. package/dist/enums/stacking-group-mode.js +12 -0
  1067. package/dist/enums/stacking-group-mode.js.map +1 -0
  1068. package/dist/enums/stacking-group-mode.mjs +11 -0
  1069. package/dist/enums/stacking-group-mode.mjs.map +1 -0
  1070. package/dist/enums/stacking-group-patch-mode.d.mts +7 -0
  1071. package/dist/enums/stacking-group-patch-mode.d.ts +7 -0
  1072. package/dist/enums/stacking-group-patch-mode.js +12 -0
  1073. package/dist/enums/stacking-group-patch-mode.js.map +1 -0
  1074. package/dist/enums/stacking-group-patch-mode.mjs +11 -0
  1075. package/dist/enums/stacking-group-patch-mode.mjs.map +1 -0
  1076. package/dist/enums/stacking-group-write-mode.d.mts +7 -0
  1077. package/dist/enums/stacking-group-write-mode.d.ts +7 -0
  1078. package/dist/enums/stacking-group-write-mode.js +12 -0
  1079. package/dist/enums/stacking-group-write-mode.js.map +1 -0
  1080. package/dist/enums/stacking-group-write-mode.mjs +11 -0
  1081. package/dist/enums/stacking-group-write-mode.mjs.map +1 -0
  1082. package/dist/enums/submit-result-outcome.d.mts +2 -1
  1083. package/dist/enums/submit-result-outcome.d.ts +2 -1
  1084. package/dist/enums/submit-result-outcome.js +1 -0
  1085. package/dist/enums/submit-result-outcome.js.map +1 -1
  1086. package/dist/enums/submit-result-outcome.mjs +1 -0
  1087. package/dist/enums/submit-result-outcome.mjs.map +1 -1
  1088. package/dist/enums/surface.d.mts +8 -0
  1089. package/dist/enums/surface.d.ts +8 -0
  1090. package/dist/enums/surface.js +13 -0
  1091. package/dist/enums/surface.js.map +1 -0
  1092. package/dist/enums/surface.mjs +12 -0
  1093. package/dist/enums/surface.mjs.map +1 -0
  1094. package/dist/enums/tag-manager-container-check-reason.d.mts +7 -0
  1095. package/dist/enums/tag-manager-container-check-reason.d.ts +7 -0
  1096. package/dist/enums/tag-manager-container-check-reason.js +12 -0
  1097. package/dist/enums/tag-manager-container-check-reason.js.map +1 -0
  1098. package/dist/enums/tag-manager-container-check-reason.mjs +11 -0
  1099. package/dist/enums/tag-manager-container-check-reason.mjs.map +1 -0
  1100. package/dist/enums/tag-manager-marketing-tag-input-kind.d.mts +6 -0
  1101. package/dist/enums/tag-manager-marketing-tag-input-kind.d.ts +6 -0
  1102. package/dist/enums/tag-manager-marketing-tag-input-kind.js +11 -0
  1103. package/dist/enums/tag-manager-marketing-tag-input-kind.js.map +1 -0
  1104. package/dist/enums/tag-manager-marketing-tag-input-kind.mjs +10 -0
  1105. package/dist/enums/tag-manager-marketing-tag-input-kind.mjs.map +1 -0
  1106. package/dist/enums/tag-manager-marketing-tag-input-load.d.mts +7 -0
  1107. package/dist/enums/tag-manager-marketing-tag-input-load.d.ts +7 -0
  1108. package/dist/enums/tag-manager-marketing-tag-input-load.js +12 -0
  1109. package/dist/enums/tag-manager-marketing-tag-input-load.js.map +1 -0
  1110. package/dist/enums/tag-manager-marketing-tag-input-load.mjs +11 -0
  1111. package/dist/enums/tag-manager-marketing-tag-input-load.mjs.map +1 -0
  1112. package/dist/enums/tag-manager-marketing-tag-kind.d.mts +6 -0
  1113. package/dist/enums/tag-manager-marketing-tag-kind.d.ts +6 -0
  1114. package/dist/enums/tag-manager-marketing-tag-kind.js +11 -0
  1115. package/dist/enums/tag-manager-marketing-tag-kind.js.map +1 -0
  1116. package/dist/enums/tag-manager-marketing-tag-kind.mjs +10 -0
  1117. package/dist/enums/tag-manager-marketing-tag-kind.mjs.map +1 -0
  1118. package/dist/enums/tag-manager-marketing-tag-load.d.mts +7 -0
  1119. package/dist/enums/tag-manager-marketing-tag-load.d.ts +7 -0
  1120. package/dist/enums/tag-manager-marketing-tag-load.js +12 -0
  1121. package/dist/enums/tag-manager-marketing-tag-load.js.map +1 -0
  1122. package/dist/enums/tag-manager-marketing-tag-load.mjs +11 -0
  1123. package/dist/enums/tag-manager-marketing-tag-load.mjs.map +1 -0
  1124. package/dist/enums/tag-manager-tags-create-kind.d.mts +6 -0
  1125. package/dist/enums/tag-manager-tags-create-kind.d.ts +6 -0
  1126. package/dist/enums/tag-manager-tags-create-kind.js +11 -0
  1127. package/dist/enums/tag-manager-tags-create-kind.js.map +1 -0
  1128. package/dist/enums/tag-manager-tags-create-kind.mjs +10 -0
  1129. package/dist/enums/tag-manager-tags-create-kind.mjs.map +1 -0
  1130. package/dist/enums/tag-manager-trigger-input-kind.d.mts +6 -0
  1131. package/dist/enums/tag-manager-trigger-input-kind.d.ts +6 -0
  1132. package/dist/enums/tag-manager-trigger-input-kind.js +11 -0
  1133. package/dist/enums/tag-manager-trigger-input-kind.js.map +1 -0
  1134. package/dist/enums/tag-manager-trigger-input-kind.mjs +10 -0
  1135. package/dist/enums/tag-manager-trigger-input-kind.mjs.map +1 -0
  1136. package/dist/enums/tag-manager-trigger-kind.d.mts +6 -0
  1137. package/dist/enums/tag-manager-trigger-kind.d.ts +6 -0
  1138. package/dist/enums/tag-manager-trigger-kind.js +11 -0
  1139. package/dist/enums/tag-manager-trigger-kind.js.map +1 -0
  1140. package/dist/enums/tag-manager-trigger-kind.mjs +10 -0
  1141. package/dist/enums/tag-manager-trigger-kind.mjs.map +1 -0
  1142. package/dist/enums/tag-manager-triggers-create-kind.d.mts +6 -0
  1143. package/dist/enums/tag-manager-triggers-create-kind.d.ts +6 -0
  1144. package/dist/enums/tag-manager-triggers-create-kind.js +11 -0
  1145. package/dist/enums/tag-manager-triggers-create-kind.js.map +1 -0
  1146. package/dist/enums/tag-manager-triggers-create-kind.mjs +10 -0
  1147. package/dist/enums/tag-manager-triggers-create-kind.mjs.map +1 -0
  1148. package/dist/enums/tag-manager-variable-input-kind.d.mts +7 -0
  1149. package/dist/enums/tag-manager-variable-input-kind.d.ts +7 -0
  1150. package/dist/enums/tag-manager-variable-input-kind.js +12 -0
  1151. package/dist/enums/tag-manager-variable-input-kind.js.map +1 -0
  1152. package/dist/enums/tag-manager-variable-input-kind.mjs +11 -0
  1153. package/dist/enums/tag-manager-variable-input-kind.mjs.map +1 -0
  1154. package/dist/enums/tag-manager-variable-kind.d.mts +7 -0
  1155. package/dist/enums/tag-manager-variable-kind.d.ts +7 -0
  1156. package/dist/enums/tag-manager-variable-kind.js +12 -0
  1157. package/dist/enums/tag-manager-variable-kind.js.map +1 -0
  1158. package/dist/enums/tag-manager-variable-kind.mjs +11 -0
  1159. package/dist/enums/tag-manager-variable-kind.mjs.map +1 -0
  1160. package/dist/enums/tag-manager-variables-create-kind.d.mts +7 -0
  1161. package/dist/enums/tag-manager-variables-create-kind.d.ts +7 -0
  1162. package/dist/enums/tag-manager-variables-create-kind.js +12 -0
  1163. package/dist/enums/tag-manager-variables-create-kind.js.map +1 -0
  1164. package/dist/enums/tag-manager-variables-create-kind.mjs +11 -0
  1165. package/dist/enums/tag-manager-variables-create-kind.mjs.map +1 -0
  1166. package/dist/enums/target-scope.d.mts +10 -0
  1167. package/dist/enums/target-scope.d.ts +10 -0
  1168. package/dist/enums/target-scope.js +15 -0
  1169. package/dist/enums/target-scope.js.map +1 -0
  1170. package/dist/enums/target-scope.mjs +14 -0
  1171. package/dist/enums/target-scope.mjs.map +1 -0
  1172. package/dist/enums/unit-choice.d.mts +8 -0
  1173. package/dist/enums/unit-choice.d.ts +8 -0
  1174. package/dist/enums/unit-choice.js +13 -0
  1175. package/dist/enums/unit-choice.js.map +1 -0
  1176. package/dist/enums/unit-choice.mjs +12 -0
  1177. package/dist/enums/unit-choice.mjs.map +1 -0
  1178. package/dist/enums/value-type.d.mts +7 -0
  1179. package/dist/enums/value-type.d.ts +7 -0
  1180. package/dist/enums/value-type.js +12 -0
  1181. package/dist/enums/value-type.js.map +1 -0
  1182. package/dist/enums/value-type.mjs +11 -0
  1183. package/dist/enums/value-type.mjs.map +1 -0
  1184. package/dist/enums/vendor-create-request-legal-basis-override.d.mts +7 -0
  1185. package/dist/enums/vendor-create-request-legal-basis-override.d.ts +7 -0
  1186. package/dist/enums/vendor-create-request-legal-basis-override.js +12 -0
  1187. package/dist/enums/vendor-create-request-legal-basis-override.js.map +1 -0
  1188. package/dist/enums/vendor-create-request-legal-basis-override.mjs +11 -0
  1189. package/dist/enums/vendor-create-request-legal-basis-override.mjs.map +1 -0
  1190. package/dist/enums/vendor-legal-basis-override.d.mts +7 -0
  1191. package/dist/enums/vendor-legal-basis-override.d.ts +7 -0
  1192. package/dist/enums/vendor-legal-basis-override.js +12 -0
  1193. package/dist/enums/vendor-legal-basis-override.js.map +1 -0
  1194. package/dist/enums/vendor-legal-basis-override.mjs +11 -0
  1195. package/dist/enums/vendor-legal-basis-override.mjs.map +1 -0
  1196. package/dist/enums/vendor-update-request-legal-basis-override.d.mts +7 -0
  1197. package/dist/enums/vendor-update-request-legal-basis-override.d.ts +7 -0
  1198. package/dist/enums/vendor-update-request-legal-basis-override.js +12 -0
  1199. package/dist/enums/vendor-update-request-legal-basis-override.js.map +1 -0
  1200. package/dist/enums/vendor-update-request-legal-basis-override.mjs +11 -0
  1201. package/dist/enums/vendor-update-request-legal-basis-override.mjs.map +1 -0
  1202. package/dist/enums/visibility.d.mts +2 -2
  1203. package/dist/enums/visibility.d.ts +2 -2
  1204. package/dist/enums/visibility.js +2 -2
  1205. package/dist/enums/visibility.js.map +1 -1
  1206. package/dist/enums/visibility.mjs +2 -2
  1207. package/dist/enums/visibility.mjs.map +1 -1
  1208. package/dist/enums/voucher-batch-patch-status.d.mts +6 -0
  1209. package/dist/enums/voucher-batch-patch-status.d.ts +6 -0
  1210. package/dist/enums/voucher-batch-patch-status.js +11 -0
  1211. package/dist/enums/voucher-batch-patch-status.js.map +1 -0
  1212. package/dist/enums/voucher-batch-patch-status.mjs +10 -0
  1213. package/dist/enums/voucher-batch-patch-status.mjs.map +1 -0
  1214. package/dist/enums/voucher-batch-status.d.mts +6 -0
  1215. package/dist/enums/voucher-batch-status.d.ts +6 -0
  1216. package/dist/enums/voucher-batch-status.js +11 -0
  1217. package/dist/enums/voucher-batch-status.js.map +1 -0
  1218. package/dist/enums/voucher-batch-status.mjs +10 -0
  1219. package/dist/enums/voucher-batch-status.mjs.map +1 -0
  1220. package/dist/enums/voucher-batch-write-status.d.mts +6 -0
  1221. package/dist/enums/voucher-batch-write-status.d.ts +6 -0
  1222. package/dist/enums/voucher-batch-write-status.js +11 -0
  1223. package/dist/enums/voucher-batch-write-status.js.map +1 -0
  1224. package/dist/enums/voucher-batch-write-status.mjs +10 -0
  1225. package/dist/enums/voucher-batch-write-status.mjs.map +1 -0
  1226. package/dist/enums/voucher-patch-status.d.mts +6 -0
  1227. package/dist/enums/voucher-patch-status.d.ts +6 -0
  1228. package/dist/enums/voucher-patch-status.js +11 -0
  1229. package/dist/enums/voucher-patch-status.js.map +1 -0
  1230. package/dist/enums/voucher-patch-status.mjs +10 -0
  1231. package/dist/enums/voucher-patch-status.mjs.map +1 -0
  1232. package/dist/enums/voucher-status.d.mts +6 -0
  1233. package/dist/enums/voucher-status.d.ts +6 -0
  1234. package/dist/enums/voucher-status.js +11 -0
  1235. package/dist/enums/voucher-status.js.map +1 -0
  1236. package/dist/enums/voucher-status.mjs +10 -0
  1237. package/dist/enums/voucher-status.mjs.map +1 -0
  1238. package/dist/enums/voucher-write-status.d.mts +6 -0
  1239. package/dist/enums/voucher-write-status.d.ts +6 -0
  1240. package/dist/enums/voucher-write-status.js +11 -0
  1241. package/dist/enums/voucher-write-status.js.map +1 -0
  1242. package/dist/enums/voucher-write-status.mjs +10 -0
  1243. package/dist/enums/voucher-write-status.mjs.map +1 -0
  1244. package/dist/index.d.mts +210 -11
  1245. package/dist/index.d.ts +210 -11
  1246. package/dist/index.js +1040 -45
  1247. package/dist/index.js.map +1 -1
  1248. package/dist/index.mjs +210 -11
  1249. package/dist/index.mjs.map +1 -1
  1250. package/dist/models.d.mts +21477 -10044
  1251. package/dist/models.d.ts +21477 -10044
  1252. package/dist/services/apps.d.mts +142 -2
  1253. package/dist/services/apps.d.ts +142 -2
  1254. package/dist/services/avatars.d.mts +142 -2
  1255. package/dist/services/avatars.d.ts +142 -2
  1256. package/dist/services/carts-io.d.mts +142 -2
  1257. package/dist/services/carts-io.d.ts +142 -2
  1258. package/dist/services/carts-items.d.mts +149 -12
  1259. package/dist/services/carts-items.d.ts +149 -12
  1260. package/dist/services/carts-items.js +8 -13
  1261. package/dist/services/carts-items.js.map +1 -1
  1262. package/dist/services/carts-items.mjs +8 -13
  1263. package/dist/services/carts-items.mjs.map +1 -1
  1264. package/dist/services/carts.d.mts +154 -14
  1265. package/dist/services/carts.d.ts +154 -14
  1266. package/dist/services/carts.js.map +1 -1
  1267. package/dist/services/carts.mjs.map +1 -1
  1268. package/dist/services/channels.d.mts +142 -2
  1269. package/dist/services/channels.d.ts +142 -2
  1270. package/dist/services/consent-manager-delivery.d.mts +415 -0
  1271. package/dist/services/consent-manager-delivery.d.ts +415 -0
  1272. package/dist/services/consent-manager-delivery.js +55 -0
  1273. package/dist/services/consent-manager-delivery.js.map +1 -0
  1274. package/dist/services/consent-manager-delivery.mjs +54 -0
  1275. package/dist/services/consent-manager-delivery.mjs.map +1 -0
  1276. package/dist/services/consent-manager-policy.d.mts +540 -0
  1277. package/dist/services/consent-manager-policy.d.ts +540 -0
  1278. package/dist/services/consent-manager-policy.js +237 -0
  1279. package/dist/services/consent-manager-policy.js.map +1 -0
  1280. package/dist/services/consent-manager-policy.mjs +236 -0
  1281. package/dist/services/consent-manager-policy.mjs.map +1 -0
  1282. package/dist/services/consent-manager-records.d.mts +639 -0
  1283. package/dist/services/consent-manager-records.d.ts +639 -0
  1284. package/dist/services/consent-manager-records.js +389 -0
  1285. package/dist/services/consent-manager-records.js.map +1 -0
  1286. package/dist/services/consent-manager-records.mjs +388 -0
  1287. package/dist/services/consent-manager-records.mjs.map +1 -0
  1288. package/dist/services/consent-manager-registry.d.mts +1089 -0
  1289. package/dist/services/consent-manager-registry.d.ts +1089 -0
  1290. package/dist/services/consent-manager-registry.js +1075 -0
  1291. package/dist/services/consent-manager-registry.js.map +1 -0
  1292. package/dist/services/consent-manager-registry.mjs +1074 -0
  1293. package/dist/services/consent-manager-registry.mjs.map +1 -0
  1294. package/dist/services/cost-centers.d.mts +267 -17
  1295. package/dist/services/cost-centers.d.ts +267 -17
  1296. package/dist/services/cost-centers.js +217 -35
  1297. package/dist/services/cost-centers.js.map +1 -1
  1298. package/dist/services/cost-centers.mjs +217 -35
  1299. package/dist/services/cost-centers.mjs.map +1 -1
  1300. package/dist/services/customers-contacts.d.mts +212 -26
  1301. package/dist/services/customers-contacts.d.ts +212 -26
  1302. package/dist/services/customers-contacts.js +116 -45
  1303. package/dist/services/customers-contacts.js.map +1 -1
  1304. package/dist/services/customers-contacts.mjs +116 -45
  1305. package/dist/services/customers-contacts.mjs.map +1 -1
  1306. package/dist/services/customers-organizations.d.mts +436 -33
  1307. package/dist/services/customers-organizations.d.ts +436 -33
  1308. package/dist/services/customers-organizations.js +474 -67
  1309. package/dist/services/customers-organizations.js.map +1 -1
  1310. package/dist/services/customers-organizations.mjs +474 -67
  1311. package/dist/services/customers-organizations.mjs.map +1 -1
  1312. package/dist/services/customers-roles.d.mts +142 -2
  1313. package/dist/services/customers-roles.d.ts +142 -2
  1314. package/dist/services/customers-segments.d.mts +167 -15
  1315. package/dist/services/customers-segments.d.ts +167 -15
  1316. package/dist/services/customers-segments.js +30 -10
  1317. package/dist/services/customers-segments.js.map +1 -1
  1318. package/dist/services/customers-segments.mjs +30 -10
  1319. package/dist/services/customers-segments.mjs.map +1 -1
  1320. package/dist/services/customers-value-lists.d.mts +272 -7
  1321. package/dist/services/customers-value-lists.d.ts +272 -7
  1322. package/dist/services/customers-value-lists.js +195 -1
  1323. package/dist/services/customers-value-lists.js.map +1 -1
  1324. package/dist/services/customers-value-lists.mjs +195 -1
  1325. package/dist/services/customers-value-lists.mjs.map +1 -1
  1326. package/dist/services/customers.d.mts +207 -35
  1327. package/dist/services/customers.d.ts +207 -35
  1328. package/dist/services/customers.js +61 -15
  1329. package/dist/services/customers.js.map +1 -1
  1330. package/dist/services/customers.mjs +61 -15
  1331. package/dist/services/customers.mjs.map +1 -1
  1332. package/dist/services/documents-kinds.d.mts +631 -0
  1333. package/dist/services/documents-kinds.d.ts +631 -0
  1334. package/dist/services/documents-kinds.js +373 -0
  1335. package/dist/services/documents-kinds.js.map +1 -0
  1336. package/dist/services/documents-kinds.mjs +372 -0
  1337. package/dist/services/documents-kinds.mjs.map +1 -0
  1338. package/dist/services/documents-register.d.mts +697 -0
  1339. package/dist/services/documents-register.d.ts +697 -0
  1340. package/dist/services/documents-register.js +493 -0
  1341. package/dist/services/documents-register.js.map +1 -0
  1342. package/dist/services/documents-register.mjs +492 -0
  1343. package/dist/services/documents-register.mjs.map +1 -0
  1344. package/dist/services/events.d.mts +142 -2
  1345. package/dist/services/events.d.ts +142 -2
  1346. package/dist/services/forms.d.mts +151 -13
  1347. package/dist/services/forms.d.ts +151 -13
  1348. package/dist/services/forms.js +3 -13
  1349. package/dist/services/forms.js.map +1 -1
  1350. package/dist/services/forms.mjs +3 -13
  1351. package/dist/services/forms.mjs.map +1 -1
  1352. package/dist/services/health.d.mts +142 -2
  1353. package/dist/services/health.d.ts +142 -2
  1354. package/dist/services/inventories-locations.d.mts +160 -8
  1355. package/dist/services/inventories-locations.d.ts +160 -8
  1356. package/dist/services/inventories-locations.js +23 -3
  1357. package/dist/services/inventories-locations.js.map +1 -1
  1358. package/dist/services/inventories-locations.mjs +23 -3
  1359. package/dist/services/inventories-locations.mjs.map +1 -1
  1360. package/dist/services/inventories-reservations.d.mts +144 -4
  1361. package/dist/services/inventories-reservations.d.ts +144 -4
  1362. package/dist/services/inventories-reservations.js.map +1 -1
  1363. package/dist/services/inventories-reservations.mjs.map +1 -1
  1364. package/dist/services/inventories-stock.d.mts +386 -18
  1365. package/dist/services/inventories-stock.d.ts +386 -18
  1366. package/dist/services/inventories-stock.js +363 -13
  1367. package/dist/services/inventories-stock.js.map +1 -1
  1368. package/dist/services/inventories-stock.mjs +363 -13
  1369. package/dist/services/inventories-stock.mjs.map +1 -1
  1370. package/dist/services/io.d.mts +142 -2
  1371. package/dist/services/io.d.ts +142 -2
  1372. package/dist/services/locale.d.mts +142 -2
  1373. package/dist/services/locale.d.ts +142 -2
  1374. package/dist/services/markets.d.mts +213 -67
  1375. package/dist/services/markets.d.ts +213 -67
  1376. package/dist/services/markets.js +19 -15
  1377. package/dist/services/markets.js.map +1 -1
  1378. package/dist/services/markets.mjs +19 -15
  1379. package/dist/services/markets.mjs.map +1 -1
  1380. package/dist/services/messaging.d.mts +142 -2
  1381. package/dist/services/messaging.d.ts +142 -2
  1382. package/dist/services/orderlists.d.mts +277 -90
  1383. package/dist/services/orderlists.d.ts +277 -90
  1384. package/dist/services/orderlists.js +161 -77
  1385. package/dist/services/orderlists.js.map +1 -1
  1386. package/dist/services/orderlists.mjs +161 -77
  1387. package/dist/services/orderlists.mjs.map +1 -1
  1388. package/dist/services/orders.d.mts +389 -57
  1389. package/dist/services/orders.d.ts +389 -57
  1390. package/dist/services/orders.js +334 -35
  1391. package/dist/services/orders.js.map +1 -1
  1392. package/dist/services/orders.mjs +334 -35
  1393. package/dist/services/orders.mjs.map +1 -1
  1394. package/dist/services/pages-collaboration.d.mts +142 -2
  1395. package/dist/services/pages-collaboration.d.ts +142 -2
  1396. package/dist/services/pages-delivery.d.mts +171 -2
  1397. package/dist/services/pages-delivery.d.ts +171 -2
  1398. package/dist/services/pages-delivery.js +47 -0
  1399. package/dist/services/pages-delivery.js.map +1 -1
  1400. package/dist/services/pages-delivery.mjs +47 -0
  1401. package/dist/services/pages-delivery.mjs.map +1 -1
  1402. package/dist/services/pages-editor.d.mts +142 -2
  1403. package/dist/services/pages-editor.d.ts +142 -2
  1404. package/dist/services/pages.d.mts +365 -13
  1405. package/dist/services/pages.d.ts +365 -13
  1406. package/dist/services/pages.js +314 -7
  1407. package/dist/services/pages.js.map +1 -1
  1408. package/dist/services/pages.mjs +314 -7
  1409. package/dist/services/pages.mjs.map +1 -1
  1410. package/dist/services/payments-ledger.d.mts +178 -14
  1411. package/dist/services/payments-ledger.d.ts +178 -14
  1412. package/dist/services/payments-ledger.js +51 -11
  1413. package/dist/services/payments-ledger.js.map +1 -1
  1414. package/dist/services/payments-ledger.mjs +51 -11
  1415. package/dist/services/payments-ledger.mjs.map +1 -1
  1416. package/dist/services/payments-methods.d.mts +156 -16
  1417. package/dist/services/payments-methods.d.ts +156 -16
  1418. package/dist/services/payments-methods.js.map +1 -1
  1419. package/dist/services/payments-methods.mjs.map +1 -1
  1420. package/dist/services/payments-providers.d.mts +144 -4
  1421. package/dist/services/payments-providers.d.ts +144 -4
  1422. package/dist/services/payments-providers.js.map +1 -1
  1423. package/dist/services/payments-providers.mjs.map +1 -1
  1424. package/dist/services/prices.d.mts +237 -33
  1425. package/dist/services/prices.d.ts +237 -33
  1426. package/dist/services/prices.js +145 -45
  1427. package/dist/services/prices.js.map +1 -1
  1428. package/dist/services/prices.mjs +145 -45
  1429. package/dist/services/prices.mjs.map +1 -1
  1430. package/dist/services/procurement.d.mts +340 -28
  1431. package/dist/services/procurement.d.ts +340 -28
  1432. package/dist/services/procurement.js +313 -50
  1433. package/dist/services/procurement.js.map +1 -1
  1434. package/dist/services/procurement.mjs +313 -50
  1435. package/dist/services/procurement.mjs.map +1 -1
  1436. package/dist/services/products-assets.d.mts +185 -9
  1437. package/dist/services/products-assets.d.ts +185 -9
  1438. package/dist/services/products-assets.js +68 -8
  1439. package/dist/services/products-assets.js.map +1 -1
  1440. package/dist/services/products-assets.mjs +68 -8
  1441. package/dist/services/products-assets.mjs.map +1 -1
  1442. package/dist/services/products-categories.d.mts +198 -10
  1443. package/dist/services/products-categories.d.ts +198 -10
  1444. package/dist/services/products-categories.js +99 -19
  1445. package/dist/services/products-categories.js.map +1 -1
  1446. package/dist/services/products-categories.mjs +99 -19
  1447. package/dist/services/products-categories.mjs.map +1 -1
  1448. package/dist/services/products-data-model.d.mts +398 -24
  1449. package/dist/services/products-data-model.d.ts +398 -24
  1450. package/dist/services/products-data-model.js +439 -49
  1451. package/dist/services/products-data-model.js.map +1 -1
  1452. package/dist/services/products-data-model.mjs +439 -49
  1453. package/dist/services/products-data-model.mjs.map +1 -1
  1454. package/dist/services/products-references.d.mts +229 -8
  1455. package/dist/services/products-references.d.ts +229 -8
  1456. package/dist/services/products-references.js +146 -11
  1457. package/dist/services/products-references.js.map +1 -1
  1458. package/dist/services/products-references.mjs +146 -11
  1459. package/dist/services/products-references.mjs.map +1 -1
  1460. package/dist/services/products.d.mts +209 -23
  1461. package/dist/services/products.d.ts +209 -23
  1462. package/dist/services/products.js +89 -19
  1463. package/dist/services/products.js.map +1 -1
  1464. package/dist/services/products.mjs +89 -19
  1465. package/dist/services/products.mjs.map +1 -1
  1466. package/dist/services/promotions-evaluation.d.mts +551 -0
  1467. package/dist/services/promotions-evaluation.d.ts +551 -0
  1468. package/dist/services/promotions-evaluation.js +277 -0
  1469. package/dist/services/promotions-evaluation.js.map +1 -0
  1470. package/dist/services/promotions-evaluation.mjs +276 -0
  1471. package/dist/services/promotions-evaluation.mjs.map +1 -0
  1472. package/dist/services/promotions-promotions.d.mts +1642 -0
  1473. package/dist/services/promotions-promotions.d.ts +1642 -0
  1474. package/dist/services/promotions-promotions.js +1991 -0
  1475. package/dist/services/promotions-promotions.js.map +1 -0
  1476. package/dist/services/promotions-promotions.mjs +1990 -0
  1477. package/dist/services/promotions-promotions.mjs.map +1 -0
  1478. package/dist/services/promotions-redemptions.d.mts +596 -0
  1479. package/dist/services/promotions-redemptions.d.ts +596 -0
  1480. package/dist/services/promotions-redemptions.js +337 -0
  1481. package/dist/services/promotions-redemptions.js.map +1 -0
  1482. package/dist/services/promotions-redemptions.mjs +336 -0
  1483. package/dist/services/promotions-redemptions.mjs.map +1 -0
  1484. package/dist/services/promotions-vouchers.d.mts +994 -0
  1485. package/dist/services/promotions-vouchers.d.ts +994 -0
  1486. package/dist/services/promotions-vouchers.js +971 -0
  1487. package/dist/services/promotions-vouchers.js.map +1 -0
  1488. package/dist/services/promotions-vouchers.mjs +970 -0
  1489. package/dist/services/promotions-vouchers.mjs.map +1 -0
  1490. package/dist/services/punchout.d.mts +1582 -0
  1491. package/dist/services/punchout.d.ts +1582 -0
  1492. package/dist/services/punchout.js +1950 -0
  1493. package/dist/services/punchout.js.map +1 -0
  1494. package/dist/services/punchout.mjs +1949 -0
  1495. package/dist/services/punchout.mjs.map +1 -0
  1496. package/dist/services/quotes-acceptance.d.mts +480 -0
  1497. package/dist/services/quotes-acceptance.d.ts +480 -0
  1498. package/dist/services/quotes-acceptance.js +148 -0
  1499. package/dist/services/quotes-acceptance.js.map +1 -0
  1500. package/dist/services/quotes-acceptance.mjs +147 -0
  1501. package/dist/services/quotes-acceptance.mjs.map +1 -0
  1502. package/dist/services/quotes-pricing.d.mts +476 -0
  1503. package/dist/services/quotes-pricing.d.ts +476 -0
  1504. package/dist/services/quotes-pricing.js +144 -0
  1505. package/dist/services/quotes-pricing.js.map +1 -0
  1506. package/dist/services/quotes-pricing.mjs +143 -0
  1507. package/dist/services/quotes-pricing.mjs.map +1 -0
  1508. package/dist/services/quotes-quotes.d.mts +629 -0
  1509. package/dist/services/quotes-quotes.d.ts +629 -0
  1510. package/dist/services/quotes-quotes.js +386 -0
  1511. package/dist/services/quotes-quotes.js.map +1 -0
  1512. package/dist/services/quotes-quotes.mjs +385 -0
  1513. package/dist/services/quotes-quotes.mjs.map +1 -0
  1514. package/dist/services/quotes-ranges.d.mts +585 -0
  1515. package/dist/services/quotes-ranges.d.ts +585 -0
  1516. package/dist/services/quotes-ranges.js +301 -0
  1517. package/dist/services/quotes-ranges.js.map +1 -0
  1518. package/dist/services/quotes-ranges.mjs +300 -0
  1519. package/dist/services/quotes-ranges.mjs.map +1 -0
  1520. package/dist/services/quotes-trail.d.mts +459 -0
  1521. package/dist/services/quotes-trail.d.ts +459 -0
  1522. package/dist/services/quotes-trail.js +124 -0
  1523. package/dist/services/quotes-trail.js.map +1 -0
  1524. package/dist/services/quotes-trail.mjs +123 -0
  1525. package/dist/services/quotes-trail.mjs.map +1 -0
  1526. package/dist/services/sales-reps-acting-for.d.mts +510 -0
  1527. package/dist/services/sales-reps-acting-for.d.ts +510 -0
  1528. package/dist/services/sales-reps-acting-for.js +195 -0
  1529. package/dist/services/sales-reps-acting-for.js.map +1 -0
  1530. package/dist/services/sales-reps-acting-for.mjs +194 -0
  1531. package/dist/services/sales-reps-acting-for.mjs.map +1 -0
  1532. package/dist/services/sales-reps-coverage.d.mts +776 -0
  1533. package/dist/services/sales-reps-coverage.d.ts +776 -0
  1534. package/dist/services/sales-reps-coverage.js +578 -0
  1535. package/dist/services/sales-reps-coverage.js.map +1 -0
  1536. package/dist/services/sales-reps-coverage.mjs +577 -0
  1537. package/dist/services/sales-reps-coverage.mjs.map +1 -0
  1538. package/dist/services/sales-reps-roster.d.mts +595 -0
  1539. package/dist/services/sales-reps-roster.d.ts +595 -0
  1540. package/dist/services/sales-reps-roster.js +328 -0
  1541. package/dist/services/sales-reps-roster.js.map +1 -0
  1542. package/dist/services/sales-reps-roster.mjs +327 -0
  1543. package/dist/services/sales-reps-roster.mjs.map +1 -0
  1544. package/dist/services/search.d.mts +142 -2
  1545. package/dist/services/search.d.ts +142 -2
  1546. package/dist/services/settings.d.mts +142 -2
  1547. package/dist/services/settings.d.ts +142 -2
  1548. package/dist/services/shipping-carriers.d.mts +188 -21
  1549. package/dist/services/shipping-carriers.d.ts +188 -21
  1550. package/dist/services/shipping-carriers.js +61 -16
  1551. package/dist/services/shipping-carriers.js.map +1 -1
  1552. package/dist/services/shipping-carriers.mjs +61 -16
  1553. package/dist/services/shipping-carriers.mjs.map +1 -1
  1554. package/dist/services/shipping-methods.d.mts +214 -47
  1555. package/dist/services/shipping-methods.d.ts +214 -47
  1556. package/dist/services/shipping-methods.js +67 -22
  1557. package/dist/services/shipping-methods.js.map +1 -1
  1558. package/dist/services/shipping-methods.mjs +67 -22
  1559. package/dist/services/shipping-methods.mjs.map +1 -1
  1560. package/dist/services/shipping-value-lists.d.mts +142 -2
  1561. package/dist/services/shipping-value-lists.d.ts +142 -2
  1562. package/dist/services/sites.d.mts +142 -2
  1563. package/dist/services/sites.d.ts +142 -2
  1564. package/dist/services/storage.d.mts +151 -11
  1565. package/dist/services/storage.d.ts +151 -11
  1566. package/dist/services/storage.js.map +1 -1
  1567. package/dist/services/storage.mjs.map +1 -1
  1568. package/dist/services/tag-manager-container.d.mts +630 -0
  1569. package/dist/services/tag-manager-container.d.ts +630 -0
  1570. package/dist/services/tag-manager-container.js +371 -0
  1571. package/dist/services/tag-manager-container.js.map +1 -0
  1572. package/dist/services/tag-manager-container.mjs +370 -0
  1573. package/dist/services/tag-manager-container.mjs.map +1 -0
  1574. package/dist/services/tag-manager-delivery.d.mts +415 -0
  1575. package/dist/services/tag-manager-delivery.d.ts +415 -0
  1576. package/dist/services/tag-manager-delivery.js +55 -0
  1577. package/dist/services/tag-manager-delivery.js.map +1 -0
  1578. package/dist/services/tag-manager-delivery.mjs +54 -0
  1579. package/dist/services/tag-manager-delivery.mjs.map +1 -0
  1580. package/dist/services/tag-manager-tags.d.mts +983 -0
  1581. package/dist/services/tag-manager-tags.d.ts +983 -0
  1582. package/dist/services/tag-manager-tags.js +888 -0
  1583. package/dist/services/tag-manager-tags.js.map +1 -0
  1584. package/dist/services/tag-manager-tags.mjs +887 -0
  1585. package/dist/services/tag-manager-tags.mjs.map +1 -0
  1586. package/package.json +1 -1
  1587. package/dist/enums/contact-update-request-registration-status.d.mts +0 -6
  1588. package/dist/enums/contact-update-request-registration-status.d.ts +0 -6
  1589. package/dist/enums/contact-update-request-registration-status.js +0 -11
  1590. package/dist/enums/contact-update-request-registration-status.js.map +0 -1
  1591. package/dist/enums/contact-update-request-registration-status.mjs +0 -10
  1592. package/dist/enums/contact-update-request-registration-status.mjs.map +0 -1
  1593. package/dist/enums/market-readiness-blocking.d.mts +0 -8
  1594. package/dist/enums/market-readiness-blocking.d.ts +0 -8
  1595. package/dist/enums/market-readiness-blocking.js +0 -13
  1596. package/dist/enums/market-readiness-blocking.js.map +0 -1
  1597. package/dist/enums/market-readiness-blocking.mjs +0 -12
  1598. package/dist/enums/market-readiness-blocking.mjs.map +0 -1
  1599. package/dist/enums/market-readiness-report-blocking.d.mts +0 -8
  1600. package/dist/enums/market-readiness-report-blocking.d.ts +0 -8
  1601. package/dist/enums/market-readiness-report-blocking.js +0 -13
  1602. package/dist/enums/market-readiness-report-blocking.js.map +0 -1
  1603. package/dist/enums/market-readiness-report-blocking.mjs +0 -12
  1604. package/dist/enums/market-readiness-report-blocking.mjs.map +0 -1
  1605. package/dist/enums/market-readiness-report-warnings.d.mts +0 -8
  1606. package/dist/enums/market-readiness-report-warnings.d.ts +0 -8
  1607. package/dist/enums/market-readiness-report-warnings.js +0 -13
  1608. package/dist/enums/market-readiness-report-warnings.js.map +0 -1
  1609. package/dist/enums/market-readiness-report-warnings.mjs +0 -12
  1610. package/dist/enums/market-readiness-report-warnings.mjs.map +0 -1
  1611. package/dist/enums/market-readiness-warnings.d.mts +0 -8
  1612. package/dist/enums/market-readiness-warnings.d.ts +0 -8
  1613. package/dist/enums/market-readiness-warnings.js +0 -13
  1614. package/dist/enums/market-readiness-warnings.js.map +0 -1
  1615. package/dist/enums/market-readiness-warnings.mjs +0 -12
  1616. package/dist/enums/market-readiness-warnings.mjs.map +0 -1
  1617. package/dist/enums/order-customer-rollup-request-statuses.d.mts +0 -9
  1618. package/dist/enums/order-customer-rollup-request-statuses.d.ts +0 -9
  1619. package/dist/enums/order-customer-rollup-request-statuses.js +0 -14
  1620. package/dist/enums/order-customer-rollup-request-statuses.js.map +0 -1
  1621. package/dist/enums/order-customer-rollup-request-statuses.mjs +0 -13
  1622. package/dist/enums/order-customer-rollup-request-statuses.mjs.map +0 -1
  1623. package/dist/enums/order-customer-rollup-response-statuses.d.mts +0 -9
  1624. package/dist/enums/order-customer-rollup-response-statuses.d.ts +0 -9
  1625. package/dist/enums/order-customer-rollup-response-statuses.js +0 -14
  1626. package/dist/enums/order-customer-rollup-response-statuses.js.map +0 -1
  1627. package/dist/enums/order-customer-rollup-response-statuses.mjs +0 -13
  1628. package/dist/enums/order-customer-rollup-response-statuses.mjs.map +0 -1
  1629. package/dist/enums/products-assets-list-source.d.mts +0 -6
  1630. package/dist/enums/products-assets-list-source.d.ts +0 -6
  1631. package/dist/enums/products-assets-list-source.js +0 -11
  1632. package/dist/enums/products-assets-list-source.js.map +0 -1
  1633. package/dist/enums/products-assets-list-source.mjs +0 -10
  1634. package/dist/enums/products-assets-list-source.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/products-categories.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { RuleMatch } from '../enums/rule-match';\nimport { CategoriesRuleMatch } from '../enums/categories-rule-match';\nimport { CategoryRuleMatch } from '../enums/category-rule-match';\nimport { Source } from '../enums/source';\nimport { ProductCategoriesSource } from '../enums/product-categories-source';\n\nexport class ProductsCategories {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * Every column of `categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} params.limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} params.offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} params.code - Exact match on `code`. The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} params.parentId - Exact match on `parent_id`. The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} params.xpath - Exact match on `path`. A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} params.position - Exact match on `position`. Order among the siblings under the same parent, ascending.\n * @param {string} params.labels - Exact match on `labels`. The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.values - Exact match on `values`. Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.rules - Exact match on `rules`. The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {RuleMatch} params.ruleMatch - Exact match on `rule_match`. How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {string} params.rulesComputedAt - Exact match on `rules_computed_at`. When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {string} params.createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @param {string} params.updatedAt - Exact match on `updated_at`. When the row was last written. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesList(params?: { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, createdAt?: string, updatedAt?: string }): Promise<{}>;\n /**\n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * Every column of `categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} code - Exact match on `code`. The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} parentId - Exact match on `parent_id`. The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} xpath - Exact match on `path`. A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} position - Exact match on `position`. Order among the siblings under the same parent, ascending.\n * @param {string} labels - Exact match on `labels`. The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} values - Exact match on `values`. Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} rules - Exact match on `rules`. The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {RuleMatch} ruleMatch - Exact match on `rule_match`. How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {string} rulesComputedAt - Exact match on `rules_computed_at`. When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {string} createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @param {string} updatedAt - Exact match on `updated_at`. When the row was last written. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesList(limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, createdAt?: string, updatedAt?: string): Promise<{}>;\n productsCategoriesList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, createdAt?: string, updatedAt?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (string)?, (string)?, (number)?, (string)?, (string)?, (string)?, (RuleMatch)?, (string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, createdAt?: string, updatedAt?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, createdAt?: string, updatedAt?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n id: rest[2] as string,\n code: rest[3] as string,\n parentId: rest[4] as string,\n xpath: rest[5] as string,\n position: rest[6] as number,\n labels: rest[7] as string,\n values: rest[8] as string,\n rules: rest[9] as string,\n ruleMatch: rest[10] as RuleMatch,\n rulesComputedAt: rest[11] as string,\n createdAt: rest[12] as string,\n updatedAt: rest[13] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const id = params.id;\n const code = params.code;\n const parentId = params.parentId;\n const xpath = params.xpath;\n const position = params.position;\n const labels = params.labels;\n const values = params.values;\n const rules = params.rules;\n const ruleMatch = params.ruleMatch;\n const rulesComputedAt = params.rulesComputedAt;\n const createdAt = params.createdAt;\n const updatedAt = params.updatedAt;\n\n\n const apiPath = '/v1/products/categories';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof id !== 'undefined') {\n apiPayload['id'] = id;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof parentId !== 'undefined') {\n apiPayload['parent_id'] = parentId;\n }\n if (typeof xpath !== 'undefined') {\n apiPayload['path'] = xpath;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof values !== 'undefined') {\n apiPayload['values'] = values;\n }\n if (typeof rules !== 'undefined') {\n apiPayload['rules'] = rules;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n if (typeof rulesComputedAt !== 'undefined') {\n apiPayload['rules_computed_at'] = rulesComputedAt;\n }\n if (typeof createdAt !== 'undefined') {\n apiPayload['created_at'] = createdAt;\n }\n if (typeof updatedAt !== 'undefined') {\n apiPayload['updated_at'] = updatedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Creates one category and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * `code` is the only column the database refuses the row without; everything else has a default or is nullable. A second row with the same `code` answers 409.\n *\n * @param {string} params.code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {object} params.labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {string} params.parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} params.xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} params.position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} params.ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} params.rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} params.rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} params.values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesCreate(params: { code: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object }): Promise<Models.Categories>;\n /**\n * Creates one category and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * `code` is the only column the database refuses the row without; everything else has a default or is nullable. A second row with the same `code` answers 409.\n *\n * @param {string} code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {object} labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {string} parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesCreate(code: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object): Promise<Models.Categories>;\n productsCategoriesCreate(\n paramsOrFirst: { code: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object } | string,\n ...rest: [(object)?, (string)?, (string)?, (number)?, (CategoriesRuleMatch)?, (object)?, (string)?, (object)?] \n ): Promise<Models.Categories> {\n let params: { code: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object };\n } else {\n params = {\n code: paramsOrFirst as string,\n labels: rest[0] as object,\n parentId: rest[1] as string,\n xpath: rest[2] as string,\n position: rest[3] as number,\n ruleMatch: rest[4] as CategoriesRuleMatch,\n rules: rest[5] as object,\n rulesComputedAt: rest[6] as string,\n values: rest[7] as object \n };\n }\n \n const code = params.code;\n const labels = params.labels;\n const parentId = params.parentId;\n const xpath = params.xpath;\n const position = params.position;\n const ruleMatch = params.ruleMatch;\n const rules = params.rules;\n const rulesComputedAt = params.rulesComputedAt;\n const values = params.values;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/products/categories';\n const apiPayload: Payload = {};\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof parentId !== 'undefined') {\n apiPayload['parent_id'] = parentId;\n }\n if (typeof xpath !== 'undefined') {\n apiPayload['path'] = xpath;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n if (typeof rules !== 'undefined') {\n apiPayload['rules'] = rules;\n }\n if (typeof rulesComputedAt !== 'undefined') {\n apiPayload['rules_computed_at'] = rulesComputedAt;\n }\n if (typeof values !== 'undefined') {\n apiPayload['values'] = values;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * What the nightly `recompute-category-rules` schedule calls, and the call to reach for after a bulk import has changed what the rules select. Same sync as the single-category recompute, applied to every category with non-null rules. The whole run shares ONE budget: a category the budget no longer reaches is reported as `skipped` and picked up by the next run, and a failing category is reported in its result entry instead of aborting the run.\n *\n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesRulesRecomputeAll(params: { data: object }): Promise<{}>;\n /**\n * What the nightly `recompute-category-rules` schedule calls, and the call to reach for after a bulk import has changed what the rules select. Same sync as the single-category recompute, applied to every category with non-null rules. The whole run shares ONE budget: a category the budget no longer reaches is reported as `skipped` and picked up by the next run, and a failing category is reported in its result entry instead of aborting the run.\n *\n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesRulesRecomputeAll(data: object): Promise<{}>;\n productsCategoriesRulesRecomputeAll(\n paramsOrFirst: { data: object } | object \n ): Promise<{}> {\n let params: { data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('data' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { data: object };\n } else {\n params = {\n data: paramsOrFirst as object \n };\n }\n \n const data = params.data;\n\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/products/categories/rules/recompute-all';\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Dry-runs a rule: how many products it selects, plus a sample of up to ten, and it WRITES NOTHING. Evaluates the rule in the request body against the live catalog WITHOUT touching product_categories — this powers the cockpit's \"matches N products\" preview while an operator edits a rule. Soft-deleted products are excluded. Counting is delegated to the database, never enumerated: a rule that compiles to a single query is answered by one exact-count request whatever its match set. A rule that needs several queries (rule_match \"any\", or a repeated column such as a range) is combined in the app and stops at `cap` ids — check `capped` before showing `count` as a total.\n *\n * @param {string} params.categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {Models.CategoryRuleCondition[]} params.conditions - Between 1 and 25 conditions — a rule is a selector, not a query language. An empty list is a 400, not \"everything\".\n * @param {CategoryRuleMatch} params.ruleMatch - 'all' ANDs every condition (default), 'any' ORs them.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesRulesPreview(params: { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch }): Promise<{}>;\n /**\n * Dry-runs a rule: how many products it selects, plus a sample of up to ten, and it WRITES NOTHING. Evaluates the rule in the request body against the live catalog WITHOUT touching product_categories — this powers the cockpit's \"matches N products\" preview while an operator edits a rule. Soft-deleted products are excluded. Counting is delegated to the database, never enumerated: a rule that compiles to a single query is answered by one exact-count request whatever its match set. A rule that needs several queries (rule_match \"any\", or a repeated column such as a range) is combined in the app and stops at `cap` ids — check `capped` before showing `count` as a total.\n *\n * @param {string} categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {Models.CategoryRuleCondition[]} conditions - Between 1 and 25 conditions — a rule is a selector, not a query language. An empty list is a 400, not \"everything\".\n * @param {CategoryRuleMatch} ruleMatch - 'all' ANDs every condition (default), 'any' ORs them.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesRulesPreview(categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch): Promise<{}>;\n productsCategoriesRulesPreview(\n paramsOrFirst: { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch } | string,\n ...rest: [(Models.CategoryRuleCondition[])?, (CategoryRuleMatch)?] \n ): Promise<{}> {\n let params: { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch };\n } else {\n params = {\n categoryId: paramsOrFirst as string,\n conditions: rest[0] as Models.CategoryRuleCondition[],\n ruleMatch: rest[1] as CategoryRuleMatch \n };\n }\n \n const categoryId = params.categoryId;\n const conditions = params.conditions;\n const ruleMatch = params.ruleMatch;\n\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n if (typeof conditions === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"conditions\"');\n }\n\n const apiPath = '/v1/products/categories/{category_id}/rules/preview'.replace('{category_id}', categoryId);\n const apiPayload: Payload = {};\n if (typeof conditions !== 'undefined') {\n apiPayload['conditions'] = conditions;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Syncs one category's rule-derived memberships to what its stored rule selects today. Evaluates categories.rules (NOT the request body), then inserts the newly matching products as source='rule' rows and deletes the rule rows that no longer match. Manual (source='manual') memberships are never inserted, deleted or shadowed. Stamps categories.rules_computed_at.\n * \n * A large category does NOT finish in one call: the run stops when its wall-clock budget is spent and answers `done: false` with the `cursor` to send back, so drive it in a loop until `done` is true.\n *\n * @param {string} params.categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.cursor - The `cursor` a previous call returned, to continue that pass. Send `null` explicitly to restart from the beginning; omit the field to let the app decide (resume if a pass is in flight, otherwise start fresh). Anything that is not a string or null is a 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CategoryRecomputeResult>}\n */\n productsCategoriesRulesRecompute(params: { categoryId: string, cursor?: string }): Promise<Models.CategoryRecomputeResult>;\n /**\n * Syncs one category's rule-derived memberships to what its stored rule selects today. Evaluates categories.rules (NOT the request body), then inserts the newly matching products as source='rule' rows and deletes the rule rows that no longer match. Manual (source='manual') memberships are never inserted, deleted or shadowed. Stamps categories.rules_computed_at.\n * \n * A large category does NOT finish in one call: the run stops when its wall-clock budget is spent and answers `done: false` with the `cursor` to send back, so drive it in a loop until `done` is true.\n *\n * @param {string} categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} cursor - The `cursor` a previous call returned, to continue that pass. Send `null` explicitly to restart from the beginning; omit the field to let the app decide (resume if a pass is in flight, otherwise start fresh). Anything that is not a string or null is a 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CategoryRecomputeResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesRulesRecompute(categoryId: string, cursor?: string): Promise<Models.CategoryRecomputeResult>;\n productsCategoriesRulesRecompute(\n paramsOrFirst: { categoryId: string, cursor?: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.CategoryRecomputeResult> {\n let params: { categoryId: string, cursor?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { categoryId: string, cursor?: string };\n } else {\n params = {\n categoryId: paramsOrFirst as string,\n cursor: rest[0] as string \n };\n }\n \n const categoryId = params.categoryId;\n const cursor = params.cursor;\n\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n\n const apiPath = '/v1/products/categories/{category_id}/rules/recompute'.replace('{category_id}', categoryId);\n const apiPayload: Payload = {};\n if (typeof cursor !== 'undefined') {\n apiPayload['cursor'] = cursor;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Deletes one category by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * It takes what hangs off it: product category memberships (`category_id`) are deleted with it. `categories.parent_id` is set to null instead, so the rows that pointed at it survive the delete rather than going with it.\n * \n * An id no category of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} params.id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesDelete(params: { id: string }): Promise<{}>;\n /**\n * Deletes one category by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * It takes what hangs off it: product category memberships (`category_id`) are deleted with it. `categories.parent_id` is set to null instead, so the rows that pointed at it survive the delete rather than going with it.\n * \n * An id no category of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesDelete(id: string): Promise<{}>;\n productsCategoriesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Reads one category by its id — the whole row, every column, as it is stored.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * An id no category of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} params.id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesGet(params: { id: string }): Promise<Models.Categories>;\n /**\n * Reads one category by its id — the whole row, every column, as it is stored.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * An id no category of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesGet(id: string): Promise<Models.Categories>;\n productsCategoriesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Categories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Updates one category by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `code` answers 409.\n *\n * @param {string} params.id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {object} params.labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {string} params.parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} params.xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} params.position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} params.ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} params.rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} params.rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} params.values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesUpdate(params: { id: string, code?: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object }): Promise<Models.Categories>;\n /**\n * Updates one category by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `code` answers 409.\n *\n * @param {string} id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {object} labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {string} parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesUpdate(id: string, code?: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object): Promise<Models.Categories>;\n productsCategoriesUpdate(\n paramsOrFirst: { id: string, code?: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object } | string,\n ...rest: [(string)?, (object)?, (string)?, (string)?, (number)?, (CategoriesRuleMatch)?, (object)?, (string)?, (object)?] \n ): Promise<Models.Categories> {\n let params: { id: string, code?: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, code?: string, labels?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, values?: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n code: rest[0] as string,\n labels: rest[1] as object,\n parentId: rest[2] as string,\n xpath: rest[3] as string,\n position: rest[4] as number,\n ruleMatch: rest[5] as CategoriesRuleMatch,\n rules: rest[6] as object,\n rulesComputedAt: rest[7] as string,\n values: rest[8] as object \n };\n }\n \n const id = params.id;\n const code = params.code;\n const labels = params.labels;\n const parentId = params.parentId;\n const xpath = params.xpath;\n const position = params.position;\n const ruleMatch = params.ruleMatch;\n const rules = params.rules;\n const rulesComputedAt = params.rulesComputedAt;\n const values = params.values;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof parentId !== 'undefined') {\n apiPayload['parent_id'] = parentId;\n }\n if (typeof xpath !== 'undefined') {\n apiPayload['path'] = xpath;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n if (typeof rules !== 'undefined') {\n apiPayload['rules'] = rules;\n }\n if (typeof rulesComputedAt !== 'undefined') {\n apiPayload['rules_computed_at'] = rulesComputedAt;\n }\n if (typeof values !== 'undefined') {\n apiPayload['values'] = values;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * Every column of `product_categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} params.limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} params.offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} params.productId - Exact match on `product_id`. The product filed into the category. Deleting the product deletes the membership with it.\n * @param {string} params.categoryId - Exact match on `category_id`. The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} params.position - Exact match on `position`. Sort order of this product inside the category.\n * @param {Source} params.source - Exact match on `source`. How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @param {string} params.createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductCategoriesList(params?: { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: Source, createdAt?: string }): Promise<{}>;\n /**\n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * Every column of `product_categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} productId - Exact match on `product_id`. The product filed into the category. Deleting the product deletes the membership with it.\n * @param {string} categoryId - Exact match on `category_id`. The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} position - Exact match on `position`. Sort order of this product inside the category.\n * @param {Source} source - Exact match on `source`. How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @param {string} createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesList(limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: Source, createdAt?: string): Promise<{}>;\n productsProductCategoriesList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: Source, createdAt?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (string)?, (number)?, (Source)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: Source, createdAt?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: Source, createdAt?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n id: rest[2] as string,\n productId: rest[3] as string,\n categoryId: rest[4] as string,\n position: rest[5] as number,\n source: rest[6] as Source,\n createdAt: rest[7] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const id = params.id;\n const productId = params.productId;\n const categoryId = params.categoryId;\n const position = params.position;\n const source = params.source;\n const createdAt = params.createdAt;\n\n\n const apiPath = '/v1/products/product_categories';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof id !== 'undefined') {\n apiPayload['id'] = id;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n if (typeof createdAt !== 'undefined') {\n apiPayload['created_at'] = createdAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Creates one product category membership and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * `product_id` and `category_id` are the only columns the database refuses the row without; everything else has a default or is nullable. A second row with the same `product_id` and `category_id` answers 409.\n *\n * @param {string} params.categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {string} params.productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {number} params.position - Sort order of this product inside the category.\n * @param {ProductCategoriesSource} params.source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesCreate(params: { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource }): Promise<Models.ProductCategories>;\n /**\n * Creates one product category membership and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * `product_id` and `category_id` are the only columns the database refuses the row without; everything else has a default or is nullable. A second row with the same `product_id` and `category_id` answers 409.\n *\n * @param {string} categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {string} productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {number} position - Sort order of this product inside the category.\n * @param {ProductCategoriesSource} source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesCreate(categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource): Promise<Models.ProductCategories>;\n productsProductCategoriesCreate(\n paramsOrFirst: { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource } | string,\n ...rest: [(string)?, (number)?, (ProductCategoriesSource)?] \n ): Promise<Models.ProductCategories> {\n let params: { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource };\n } else {\n params = {\n categoryId: paramsOrFirst as string,\n productId: rest[0] as string,\n position: rest[1] as number,\n source: rest[2] as ProductCategoriesSource \n };\n }\n \n const categoryId = params.categoryId;\n const productId = params.productId;\n const position = params.position;\n const source = params.source;\n\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n if (typeof productId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"productId\"');\n }\n\n const apiPath = '/v1/products/product_categories';\n const apiPayload: Payload = {};\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Deletes one product category membership by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * Nothing in this schema references it, so nothing else changes.\n * \n * An id no product category membership of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} params.id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductCategoriesDelete(params: { id: string }): Promise<{}>;\n /**\n * Deletes one product category membership by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * Nothing in this schema references it, so nothing else changes.\n * \n * An id no product category membership of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesDelete(id: string): Promise<{}>;\n productsProductCategoriesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Reads one product category membership by its id — the whole row, every column, as it is stored.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * An id no product category membership of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} params.id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesGet(params: { id: string }): Promise<Models.ProductCategories>;\n /**\n * Reads one product category membership by its id — the whole row, every column, as it is stored.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * An id no product category membership of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesGet(id: string): Promise<Models.ProductCategories>;\n productsProductCategoriesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ProductCategories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Updates one product category membership by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `product_id` and `category_id` answers 409.\n *\n * @param {string} params.id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} params.position - Sort order of this product inside the category.\n * @param {string} params.productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {ProductCategoriesSource} params.source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesUpdate(params: { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource }): Promise<Models.ProductCategories>;\n /**\n * Updates one product category membership by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `product_id` and `category_id` answers 409.\n *\n * @param {string} id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} position - Sort order of this product inside the category.\n * @param {string} productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {ProductCategoriesSource} source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesUpdate(id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource): Promise<Models.ProductCategories>;\n productsProductCategoriesUpdate(\n paramsOrFirst: { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource } | string,\n ...rest: [(string)?, (number)?, (string)?, (ProductCategoriesSource)?] \n ): Promise<Models.ProductCategories> {\n let params: { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource };\n } else {\n params = {\n id: paramsOrFirst as string,\n categoryId: rest[0] as string,\n position: rest[1] as number,\n productId: rest[2] as string,\n source: rest[3] as ProductCategoriesSource \n };\n }\n \n const id = params.id;\n const categoryId = params.categoryId;\n const position = params.position;\n const productId = params.productId;\n const source = params.source;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Files one product into one category by hand, and the membership is always `source: 'manual'` — a rule recompute never deletes or shadows it. product_categories holds 28 758 rows and had no write surface that named the product it was filing. This takes the product from the route and the category from the body, which is what a bulk 'add the selected products to …' needs. The membership is always source='manual', so a rule recompute never deletes or shadows it.\n *\n * @param {string} params.id - The `products` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products`. An id no product of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.categoryId - The category to file the product into.\n * @param {number} params.position - Sort order inside the category. Default 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesAssign(params: { id: string, categoryId: string, position?: number }): Promise<{}>;\n /**\n * Files one product into one category by hand, and the membership is always `source: 'manual'` — a rule recompute never deletes or shadows it. product_categories holds 28 758 rows and had no write surface that named the product it was filing. This takes the product from the route and the category from the body, which is what a bulk 'add the selected products to …' needs. The membership is always source='manual', so a rule recompute never deletes or shadows it.\n *\n * @param {string} id - The `products` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products`. An id no product of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} categoryId - The category to file the product into.\n * @param {number} position - Sort order inside the category. Default 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesAssign(id: string, categoryId: string, position?: number): Promise<{}>;\n productsCategoriesAssign(\n paramsOrFirst: { id: string, categoryId: string, position?: number } | string,\n ...rest: [(string)?, (number)?] \n ): Promise<{}> {\n let params: { id: string, categoryId: string, position?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, categoryId: string, position?: number };\n } else {\n params = {\n id: paramsOrFirst as string,\n categoryId: rest[0] as string,\n position: rest[1] as number \n };\n }\n \n const id = params.id;\n const categoryId = params.categoryId;\n const position = params.position;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n\n const apiPath = '/v1/products/{id}/categories'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/services/products-categories.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { RuleMatch } from '../enums/rule-match';\nimport { CategoriesRuleMatch } from '../enums/categories-rule-match';\nimport { CategoryRuleMatch } from '../enums/category-rule-match';\nimport { ProductsProductCategoriesListSource } from '../enums/products-product-categories-list-source';\nimport { ProductCategoriesSource } from '../enums/product-categories-source';\n\nexport class ProductsCategories {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * Every column of `categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} params.limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} params.offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} params.code - Exact match on `code`. The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} params.parentId - Exact match on `parent_id`. The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} params.xpath - Exact match on `path`. A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} params.position - Exact match on `position`. Order among the siblings under the same parent, ascending.\n * @param {string} params.labels - Exact match on `labels`. The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.values - Exact match on `values`. Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.rules - Exact match on `rules`. The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {RuleMatch} params.ruleMatch - Exact match on `rule_match`. How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {string} params.rulesComputedAt - Exact match on `rules_computed_at`. When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {string} params.externalId - Exact match on `external_id`. The key this category has in the system that owns the classification — an ETIM or eCl@ss group, a BMEcat catalogue group, the ERP's own product group. Unique per tenant where set. `code` stays this app's identifier and a merchant may rename it; this is what the source calls the same node, which is what keeps the next import pointing at it.\n * @param {string} params.externalRefs - Exact match on `external_refs`. Every OTHER system that knows this row, keyed by system name — a second PIM, a supplier's feed, a GTIN register. `external_id` is the system that OWNS the row; this is the rest, so the next identifier standard costs a key in here rather than a column and a migration. It filters the way every jsonb column of this app filters: the WHOLE document is compared, so there is no asking for one key — read the row by `external_id` and take this off the answer. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.sourceSyncedAt - Exact match on `source_synced_at`. When this row was last CONFIRMED against its source — not when it last changed. A delta run asks for everything it has not seen since its last pass, and over 25 000 products that is the difference between an index scan and reading the whole catalog, which is the reason the column is indexed. An edit made here leaves it alone, so a value that has stopped moving says the feed has gone quiet, not that nobody works the record. Null for a row no source owns.\n * @param {string} params.sourceData - Exact match on `source_data`. What the source said about this row, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to hand back in `If-Match`, and between two runs there is nowhere else to keep it. `raw` carries the source fields this app does not model, so they survive a round trip instead of being lost the first time somebody edits here. Written by whatever imports the row; nothing in this app reads or maintains it. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.metadata - Exact match on `metadata`. Free-form jsonb this tenant owns for the INTEGRATION's account of this node — kept apart from `values`, which is the catalog's own pocket and the one a merchant edits, so a sync and a person never overwrite each other. Nothing in this app reads either. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} params.createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @param {string} params.updatedAt - Exact match on `updated_at`. When the row was last written. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesList(params?: { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, externalId?: string, externalRefs?: string, sourceSyncedAt?: string, sourceData?: string, metadata?: string, createdAt?: string, updatedAt?: string }): Promise<{}>;\n /**\n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * Every column of `categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} code - Exact match on `code`. The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} parentId - Exact match on `parent_id`. The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} xpath - Exact match on `path`. A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} position - Exact match on `position`. Order among the siblings under the same parent, ascending.\n * @param {string} labels - Exact match on `labels`. The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} values - Exact match on `values`. Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} rules - Exact match on `rules`. The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {RuleMatch} ruleMatch - Exact match on `rule_match`. How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {string} rulesComputedAt - Exact match on `rules_computed_at`. When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {string} externalId - Exact match on `external_id`. The key this category has in the system that owns the classification — an ETIM or eCl@ss group, a BMEcat catalogue group, the ERP's own product group. Unique per tenant where set. `code` stays this app's identifier and a merchant may rename it; this is what the source calls the same node, which is what keeps the next import pointing at it.\n * @param {string} externalRefs - Exact match on `external_refs`. Every OTHER system that knows this row, keyed by system name — a second PIM, a supplier's feed, a GTIN register. `external_id` is the system that OWNS the row; this is the rest, so the next identifier standard costs a key in here rather than a column and a migration. It filters the way every jsonb column of this app filters: the WHOLE document is compared, so there is no asking for one key — read the row by `external_id` and take this off the answer. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} sourceSyncedAt - Exact match on `source_synced_at`. When this row was last CONFIRMED against its source — not when it last changed. A delta run asks for everything it has not seen since its last pass, and over 25 000 products that is the difference between an index scan and reading the whole catalog, which is the reason the column is indexed. An edit made here leaves it alone, so a value that has stopped moving says the feed has gone quiet, not that nobody works the record. Null for a row no source owns.\n * @param {string} sourceData - Exact match on `source_data`. What the source said about this row, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to hand back in `If-Match`, and between two runs there is nowhere else to keep it. `raw` carries the source fields this app does not model, so they survive a round trip instead of being lost the first time somebody edits here. Written by whatever imports the row; nothing in this app reads or maintains it. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} metadata - Exact match on `metadata`. Free-form jsonb this tenant owns for the INTEGRATION's account of this node — kept apart from `values`, which is the catalog's own pocket and the one a merchant edits, so a sync and a person never overwrite each other. Nothing in this app reads either. The whole jsonb document is compared, serialized as JSON — this is equality, not a path or containment query, and `null` cannot be matched this way. A value that does not parse as JSON is refused with 400 `invalid_value`, naming this filter, before the request reaches the data plane.\n * @param {string} createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @param {string} updatedAt - Exact match on `updated_at`. When the row was last written. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesList(limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, externalId?: string, externalRefs?: string, sourceSyncedAt?: string, sourceData?: string, metadata?: string, createdAt?: string, updatedAt?: string): Promise<{}>;\n productsCategoriesList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, externalId?: string, externalRefs?: string, sourceSyncedAt?: string, sourceData?: string, metadata?: string, createdAt?: string, updatedAt?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (string)?, (string)?, (number)?, (string)?, (string)?, (string)?, (RuleMatch)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, externalId?: string, externalRefs?: string, sourceSyncedAt?: string, sourceData?: string, metadata?: string, createdAt?: string, updatedAt?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, id?: string, code?: string, parentId?: string, xpath?: string, position?: number, labels?: string, values?: string, rules?: string, ruleMatch?: RuleMatch, rulesComputedAt?: string, externalId?: string, externalRefs?: string, sourceSyncedAt?: string, sourceData?: string, metadata?: string, createdAt?: string, updatedAt?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n id: rest[2] as string,\n code: rest[3] as string,\n parentId: rest[4] as string,\n xpath: rest[5] as string,\n position: rest[6] as number,\n labels: rest[7] as string,\n values: rest[8] as string,\n rules: rest[9] as string,\n ruleMatch: rest[10] as RuleMatch,\n rulesComputedAt: rest[11] as string,\n externalId: rest[12] as string,\n externalRefs: rest[13] as string,\n sourceSyncedAt: rest[14] as string,\n sourceData: rest[15] as string,\n metadata: rest[16] as string,\n createdAt: rest[17] as string,\n updatedAt: rest[18] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const id = params.id;\n const code = params.code;\n const parentId = params.parentId;\n const xpath = params.xpath;\n const position = params.position;\n const labels = params.labels;\n const values = params.values;\n const rules = params.rules;\n const ruleMatch = params.ruleMatch;\n const rulesComputedAt = params.rulesComputedAt;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const sourceSyncedAt = params.sourceSyncedAt;\n const sourceData = params.sourceData;\n const metadata = params.metadata;\n const createdAt = params.createdAt;\n const updatedAt = params.updatedAt;\n\n\n const apiPath = '/v1/products/categories';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof id !== 'undefined') {\n apiPayload['id'] = id;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof parentId !== 'undefined') {\n apiPayload['parent_id'] = parentId;\n }\n if (typeof xpath !== 'undefined') {\n apiPayload['path'] = xpath;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof values !== 'undefined') {\n apiPayload['values'] = values;\n }\n if (typeof rules !== 'undefined') {\n apiPayload['rules'] = rules;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n if (typeof rulesComputedAt !== 'undefined') {\n apiPayload['rules_computed_at'] = rulesComputedAt;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof createdAt !== 'undefined') {\n apiPayload['created_at'] = createdAt;\n }\n if (typeof updatedAt !== 'undefined') {\n apiPayload['updated_at'] = updatedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Creates one category and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * `code` is the only column the database refuses the row without; everything else has a default or is nullable. A second row with the same `code` answers 409.\n *\n * @param {string} params.code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} params.externalId - The key this category has in the system that owns the classification — an ETIM or eCl@ss group, a BMEcat catalogue group, the ERP's own product group. Unique per tenant where set. `code` stays this app's identifier and a merchant may rename it; this is what the source calls the same node, which is what keeps the next import pointing at it.\n * @param {object} params.externalRefs - Every OTHER system that knows this row, keyed by system name — a second PIM, a supplier's feed, a GTIN register. `external_id` is the system that OWNS the row; this is the rest, so the next identifier standard costs a key in here rather than a column and a migration. It filters the way every jsonb column of this app filters: the WHOLE document is compared, so there is no asking for one key — read the row by `external_id` and take this off the answer.\n * @param {object} params.labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {object} params.metadata - Free-form jsonb this tenant owns for the INTEGRATION's account of this node — kept apart from `values`, which is the catalog's own pocket and the one a merchant edits, so a sync and a person never overwrite each other. Nothing in this app reads either.\n * @param {string} params.parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} params.xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} params.position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} params.ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} params.rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} params.rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} params.sourceData - What the source said about this row, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to hand back in `If-Match`, and between two runs there is nowhere else to keep it. `raw` carries the source fields this app does not model, so they survive a round trip instead of being lost the first time somebody edits here. Written by whatever imports the row; nothing in this app reads or maintains it.\n * @param {string} params.sourceSyncedAt - When this row was last CONFIRMED against its source — not when it last changed. A delta run asks for everything it has not seen since its last pass, and over 25 000 products that is the difference between an index scan and reading the whole catalog, which is the reason the column is indexed. An edit made here leaves it alone, so a value that has stopped moving says the feed has gone quiet, not that nobody works the record. Null for a row no source owns.\n * @param {object} params.values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesCreate(params: { code: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object }): Promise<Models.Categories>;\n /**\n * Creates one category and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * `code` is the only column the database refuses the row without; everything else has a default or is nullable. A second row with the same `code` answers 409.\n *\n * @param {string} code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} externalId - The key this category has in the system that owns the classification — an ETIM or eCl@ss group, a BMEcat catalogue group, the ERP's own product group. Unique per tenant where set. `code` stays this app's identifier and a merchant may rename it; this is what the source calls the same node, which is what keeps the next import pointing at it.\n * @param {object} externalRefs - Every OTHER system that knows this row, keyed by system name — a second PIM, a supplier's feed, a GTIN register. `external_id` is the system that OWNS the row; this is the rest, so the next identifier standard costs a key in here rather than a column and a migration. It filters the way every jsonb column of this app filters: the WHOLE document is compared, so there is no asking for one key — read the row by `external_id` and take this off the answer.\n * @param {object} labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {object} metadata - Free-form jsonb this tenant owns for the INTEGRATION's account of this node — kept apart from `values`, which is the catalog's own pocket and the one a merchant edits, so a sync and a person never overwrite each other. Nothing in this app reads either.\n * @param {string} parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} sourceData - What the source said about this row, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to hand back in `If-Match`, and between two runs there is nowhere else to keep it. `raw` carries the source fields this app does not model, so they survive a round trip instead of being lost the first time somebody edits here. Written by whatever imports the row; nothing in this app reads or maintains it.\n * @param {string} sourceSyncedAt - When this row was last CONFIRMED against its source — not when it last changed. A delta run asks for everything it has not seen since its last pass, and over 25 000 products that is the difference between an index scan and reading the whole catalog, which is the reason the column is indexed. An edit made here leaves it alone, so a value that has stopped moving says the feed has gone quiet, not that nobody works the record. Null for a row no source owns.\n * @param {object} values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesCreate(code: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object): Promise<Models.Categories>;\n productsCategoriesCreate(\n paramsOrFirst: { code: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object } | string,\n ...rest: [(string)?, (object)?, (object)?, (object)?, (string)?, (string)?, (number)?, (CategoriesRuleMatch)?, (object)?, (string)?, (object)?, (string)?, (object)?] \n ): Promise<Models.Categories> {\n let params: { code: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object };\n } else {\n params = {\n code: paramsOrFirst as string,\n externalId: rest[0] as string,\n externalRefs: rest[1] as object,\n labels: rest[2] as object,\n metadata: rest[3] as object,\n parentId: rest[4] as string,\n xpath: rest[5] as string,\n position: rest[6] as number,\n ruleMatch: rest[7] as CategoriesRuleMatch,\n rules: rest[8] as object,\n rulesComputedAt: rest[9] as string,\n sourceData: rest[10] as object,\n sourceSyncedAt: rest[11] as string,\n values: rest[12] as object \n };\n }\n \n const code = params.code;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const labels = params.labels;\n const metadata = params.metadata;\n const parentId = params.parentId;\n const xpath = params.xpath;\n const position = params.position;\n const ruleMatch = params.ruleMatch;\n const rules = params.rules;\n const rulesComputedAt = params.rulesComputedAt;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const values = params.values;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/products/categories';\n const apiPayload: Payload = {};\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof parentId !== 'undefined') {\n apiPayload['parent_id'] = parentId;\n }\n if (typeof xpath !== 'undefined') {\n apiPayload['path'] = xpath;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n if (typeof rules !== 'undefined') {\n apiPayload['rules'] = rules;\n }\n if (typeof rulesComputedAt !== 'undefined') {\n apiPayload['rules_computed_at'] = rulesComputedAt;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof values !== 'undefined') {\n apiPayload['values'] = values;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * What the nightly `recompute-category-rules` schedule calls, and the call to reach for after a bulk import has changed what the rules select. Same sync as the single-category recompute, applied to every category with non-null rules. The whole run shares ONE budget: a category the budget no longer reaches is reported as `skipped` and picked up by the next run, and a failing category is reported in its result entry instead of aborting the run.\n *\n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesRulesRecomputeAll(params: { data: object }): Promise<{}>;\n /**\n * What the nightly `recompute-category-rules` schedule calls, and the call to reach for after a bulk import has changed what the rules select. Same sync as the single-category recompute, applied to every category with non-null rules. The whole run shares ONE budget: a category the budget no longer reaches is reported as `skipped` and picked up by the next run, and a failing category is reported in its result entry instead of aborting the run.\n *\n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesRulesRecomputeAll(data: object): Promise<{}>;\n productsCategoriesRulesRecomputeAll(\n paramsOrFirst: { data: object } | object \n ): Promise<{}> {\n let params: { data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('data' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { data: object };\n } else {\n params = {\n data: paramsOrFirst as object \n };\n }\n \n const data = params.data;\n\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/products/categories/rules/recompute-all';\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Dry-runs a rule: how many products it selects, plus a sample of up to ten, and it WRITES NOTHING. Evaluates the rule in the request body against the live catalog WITHOUT touching product_categories — this powers the cockpit's \"matches N products\" preview while an operator edits a rule. Soft-deleted products are excluded. Counting is delegated to the database, never enumerated: a rule that compiles to a single query is answered by one exact-count request whatever its match set. A rule that needs several queries (rule_match \"any\", or a repeated column such as a range) is combined in the app and stops at `cap` ids — check `capped` before showing `count` as a total.\n *\n * @param {string} params.categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {Models.CategoryRuleCondition[]} params.conditions - Between 1 and 25 conditions — a rule is a selector, not a query language. An empty list is a 400, not \"everything\".\n * @param {CategoryRuleMatch} params.ruleMatch - 'all' ANDs every condition (default), 'any' ORs them.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesRulesPreview(params: { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch }): Promise<{}>;\n /**\n * Dry-runs a rule: how many products it selects, plus a sample of up to ten, and it WRITES NOTHING. Evaluates the rule in the request body against the live catalog WITHOUT touching product_categories — this powers the cockpit's \"matches N products\" preview while an operator edits a rule. Soft-deleted products are excluded. Counting is delegated to the database, never enumerated: a rule that compiles to a single query is answered by one exact-count request whatever its match set. A rule that needs several queries (rule_match \"any\", or a repeated column such as a range) is combined in the app and stops at `cap` ids — check `capped` before showing `count` as a total.\n *\n * @param {string} categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {Models.CategoryRuleCondition[]} conditions - Between 1 and 25 conditions — a rule is a selector, not a query language. An empty list is a 400, not \"everything\".\n * @param {CategoryRuleMatch} ruleMatch - 'all' ANDs every condition (default), 'any' ORs them.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesRulesPreview(categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch): Promise<{}>;\n productsCategoriesRulesPreview(\n paramsOrFirst: { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch } | string,\n ...rest: [(Models.CategoryRuleCondition[])?, (CategoryRuleMatch)?] \n ): Promise<{}> {\n let params: { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { categoryId: string, conditions: Models.CategoryRuleCondition[], ruleMatch?: CategoryRuleMatch };\n } else {\n params = {\n categoryId: paramsOrFirst as string,\n conditions: rest[0] as Models.CategoryRuleCondition[],\n ruleMatch: rest[1] as CategoryRuleMatch \n };\n }\n \n const categoryId = params.categoryId;\n const conditions = params.conditions;\n const ruleMatch = params.ruleMatch;\n\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n if (typeof conditions === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"conditions\"');\n }\n\n const apiPath = '/v1/products/categories/{category_id}/rules/preview'.replace('{category_id}', categoryId);\n const apiPayload: Payload = {};\n if (typeof conditions !== 'undefined') {\n apiPayload['conditions'] = conditions;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Syncs one category's rule-derived memberships to what its stored rule selects today. Evaluates categories.rules (NOT the request body), then inserts the newly matching products as source='rule' rows and deletes the rule rows that no longer match. Manual (source='manual') memberships are never inserted, deleted or shadowed. Stamps categories.rules_computed_at.\n * \n * A large category does NOT finish in one call: the run stops when its wall-clock budget is spent and answers `done: false` with the `cursor` to send back, so drive it in a loop until `done` is true.\n *\n * @param {string} params.categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.cursor - The `cursor` a previous call returned, to continue that pass. Send `null` explicitly to restart from the beginning; omit the field to let the app decide (resume if a pass is in flight, otherwise start fresh). Anything that is not a string or null is a 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CategoryRecomputeResult>}\n */\n productsCategoriesRulesRecompute(params: { categoryId: string, cursor?: string }): Promise<Models.CategoryRecomputeResult>;\n /**\n * Syncs one category's rule-derived memberships to what its stored rule selects today. Evaluates categories.rules (NOT the request body), then inserts the newly matching products as source='rule' rows and deletes the rule rows that no longer match. Manual (source='manual') memberships are never inserted, deleted or shadowed. Stamps categories.rules_computed_at.\n * \n * A large category does NOT finish in one call: the run stops when its wall-clock budget is spent and answers `done: false` with the `cursor` to send back, so drive it in a loop until `done` is true.\n *\n * @param {string} categoryId - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} cursor - The `cursor` a previous call returned, to continue that pass. Send `null` explicitly to restart from the beginning; omit the field to let the app decide (resume if a pass is in flight, otherwise start fresh). Anything that is not a string or null is a 400.\n * @throws {RevenexxException}\n * @returns {Promise<Models.CategoryRecomputeResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesRulesRecompute(categoryId: string, cursor?: string): Promise<Models.CategoryRecomputeResult>;\n productsCategoriesRulesRecompute(\n paramsOrFirst: { categoryId: string, cursor?: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.CategoryRecomputeResult> {\n let params: { categoryId: string, cursor?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { categoryId: string, cursor?: string };\n } else {\n params = {\n categoryId: paramsOrFirst as string,\n cursor: rest[0] as string \n };\n }\n \n const categoryId = params.categoryId;\n const cursor = params.cursor;\n\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n\n const apiPath = '/v1/products/categories/{category_id}/rules/recompute'.replace('{category_id}', categoryId);\n const apiPayload: Payload = {};\n if (typeof cursor !== 'undefined') {\n apiPayload['cursor'] = cursor;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Deletes one category by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * It takes what hangs off it: product category memberships (`category_id`) are deleted with it. `categories.parent_id` is set to null instead, so the rows that pointed at it survive the delete rather than going with it.\n * \n * An id no category of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} params.id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesDelete(params: { id: string }): Promise<{}>;\n /**\n * Deletes one category by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * It takes what hangs off it: product category memberships (`category_id`) are deleted with it. `categories.parent_id` is set to null instead, so the rows that pointed at it survive the delete rather than going with it.\n * \n * An id no category of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesDelete(id: string): Promise<{}>;\n productsCategoriesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Reads one category by its id — the whole row, every column, as it is stored.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * An id no category of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} params.id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesGet(params: { id: string }): Promise<Models.Categories>;\n /**\n * Reads one category by its id — the whole row, every column, as it is stored.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * An id no category of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesGet(id: string): Promise<Models.Categories>;\n productsCategoriesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Categories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Updates one category by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `code` answers 409.\n *\n * @param {string} params.id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} params.externalId - The key this category has in the system that owns the classification — an ETIM or eCl@ss group, a BMEcat catalogue group, the ERP's own product group. Unique per tenant where set. `code` stays this app's identifier and a merchant may rename it; this is what the source calls the same node, which is what keeps the next import pointing at it.\n * @param {object} params.externalRefs - Every OTHER system that knows this row, keyed by system name — a second PIM, a supplier's feed, a GTIN register. `external_id` is the system that OWNS the row; this is the rest, so the next identifier standard costs a key in here rather than a column and a migration. It filters the way every jsonb column of this app filters: the WHOLE document is compared, so there is no asking for one key — read the row by `external_id` and take this off the answer.\n * @param {object} params.labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {object} params.metadata - Free-form jsonb this tenant owns for the INTEGRATION's account of this node — kept apart from `values`, which is the catalog's own pocket and the one a merchant edits, so a sync and a person never overwrite each other. Nothing in this app reads either.\n * @param {string} params.parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} params.xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} params.position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} params.ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} params.rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} params.rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} params.sourceData - What the source said about this row, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to hand back in `If-Match`, and between two runs there is nowhere else to keep it. `raw` carries the source fields this app does not model, so they survive a round trip instead of being lost the first time somebody edits here. Written by whatever imports the row; nothing in this app reads or maintains it.\n * @param {string} params.sourceSyncedAt - When this row was last CONFIRMED against its source — not when it last changed. A delta run asks for everything it has not seen since its last pass, and over 25 000 products that is the difference between an index scan and reading the whole catalog, which is the reason the column is indexed. An edit made here leaves it alone, so a value that has stopped moving says the feed has gone quiet, not that nobody works the record. Null for a row no source owns.\n * @param {object} params.values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n */\n productsCategoriesUpdate(params: { id: string, code?: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object }): Promise<Models.Categories>;\n /**\n * Updates one category by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One node of the category tree. `parent_id` is the structure this app navigates — null is a root — while `path` is kept only for importers that carry one and nothing here reads or writes it. A category is hand-picked or RULE-DRIVEN: a non-null `rules` selector makes every matching product a `product_categories` row with source `rule`, alongside the hand-picked ones, and `rules_computed_at` says when that last completed.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `code` answers 409.\n *\n * @param {string} id - The `categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/categories`. An id no categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} code - The category's stable identifier — what an import and a storefront join on, and what survives a rename of the label. Unique per tenant.\n * @param {string} externalId - The key this category has in the system that owns the classification — an ETIM or eCl@ss group, a BMEcat catalogue group, the ERP's own product group. Unique per tenant where set. `code` stays this app's identifier and a merchant may rename it; this is what the source calls the same node, which is what keeps the next import pointing at it.\n * @param {object} externalRefs - Every OTHER system that knows this row, keyed by system name — a second PIM, a supplier's feed, a GTIN register. `external_id` is the system that OWNS the row; this is the rest, so the next identifier standard costs a key in here rather than a column and a migration. It filters the way every jsonb column of this app filters: the WHOLE document is compared, so there is no asking for one key — read the row by `external_id` and take this off the answer.\n * @param {object} labels - The category name a person sees, per language tag. The catalog reads by name, not by code — a locale left blank falls back to the next filled one.\n * @param {object} metadata - Free-form jsonb this tenant owns for the INTEGRATION's account of this node — kept apart from `values`, which is the catalog's own pocket and the one a merchant edits, so a sync and a person never overwrite each other. Nothing in this app reads either.\n * @param {string} parentId - The category this one hangs under. Null is a root of the tree. Deleting a parent lifts its children to the root rather than deleting them, so a mis-click never takes a subtree with it.\n * @param {string} xpath - A materialized position in the tree, kept for importers that carry one (`tools/power_tools/cordless_drills`). Nothing in this app writes or reads it — `parent_id` is the structure this app navigates.\n * @param {number} position - Order among the siblings under the same parent, ascending.\n * @param {CategoriesRuleMatch} ruleMatch - How the conditions combine: 'all' ANDs them (the default), 'any' ORs them. It is a column of its own rather than a key of `rules` because the compiler reads the two separately.\n * @param {object} rules - The selector that makes this a RULE-DRIVEN category. Null means hand-picked. Matching products are MATERIALIZED as `product_categories` rows with source `rule`, next to the hand-picked ones a recompute never touches; `POST /products/categories/{category_id}/rules/preview` dry-runs this exact document before it is stored. Conditions address the `common` bucket of a product's values — a value held per locale or per channel has no single answer for a rule to test.\n * @param {string} rulesComputedAt - When the rule last ran TO COMPLETION and its memberships were synced. Null means no pass has ever finished — a recompute is chunked, so a half-finished pass leaves this untouched.\n * @param {object} sourceData - What the source said about this row, kept as it said it: `{\"system\": …, \"etag\": …, \"raw\": {…}}`. The `etag` is what a write-back has to hand back in `If-Match`, and between two runs there is nowhere else to keep it. `raw` carries the source fields this app does not model, so they survive a round trip instead of being lost the first time somebody edits here. Written by whatever imports the row; nothing in this app reads or maintains it.\n * @param {string} sourceSyncedAt - When this row was last CONFIRMED against its source — not when it last changed. A delta run asks for everything it has not seen since its last pass, and over 25 000 products that is the difference between an index scan and reading the whole catalog, which is the reason the column is indexed. An edit made here leaves it alone, so a value that has stopped moving says the feed has gone quiet, not that nobody works the record. Null for a row no source owns.\n * @param {object} values - Whatever this catalog keeps on a category beyond the model — the keys belong to the tenant, not to this app, and nothing here reads them.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Categories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesUpdate(id: string, code?: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object): Promise<Models.Categories>;\n productsCategoriesUpdate(\n paramsOrFirst: { id: string, code?: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object } | string,\n ...rest: [(string)?, (string)?, (object)?, (object)?, (object)?, (string)?, (string)?, (number)?, (CategoriesRuleMatch)?, (object)?, (string)?, (object)?, (string)?, (object)?] \n ): Promise<Models.Categories> {\n let params: { id: string, code?: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, code?: string, externalId?: string, externalRefs?: object, labels?: object, metadata?: object, parentId?: string, xpath?: string, position?: number, ruleMatch?: CategoriesRuleMatch, rules?: object, rulesComputedAt?: string, sourceData?: object, sourceSyncedAt?: string, values?: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n code: rest[0] as string,\n externalId: rest[1] as string,\n externalRefs: rest[2] as object,\n labels: rest[3] as object,\n metadata: rest[4] as object,\n parentId: rest[5] as string,\n xpath: rest[6] as string,\n position: rest[7] as number,\n ruleMatch: rest[8] as CategoriesRuleMatch,\n rules: rest[9] as object,\n rulesComputedAt: rest[10] as string,\n sourceData: rest[11] as object,\n sourceSyncedAt: rest[12] as string,\n values: rest[13] as object \n };\n }\n \n const id = params.id;\n const code = params.code;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const labels = params.labels;\n const metadata = params.metadata;\n const parentId = params.parentId;\n const xpath = params.xpath;\n const position = params.position;\n const ruleMatch = params.ruleMatch;\n const rules = params.rules;\n const rulesComputedAt = params.rulesComputedAt;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const values = params.values;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof parentId !== 'undefined') {\n apiPayload['parent_id'] = parentId;\n }\n if (typeof xpath !== 'undefined') {\n apiPayload['path'] = xpath;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof ruleMatch !== 'undefined') {\n apiPayload['rule_match'] = ruleMatch;\n }\n if (typeof rules !== 'undefined') {\n apiPayload['rules'] = rules;\n }\n if (typeof rulesComputedAt !== 'undefined') {\n apiPayload['rules_computed_at'] = rulesComputedAt;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof values !== 'undefined') {\n apiPayload['values'] = values;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * Every column of `product_categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} params.limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} params.offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} params.productId - Exact match on `product_id`. The product filed into the category. Deleting the product deletes the membership with it.\n * @param {string} params.categoryId - Exact match on `category_id`. The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} params.position - Exact match on `position`. Sort order of this product inside the category.\n * @param {ProductsProductCategoriesListSource} params.source - Exact match on `source`. How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @param {string} params.createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @param {string} params.updatedAt - Exact match on `updated_at`. When the row was last written. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductCategoriesList(params?: { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: ProductsProductCategoriesListSource, createdAt?: string, updatedAt?: string }): Promise<{}>;\n /**\n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * Every column of `product_categories` is an exact-match query parameter, `order` sorts by one column, and `limit`/`offset` page through `page.total`. A query key that is NOT a column is dropped rather than refused, and the `filter` object echoes the ones that were understood — that echo is the only way to tell an unfiltered answer from an empty one. It reads rows exactly as they are stored: no join is resolved, no jsonb value is unpacked.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {number} limit - Page size (default 50, max 200). A larger value is clamped rather than refused.\n * @param {number} offset - Row offset for pagination (default 0). Page with `page.total` and `page.hasMore`.\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} id - Exact match on `id`. The row's own id, generated by the database. A client never sends one; it reads one back and uses it in the path of every later call.\n * @param {string} productId - Exact match on `product_id`. The product filed into the category. Deleting the product deletes the membership with it.\n * @param {string} categoryId - Exact match on `category_id`. The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} position - Exact match on `position`. Sort order of this product inside the category.\n * @param {ProductsProductCategoriesListSource} source - Exact match on `source`. How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @param {string} createdAt - Exact match on `created_at`. When the row was created. Server-set — it is not part of any request body.\n * @param {string} updatedAt - Exact match on `updated_at`. When the row was last written. Server-set — it is not part of any request body.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesList(limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: ProductsProductCategoriesListSource, createdAt?: string, updatedAt?: string): Promise<{}>;\n productsProductCategoriesList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: ProductsProductCategoriesListSource, createdAt?: string, updatedAt?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (string)?, (number)?, (ProductsProductCategoriesListSource)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: ProductsProductCategoriesListSource, createdAt?: string, updatedAt?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, id?: string, productId?: string, categoryId?: string, position?: number, source?: ProductsProductCategoriesListSource, createdAt?: string, updatedAt?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n id: rest[2] as string,\n productId: rest[3] as string,\n categoryId: rest[4] as string,\n position: rest[5] as number,\n source: rest[6] as ProductsProductCategoriesListSource,\n createdAt: rest[7] as string,\n updatedAt: rest[8] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const id = params.id;\n const productId = params.productId;\n const categoryId = params.categoryId;\n const position = params.position;\n const source = params.source;\n const createdAt = params.createdAt;\n const updatedAt = params.updatedAt;\n\n\n const apiPath = '/v1/products/product_categories';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof id !== 'undefined') {\n apiPayload['id'] = id;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n if (typeof createdAt !== 'undefined') {\n apiPayload['created_at'] = createdAt;\n }\n if (typeof updatedAt !== 'undefined') {\n apiPayload['updated_at'] = updatedAt;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Creates one product category membership and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * `product_id` and `category_id` are the only columns the database refuses the row without; everything else has a default or is nullable. A second row with the same `product_id` and `category_id` answers 409.\n *\n * @param {string} params.categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {string} params.productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {number} params.position - Sort order of this product inside the category.\n * @param {ProductCategoriesSource} params.source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesCreate(params: { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource }): Promise<Models.ProductCategories>;\n /**\n * Creates one product category membership and answers 201 with the stored row, including the id and the timestamps the database filled in — a client never sends an id, it reads one back and uses it in the path of every later call.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * `product_id` and `category_id` are the only columns the database refuses the row without; everything else has a default or is nullable. A second row with the same `product_id` and `category_id` answers 409.\n *\n * @param {string} categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {string} productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {number} position - Sort order of this product inside the category.\n * @param {ProductCategoriesSource} source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesCreate(categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource): Promise<Models.ProductCategories>;\n productsProductCategoriesCreate(\n paramsOrFirst: { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource } | string,\n ...rest: [(string)?, (number)?, (ProductCategoriesSource)?] \n ): Promise<Models.ProductCategories> {\n let params: { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { categoryId: string, productId: string, position?: number, source?: ProductCategoriesSource };\n } else {\n params = {\n categoryId: paramsOrFirst as string,\n productId: rest[0] as string,\n position: rest[1] as number,\n source: rest[2] as ProductCategoriesSource \n };\n }\n \n const categoryId = params.categoryId;\n const productId = params.productId;\n const position = params.position;\n const source = params.source;\n\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n if (typeof productId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"productId\"');\n }\n\n const apiPath = '/v1/products/product_categories';\n const apiPayload: Payload = {};\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Deletes one product category membership by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * Nothing in this schema references it, so nothing else changes.\n * \n * An id no product category membership of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} params.id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsProductCategoriesDelete(params: { id: string }): Promise<{}>;\n /**\n * Deletes one product category membership by id. It is a hard delete — the row is gone, and the answer is a confirmation rather than a result to branch on.\n * \n * Nothing in this schema references it, so nothing else changes.\n * \n * An id no product category membership of this tenant carries answers 404; there is no 409, because every foreign key pointing at this entity resolves itself on delete rather than blocking one.\n *\n * @param {string} id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesDelete(id: string): Promise<{}>;\n productsProductCategoriesDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Reads one product category membership by its id — the whole row, every column, as it is stored.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * An id no product category membership of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} params.id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesGet(params: { id: string }): Promise<Models.ProductCategories>;\n /**\n * Reads one product category membership by its id — the whole row, every column, as it is stored.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * An id no product category membership of this tenant carries answers 404, and so does one belonging to another tenant: row-level security makes that row invisible rather than forbidden. A malformed id answers 400 before the route is reached.\n * \n * Answered from the gateway's tenant cache for up to 30 minutes and dropped the moment this entity is written, because the data model changes weekly at most and every product page asks the same question.\n *\n * @param {string} id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesGet(id: string): Promise<Models.ProductCategories>;\n productsProductCategoriesGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ProductCategories> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Updates one product category membership by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `product_id` and `category_id` answers 409.\n *\n * @param {string} params.id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} params.position - Sort order of this product inside the category.\n * @param {string} params.productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {ProductCategoriesSource} params.source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n */\n productsProductCategoriesUpdate(params: { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource }): Promise<Models.ProductCategories>;\n /**\n * Updates one product category membership by id. A partial patch: the body names only the columns to change and every column it leaves out keeps its current value, so there is no read-modify-write and no way to blank a field by forgetting it.\n * \n * One membership: this product is filed in this category. `source` says how it got there — `manual` is hand-picked, `rule` was materialized by a category rule — and the two never touch each other: a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass. `POST /products/{id}/categories` is the friendlier way to create one, because it takes the product from the path and answers with the category code and the SKU.\n * \n * A body that names nothing writable is refused with 400 rather than answered as a no-op, an id nobody carries answers 404, and a value that collides on `product_id` and `category_id` answers 409.\n *\n * @param {string} id - The `product_categories` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products/product_categories`. An id no product categorie of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} categoryId - The category it is filed into. One row per (product, category), whichever way it got there.\n * @param {number} position - Sort order of this product inside the category.\n * @param {string} productId - The product filed into the category. Deleting the product deletes the membership with it.\n * @param {ProductCategoriesSource} source - How the membership came about: 'manual' is hand-picked, 'rule' was materialized by a category rule. The two never touch each other — a recompute only ever inserts and deletes `rule` rows, so a hand-picked membership survives every pass.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ProductCategories>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsProductCategoriesUpdate(id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource): Promise<Models.ProductCategories>;\n productsProductCategoriesUpdate(\n paramsOrFirst: { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource } | string,\n ...rest: [(string)?, (number)?, (string)?, (ProductCategoriesSource)?] \n ): Promise<Models.ProductCategories> {\n let params: { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, categoryId?: string, position?: number, productId?: string, source?: ProductCategoriesSource };\n } else {\n params = {\n id: paramsOrFirst as string,\n categoryId: rest[0] as string,\n position: rest[1] as number,\n productId: rest[2] as string,\n source: rest[3] as ProductCategoriesSource \n };\n }\n \n const id = params.id;\n const categoryId = params.categoryId;\n const position = params.position;\n const productId = params.productId;\n const source = params.source;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/products/product_categories/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Files one product into one category by hand, and the membership is always `source: 'manual'` — a rule recompute never deletes or shadows it. product_categories holds 28 758 rows and had no write surface that named the product it was filing. This takes the product from the route and the category from the body, which is what a bulk 'add the selected products to …' needs. The membership is always source='manual', so a rule recompute never deletes or shadows it.\n *\n * @param {string} params.id - The `products` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products`. An id no product of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} params.categoryId - The category to file the product into.\n * @param {number} params.position - Sort order inside the category. Default 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n productsCategoriesAssign(params: { id: string, categoryId: string, position?: number }): Promise<{}>;\n /**\n * Files one product into one category by hand, and the membership is always `source: 'manual'` — a rule recompute never deletes or shadows it. product_categories holds 28 758 rows and had no write surface that named the product it was filing. This takes the product from the route and the category from the body, which is what a bulk 'add the selected products to …' needs. The membership is always source='manual', so a rule recompute never deletes or shadows it.\n *\n * @param {string} id - The `products` row to address, by id. It names a row THIS TENANT holds, so no example is published — a uuid this app invented would document a call that answers 404, and a real one would be another tenant's data. Read one from `GET /v1/products`. An id no product of this tenant carries answers 404; a malformed one answers 400 before the route is reached.\n * @param {string} categoryId - The category to file the product into.\n * @param {number} position - Sort order inside the category. Default 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n productsCategoriesAssign(id: string, categoryId: string, position?: number): Promise<{}>;\n productsCategoriesAssign(\n paramsOrFirst: { id: string, categoryId: string, position?: number } | string,\n ...rest: [(string)?, (number)?] \n ): Promise<{}> {\n let params: { id: string, categoryId: string, position?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, categoryId: string, position?: number };\n } else {\n params = {\n id: paramsOrFirst as string,\n categoryId: rest[0] as string,\n position: rest[1] as number \n };\n }\n \n const id = params.id;\n const categoryId = params.categoryId;\n const position = params.position;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof categoryId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"categoryId\"');\n }\n\n const apiPath = '/v1/products/{id}/categories'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof categoryId !== 'undefined') {\n apiPayload['category_id'] = categoryId;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}