@merchi/sdk 1.40.2

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 (662) hide show
  1. package/.eslintrc.cjs +43 -0
  2. package/.turbo/turbo-build.log +1 -0
  3. package/.turbo/turbo-test.log +849 -0
  4. package/LICENSE +21 -0
  5. package/README.md +244 -0
  6. package/coverage/clover.xml +5057 -0
  7. package/coverage/coverage-final.json +133 -0
  8. package/coverage/lcov-report/base.css +224 -0
  9. package/coverage/lcov-report/block-navigation.js +87 -0
  10. package/coverage/lcov-report/favicon.png +0 -0
  11. package/coverage/lcov-report/index.html +191 -0
  12. package/coverage/lcov-report/prettify.css +1 -0
  13. package/coverage/lcov-report/prettify.js +2 -0
  14. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  15. package/coverage/lcov-report/sorter.js +210 -0
  16. package/coverage/lcov-report/src/constants/auto_assign_production_on_actions.ts.html +103 -0
  17. package/coverage/lcov-report/src/constants/call_to_actions.ts.html +127 -0
  18. package/coverage/lcov-report/src/constants/discount_types.ts.html +100 -0
  19. package/coverage/lcov-report/src/constants/domain_types.ts.html +121 -0
  20. package/coverage/lcov-report/src/constants/errors.ts.html +181 -0
  21. package/coverage/lcov-report/src/constants/event_types.ts.html +100 -0
  22. package/coverage/lcov-report/src/constants/field_types.ts.html +133 -0
  23. package/coverage/lcov-report/src/constants/index.html +551 -0
  24. package/coverage/lcov-report/src/constants/index.ts.html +238 -0
  25. package/coverage/lcov-report/src/constants/input_types.ts.html +124 -0
  26. package/coverage/lcov-report/src/constants/inventory_statuses.ts.html +103 -0
  27. package/coverage/lcov-report/src/constants/invoice_types.ts.html +100 -0
  28. package/coverage/lcov-report/src/constants/item_types.ts.html +100 -0
  29. package/coverage/lcov-report/src/constants/job/drafting_status.ts.html +106 -0
  30. package/coverage/lcov-report/src/constants/job/index.html +176 -0
  31. package/coverage/lcov-report/src/constants/job/payment_status.ts.html +106 -0
  32. package/coverage/lcov-report/src/constants/job/production_status.ts.html +121 -0
  33. package/coverage/lcov-report/src/constants/job/shipment_status.ts.html +118 -0
  34. package/coverage/lcov-report/src/constants/job/supply_chain_request_status.ts.html +103 -0
  35. package/coverage/lcov-report/src/constants/job_priorities.ts.html +103 -0
  36. package/coverage/lcov-report/src/constants/job_status.ts.html +232 -0
  37. package/coverage/lcov-report/src/constants/job_types.ts.html +133 -0
  38. package/coverage/lcov-report/src/constants/notification_sections.ts.html +124 -0
  39. package/coverage/lcov-report/src/constants/notification_types.ts.html +385 -0
  40. package/coverage/lcov-report/src/constants/notification_urgencies.ts.html +106 -0
  41. package/coverage/lcov-report/src/constants/payment_types.ts.html +115 -0
  42. package/coverage/lcov-report/src/constants/platform.ts.html +103 -0
  43. package/coverage/lcov-report/src/constants/product_types.ts.html +163 -0
  44. package/coverage/lcov-report/src/constants/rights.ts.html +100 -0
  45. package/coverage/lcov-report/src/constants/robots_meta_directives.ts.html +118 -0
  46. package/coverage/lcov-report/src/constants/roles.ts.html +223 -0
  47. package/coverage/lcov-report/src/constants/shipment_companies.ts.html +142 -0
  48. package/coverage/lcov-report/src/constants/shipment_services.ts.html +94 -0
  49. package/coverage/lcov-report/src/constants/system_roles.ts.html +94 -0
  50. package/coverage/lcov-report/src/constants/theme_status.ts.html +100 -0
  51. package/coverage/lcov-report/src/constants/user_types.ts.html +136 -0
  52. package/coverage/lcov-report/src/constants/white_label_accessibilities.ts.html +103 -0
  53. package/coverage/lcov-report/src/cookie.ts.html +133 -0
  54. package/coverage/lcov-report/src/entities/address.ts.html +280 -0
  55. package/coverage/lcov-report/src/entities/agent_conversation.ts.html +202 -0
  56. package/coverage/lcov-report/src/entities/agent_skill.ts.html +382 -0
  57. package/coverage/lcov-report/src/entities/agent_skill_approval.ts.html +163 -0
  58. package/coverage/lcov-report/src/entities/agent_skill_version.ts.html +277 -0
  59. package/coverage/lcov-report/src/entities/agent_token_usage.ts.html +349 -0
  60. package/coverage/lcov-report/src/entities/assignment.ts.html +382 -0
  61. package/coverage/lcov-report/src/entities/automatic_payment_relationship.ts.html +172 -0
  62. package/coverage/lcov-report/src/entities/bank.ts.html +220 -0
  63. package/coverage/lcov-report/src/entities/cart.ts.html +391 -0
  64. package/coverage/lcov-report/src/entities/cart_item.ts.html +340 -0
  65. package/coverage/lcov-report/src/entities/cart_shipment_group.ts.html +148 -0
  66. package/coverage/lcov-report/src/entities/cart_shipment_quote.ts.html +184 -0
  67. package/coverage/lcov-report/src/entities/category.ts.html +262 -0
  68. package/coverage/lcov-report/src/entities/company.ts.html +1276 -0
  69. package/coverage/lcov-report/src/entities/company_invitation.ts.html +184 -0
  70. package/coverage/lcov-report/src/entities/country_tax.ts.html +223 -0
  71. package/coverage/lcov-report/src/entities/discount.ts.html +235 -0
  72. package/coverage/lcov-report/src/entities/discount_group.ts.html +214 -0
  73. package/coverage/lcov-report/src/entities/domain.ts.html +3349 -0
  74. package/coverage/lcov-report/src/entities/domain_chat_settings.ts.html +331 -0
  75. package/coverage/lcov-report/src/entities/domain_invitation.ts.html +193 -0
  76. package/coverage/lcov-report/src/entities/domain_tag.ts.html +211 -0
  77. package/coverage/lcov-report/src/entities/draft.ts.html +322 -0
  78. package/coverage/lcov-report/src/entities/draft_comment.ts.html +274 -0
  79. package/coverage/lcov-report/src/entities/draft_preview.ts.html +196 -0
  80. package/coverage/lcov-report/src/entities/draft_preview_layer.ts.html +148 -0
  81. package/coverage/lcov-report/src/entities/draft_template.ts.html +328 -0
  82. package/coverage/lcov-report/src/entities/email_address.ts.html +157 -0
  83. package/coverage/lcov-report/src/entities/email_counter.ts.html +145 -0
  84. package/coverage/lcov-report/src/entities/enrolled_domain.ts.html +205 -0
  85. package/coverage/lcov-report/src/entities/exchange_rate.ts.html +151 -0
  86. package/coverage/lcov-report/src/entities/file.ts.html +580 -0
  87. package/coverage/lcov-report/src/entities/index.html +1271 -0
  88. package/coverage/lcov-report/src/entities/internal_tag.ts.html +238 -0
  89. package/coverage/lcov-report/src/entities/inventory.ts.html +274 -0
  90. package/coverage/lcov-report/src/entities/inventory_group.ts.html +193 -0
  91. package/coverage/lcov-report/src/entities/inventory_unit_variation.ts.html +172 -0
  92. package/coverage/lcov-report/src/entities/invoice.ts.html +661 -0
  93. package/coverage/lcov-report/src/entities/item.ts.html +262 -0
  94. package/coverage/lcov-report/src/entities/job.ts.html +1288 -0
  95. package/coverage/lcov-report/src/entities/job_comment.ts.html +244 -0
  96. package/coverage/lcov-report/src/entities/job_note.ts.html +205 -0
  97. package/coverage/lcov-report/src/entities/job_operation_log.ts.html +208 -0
  98. package/coverage/lcov-report/src/entities/matching_inventory.ts.html +172 -0
  99. package/coverage/lcov-report/src/entities/notification.ts.html +403 -0
  100. package/coverage/lcov-report/src/entities/payment.ts.html +316 -0
  101. package/coverage/lcov-report/src/entities/payment_device.ts.html +175 -0
  102. package/coverage/lcov-report/src/entities/phone_number.ts.html +193 -0
  103. package/coverage/lcov-report/src/entities/product.ts.html +1543 -0
  104. package/coverage/lcov-report/src/entities/product_form.ts.html +238 -0
  105. package/coverage/lcov-report/src/entities/product_form_version.ts.html +238 -0
  106. package/coverage/lcov-report/src/entities/product_review.ts.html +748 -0
  107. package/coverage/lcov-report/src/entities/production_comment.ts.html +244 -0
  108. package/coverage/lcov-report/src/entities/quote.ts.html +505 -0
  109. package/coverage/lcov-report/src/entities/quote_item.ts.html +298 -0
  110. package/coverage/lcov-report/src/entities/reminder.ts.html +307 -0
  111. package/coverage/lcov-report/src/entities/session.ts.html +169 -0
  112. package/coverage/lcov-report/src/entities/shipment.ts.html +673 -0
  113. package/coverage/lcov-report/src/entities/shipment_item.ts.html +130 -0
  114. package/coverage/lcov-report/src/entities/shipment_item_fulfillment.ts.html +130 -0
  115. package/coverage/lcov-report/src/entities/shipment_log.ts.html +196 -0
  116. package/coverage/lcov-report/src/entities/shipment_method.ts.html +268 -0
  117. package/coverage/lcov-report/src/entities/shipment_method_variation.ts.html +202 -0
  118. package/coverage/lcov-report/src/entities/short_url.ts.html +193 -0
  119. package/coverage/lcov-report/src/entities/subscription_plan.ts.html +304 -0
  120. package/coverage/lcov-report/src/entities/supply_domain.ts.html +166 -0
  121. package/coverage/lcov-report/src/entities/support_conversation.ts.html +280 -0
  122. package/coverage/lcov-report/src/entities/support_message.ts.html +175 -0
  123. package/coverage/lcov-report/src/entities/system_role.ts.html +136 -0
  124. package/coverage/lcov-report/src/entities/theme.ts.html +331 -0
  125. package/coverage/lcov-report/src/entities/theme_css_setting.ts.html +154 -0
  126. package/coverage/lcov-report/src/entities/user.ts.html +1369 -0
  127. package/coverage/lcov-report/src/entities/user_company.ts.html +166 -0
  128. package/coverage/lcov-report/src/entities/variation.ts.html +277 -0
  129. package/coverage/lcov-report/src/entities/variation_field.ts.html +889 -0
  130. package/coverage/lcov-report/src/entities/variation_fields_option.ts.html +406 -0
  131. package/coverage/lcov-report/src/entities/variation_option.ts.html +259 -0
  132. package/coverage/lcov-report/src/entities/variations_group.ts.html +208 -0
  133. package/coverage/lcov-report/src/entity.ts.html +3379 -0
  134. package/coverage/lcov-report/src/index.html +221 -0
  135. package/coverage/lcov-report/src/index.ts.html +652 -0
  136. package/coverage/lcov-report/src/merchi.ts.html +1420 -0
  137. package/coverage/lcov-report/src/pricing/discount.ts.html +136 -0
  138. package/coverage/lcov-report/src/pricing/estimate.ts.html +1015 -0
  139. package/coverage/lcov-report/src/pricing/index.html +206 -0
  140. package/coverage/lcov-report/src/pricing/index.ts.html +106 -0
  141. package/coverage/lcov-report/src/pricing/inventory.ts.html +352 -0
  142. package/coverage/lcov-report/src/pricing/matrix.ts.html +736 -0
  143. package/coverage/lcov-report/src/pricing/round.ts.html +166 -0
  144. package/coverage/lcov-report/src/pricing/visibility.ts.html +418 -0
  145. package/coverage/lcov-report/src/request.ts.html +673 -0
  146. package/coverage/lcov-report/src/test_util.ts.html +139 -0
  147. package/coverage/lcov-report/src/toasts.ts.html +187 -0
  148. package/coverage/lcov-report/src/util/float.ts.html +121 -0
  149. package/coverage/lcov-report/src/util/index.html +161 -0
  150. package/coverage/lcov-report/src/util/index.ts.html +106 -0
  151. package/coverage/lcov-report/src/util/query_string.ts.html +124 -0
  152. package/coverage/lcov-report/src/util/validation.ts.html +91 -0
  153. package/coverage/lcov-report/src/uuid.ts.html +109 -0
  154. package/coverage/lcov.info +7758 -0
  155. package/dist/constants/auto_assign_production_on_actions.js +7 -0
  156. package/dist/constants/call_to_actions.js +15 -0
  157. package/dist/constants/call_to_actions.test.js +4 -0
  158. package/dist/constants/discount_types.js +6 -0
  159. package/dist/constants/discount_types.test.js +4 -0
  160. package/dist/constants/domain_types.js +13 -0
  161. package/dist/constants/domain_types.test.js +4 -0
  162. package/dist/constants/errors.js +32 -0
  163. package/dist/constants/event_types.js +6 -0
  164. package/dist/constants/event_types.test.js +4 -0
  165. package/dist/constants/field_types.js +17 -0
  166. package/dist/constants/field_types.test.js +4 -0
  167. package/dist/constants/index.js +25 -0
  168. package/dist/constants/input_types.js +14 -0
  169. package/dist/constants/input_types.test.js +4 -0
  170. package/dist/constants/inventory_status.test.js +4 -0
  171. package/dist/constants/inventory_statuses.js +7 -0
  172. package/dist/constants/invoice_types.js +6 -0
  173. package/dist/constants/invoice_types.test.js +4 -0
  174. package/dist/constants/item_types.js +6 -0
  175. package/dist/constants/item_types.test.js +4 -0
  176. package/dist/constants/job/drafting_status.js +8 -0
  177. package/dist/constants/job/drafting_status.test.js +4 -0
  178. package/dist/constants/job/payment_status.js +8 -0
  179. package/dist/constants/job/payment_status.test.js +4 -0
  180. package/dist/constants/job/production_status.js +13 -0
  181. package/dist/constants/job/production_status.test.js +4 -0
  182. package/dist/constants/job/shipment_status.js +12 -0
  183. package/dist/constants/job/shipment_status.test.js +4 -0
  184. package/dist/constants/job/supply_chain_request_status.js +7 -0
  185. package/dist/constants/job/supply_chain_request_status.test.js +4 -0
  186. package/dist/constants/job_priorities.js +7 -0
  187. package/dist/constants/job_priorities.test.js +4 -0
  188. package/dist/constants/job_status.js +50 -0
  189. package/dist/constants/job_status.test.js +4 -0
  190. package/dist/constants/job_types.js +17 -0
  191. package/dist/constants/job_types.test.js +4 -0
  192. package/dist/constants/notification_sections.js +14 -0
  193. package/dist/constants/notification_sections.test.js +4 -0
  194. package/dist/constants/notification_types.js +101 -0
  195. package/dist/constants/notification_types.test.js +4 -0
  196. package/dist/constants/notification_urgencies.js +7 -0
  197. package/dist/constants/notification_urgencies.test.js +4 -0
  198. package/dist/constants/payment_types.js +11 -0
  199. package/dist/constants/payment_types.test.js +4 -0
  200. package/dist/constants/platform.js +5 -0
  201. package/dist/constants/platform.test.js +8 -0
  202. package/dist/constants/product_types.js +27 -0
  203. package/dist/constants/product_types.test.js +4 -0
  204. package/dist/constants/rights.js +6 -0
  205. package/dist/constants/rights.test.js +4 -0
  206. package/dist/constants/robots_meta_directives.js +11 -0
  207. package/dist/constants/robots_meta_directives.test.js +4 -0
  208. package/dist/constants/roles.js +64 -0
  209. package/dist/constants/roles.test.js +4 -0
  210. package/dist/constants/shipment_companies.js +20 -0
  211. package/dist/constants/shipment_companies.test.js +4 -0
  212. package/dist/constants/shipment_services.js +4 -0
  213. package/dist/constants/shipment_services.test.js +4 -0
  214. package/dist/constants/system_roles.js +4 -0
  215. package/dist/constants/system_roles.test.js +4 -0
  216. package/dist/constants/theme_status.js +6 -0
  217. package/dist/constants/theme_status.test.js +4 -0
  218. package/dist/constants/user_types.js +18 -0
  219. package/dist/constants/user_types.test.js +4 -0
  220. package/dist/constants/white_label_accessibilities.js +6 -0
  221. package/dist/constants/white_label_accessibilities.test.js +4 -0
  222. package/dist/cookie.js +15 -0
  223. package/dist/cookie.test.js +10 -0
  224. package/dist/entities/address.js +104 -0
  225. package/dist/entities/address.test.js +6 -0
  226. package/dist/entities/agent_conversation.js +78 -0
  227. package/dist/entities/agent_conversation.test.js +6 -0
  228. package/dist/entities/agent_skill.js +133 -0
  229. package/dist/entities/agent_skill.test.js +11 -0
  230. package/dist/entities/agent_skill_approval.js +61 -0
  231. package/dist/entities/agent_skill_version.js +99 -0
  232. package/dist/entities/agent_token_analytics.js +1 -0
  233. package/dist/entities/agent_token_usage.js +127 -0
  234. package/dist/entities/agent_token_usage.test.js +6 -0
  235. package/dist/entities/assignment.js +135 -0
  236. package/dist/entities/assignment.test.js +30 -0
  237. package/dist/entities/automatic_payment_relationship.js +65 -0
  238. package/dist/entities/automatic_payment_relationship.test.js +6 -0
  239. package/dist/entities/bank.js +85 -0
  240. package/dist/entities/bank.test.js +6 -0
  241. package/dist/entities/cart.js +173 -0
  242. package/dist/entities/cart.test.js +51 -0
  243. package/dist/entities/cart_item.js +125 -0
  244. package/dist/entities/cart_item.test.js +28 -0
  245. package/dist/entities/cart_shipment_group.js +53 -0
  246. package/dist/entities/cart_shipment_quote.js +70 -0
  247. package/dist/entities/category.js +101 -0
  248. package/dist/entities/category.test.js +52 -0
  249. package/dist/entities/company.js +509 -0
  250. package/dist/entities/company.test.js +6 -0
  251. package/dist/entities/company_invitation.js +70 -0
  252. package/dist/entities/company_invitation.test.js +6 -0
  253. package/dist/entities/country_tax.js +80 -0
  254. package/dist/entities/country_tax.test.js +11 -0
  255. package/dist/entities/discount.js +89 -0
  256. package/dist/entities/discount.test.js +34 -0
  257. package/dist/entities/discount_group.js +80 -0
  258. package/dist/entities/discount_group.test.js +6 -0
  259. package/dist/entities/domain.js +567 -0
  260. package/dist/entities/domain.test.js +356 -0
  261. package/dist/entities/domain_chat_settings.js +134 -0
  262. package/dist/entities/domain_chat_settings.test.js +15 -0
  263. package/dist/entities/domain_invitation.js +74 -0
  264. package/dist/entities/domain_invitation.test.js +6 -0
  265. package/dist/entities/domain_tag.js +77 -0
  266. package/dist/entities/domain_tag.test.js +6 -0
  267. package/dist/entities/draft.js +122 -0
  268. package/dist/entities/draft.test.js +26 -0
  269. package/dist/entities/draft_comment.js +107 -0
  270. package/dist/entities/draft_comment.test.js +6 -0
  271. package/dist/entities/draft_preview.js +74 -0
  272. package/dist/entities/draft_preview.test.js +36 -0
  273. package/dist/entities/draft_preview_layer.js +54 -0
  274. package/dist/entities/draft_preview_layer.test.js +6 -0
  275. package/dist/entities/draft_template.js +119 -0
  276. package/dist/entities/draft_template.test.js +12 -0
  277. package/dist/entities/email_address.js +56 -0
  278. package/dist/entities/email_address.test.js +6 -0
  279. package/dist/entities/email_counter.js +53 -0
  280. package/dist/entities/email_counter.test.js +6 -0
  281. package/dist/entities/enrolled_domain.js +74 -0
  282. package/dist/entities/enrolled_domain.test.js +6 -0
  283. package/dist/entities/exchange_rate.js +56 -0
  284. package/dist/entities/exchange_rate.test.js +6 -0
  285. package/dist/entities/file.js +218 -0
  286. package/dist/entities/file.test.js +38 -0
  287. package/dist/entities/internal_tag.js +84 -0
  288. package/dist/entities/internal_tag.test.js +6 -0
  289. package/dist/entities/inventory.js +97 -0
  290. package/dist/entities/inventory.test.js +22 -0
  291. package/dist/entities/inventory_group.js +69 -0
  292. package/dist/entities/inventory_group.test.js +6 -0
  293. package/dist/entities/inventory_unit_variation.js +61 -0
  294. package/dist/entities/inventory_unit_variation.test.js +6 -0
  295. package/dist/entities/invoice.js +268 -0
  296. package/dist/entities/invoice.test.js +45 -0
  297. package/dist/entities/item.js +96 -0
  298. package/dist/entities/item.test.js +17 -0
  299. package/dist/entities/job.js +519 -0
  300. package/dist/entities/job.test.js +83 -0
  301. package/dist/entities/job_comment.js +94 -0
  302. package/dist/entities/job_comment.test.js +6 -0
  303. package/dist/entities/job_note.js +78 -0
  304. package/dist/entities/job_operation_log.js +82 -0
  305. package/dist/entities/job_operation_log.test.js +6 -0
  306. package/dist/entities/matching_inventory.js +63 -0
  307. package/dist/entities/notification.js +163 -0
  308. package/dist/entities/notification.test.js +51 -0
  309. package/dist/entities/payment.js +122 -0
  310. package/dist/entities/payment.test.js +22 -0
  311. package/dist/entities/payment_device.js +65 -0
  312. package/dist/entities/payment_device.test.js +6 -0
  313. package/dist/entities/phone_number.js +72 -0
  314. package/dist/entities/phone_number.test.js +6 -0
  315. package/dist/entities/product.js +619 -0
  316. package/dist/entities/product.test.js +720 -0
  317. package/dist/entities/product_form.js +92 -0
  318. package/dist/entities/product_form_version.js +95 -0
  319. package/dist/entities/product_review.js +234 -0
  320. package/dist/entities/production_comment.js +94 -0
  321. package/dist/entities/production_comment.test.js +6 -0
  322. package/dist/entities/quote.js +168 -0
  323. package/dist/entities/quote.test.js +86 -0
  324. package/dist/entities/quote_item.js +99 -0
  325. package/dist/entities/quote_item.test.js +40 -0
  326. package/dist/entities/reminder.js +120 -0
  327. package/dist/entities/reminder.test.js +14 -0
  328. package/dist/entities/session.js +63 -0
  329. package/dist/entities/session.test.js +6 -0
  330. package/dist/entities/shipment.js +256 -0
  331. package/dist/entities/shipment.test.js +20 -0
  332. package/dist/entities/shipment_item.js +45 -0
  333. package/dist/entities/shipment_item.test.js +6 -0
  334. package/dist/entities/shipment_item_fulfillment.js +46 -0
  335. package/dist/entities/shipment_item_fulfillment.test.js +6 -0
  336. package/dist/entities/shipment_log.js +75 -0
  337. package/dist/entities/shipment_method.js +104 -0
  338. package/dist/entities/shipment_method.test.js +6 -0
  339. package/dist/entities/shipment_method_variation.js +77 -0
  340. package/dist/entities/shipment_method_variation.test.js +6 -0
  341. package/dist/entities/short_url.js +73 -0
  342. package/dist/entities/short_url.test.js +6 -0
  343. package/dist/entities/subscription_plan.js +122 -0
  344. package/dist/entities/subscription_plan.test.js +6 -0
  345. package/dist/entities/supply_domain.js +62 -0
  346. package/dist/entities/supply_domain.test.js +6 -0
  347. package/dist/entities/support_conversation.js +106 -0
  348. package/dist/entities/support_conversation.test.js +6 -0
  349. package/dist/entities/support_message.js +66 -0
  350. package/dist/entities/support_message.test.js +6 -0
  351. package/dist/entities/system_role.js +49 -0
  352. package/dist/entities/system_role.test.js +6 -0
  353. package/dist/entities/theme.js +125 -0
  354. package/dist/entities/theme.test.js +35 -0
  355. package/dist/entities/theme_css_setting.js +57 -0
  356. package/dist/entities/theme_css_setting.test.js +6 -0
  357. package/dist/entities/user.js +508 -0
  358. package/dist/entities/user.test.js +134 -0
  359. package/dist/entities/user_company.js +62 -0
  360. package/dist/entities/user_company.test.js +6 -0
  361. package/dist/entities/variation.js +108 -0
  362. package/dist/entities/variation.test.js +6 -0
  363. package/dist/entities/variation_field.js +381 -0
  364. package/dist/entities/variation_field.test.js +69 -0
  365. package/dist/entities/variation_fields_option.js +153 -0
  366. package/dist/entities/variation_fields_option.test.js +43 -0
  367. package/dist/entities/variation_option.js +104 -0
  368. package/dist/entities/variation_option.test.js +6 -0
  369. package/dist/entities/variations_group.js +79 -0
  370. package/dist/entities/variations_group.test.js +6 -0
  371. package/dist/entity.js +950 -0
  372. package/dist/index.js +86 -0
  373. package/dist/merchi.js +296 -0
  374. package/dist/merchi.test.js +21 -0
  375. package/dist/pricing/discount.js +11 -0
  376. package/dist/pricing/discount.test.js +35 -0
  377. package/dist/pricing/estimate.js +335 -0
  378. package/dist/pricing/estimate.test.js +403 -0
  379. package/dist/pricing/golden.test.js +61 -0
  380. package/dist/pricing/index.js +7 -0
  381. package/dist/pricing/index.test.js +8 -0
  382. package/dist/pricing/inventory.js +238 -0
  383. package/dist/pricing/inventory.test.js +188 -0
  384. package/dist/pricing/matrix.js +245 -0
  385. package/dist/pricing/matrix.test.js +437 -0
  386. package/dist/pricing/round.js +29 -0
  387. package/dist/pricing/round.test.js +27 -0
  388. package/dist/pricing/types.js +1 -0
  389. package/dist/pricing/visibility.js +227 -0
  390. package/dist/pricing/visibility.test.js +210 -0
  391. package/dist/request.js +169 -0
  392. package/dist/request.test.js +70 -0
  393. package/dist/test_util.js +17 -0
  394. package/dist/toasts.js +14 -0
  395. package/dist/toasts.test.js +28 -0
  396. package/dist/util/float.js +34 -0
  397. package/dist/util/index.js +3 -0
  398. package/dist/util/query_string.js +13 -0
  399. package/dist/util/query_string.test.js +6 -0
  400. package/dist/util/validation.js +3 -0
  401. package/dist/util/validation.test.js +12 -0
  402. package/dist/uuid.js +8 -0
  403. package/dist/uuid.test.js +11 -0
  404. package/jest.config.js +23 -0
  405. package/merchi_sdk_ts-1.13.1.tgz +0 -0
  406. package/package.json +41 -0
  407. package/src/constants/auto_assign_production_on_actions.ts +6 -0
  408. package/src/constants/call_to_actions.test.ts +5 -0
  409. package/src/constants/call_to_actions.ts +14 -0
  410. package/src/constants/discount_types.test.ts +5 -0
  411. package/src/constants/discount_types.ts +5 -0
  412. package/src/constants/domain_types.test.ts +5 -0
  413. package/src/constants/domain_types.ts +12 -0
  414. package/src/constants/errors.ts +32 -0
  415. package/src/constants/event_types.test.ts +5 -0
  416. package/src/constants/event_types.ts +5 -0
  417. package/src/constants/field_types.test.ts +5 -0
  418. package/src/constants/field_types.ts +16 -0
  419. package/src/constants/index.ts +51 -0
  420. package/src/constants/input_types.test.ts +5 -0
  421. package/src/constants/input_types.ts +13 -0
  422. package/src/constants/inventory_status.test.ts +5 -0
  423. package/src/constants/inventory_statuses.ts +6 -0
  424. package/src/constants/invoice_types.test.ts +5 -0
  425. package/src/constants/invoice_types.ts +5 -0
  426. package/src/constants/item_types.test.ts +5 -0
  427. package/src/constants/item_types.ts +5 -0
  428. package/src/constants/job/drafting_status.test.ts +5 -0
  429. package/src/constants/job/drafting_status.ts +7 -0
  430. package/src/constants/job/payment_status.test.ts +5 -0
  431. package/src/constants/job/payment_status.ts +7 -0
  432. package/src/constants/job/production_status.test.ts +5 -0
  433. package/src/constants/job/production_status.ts +12 -0
  434. package/src/constants/job/shipment_status.test.ts +5 -0
  435. package/src/constants/job/shipment_status.ts +11 -0
  436. package/src/constants/job/supply_chain_request_status.test.ts +5 -0
  437. package/src/constants/job/supply_chain_request_status.ts +6 -0
  438. package/src/constants/job_priorities.test.ts +5 -0
  439. package/src/constants/job_priorities.ts +6 -0
  440. package/src/constants/job_status.test.ts +5 -0
  441. package/src/constants/job_status.ts +49 -0
  442. package/src/constants/job_types.test.ts +5 -0
  443. package/src/constants/job_types.ts +16 -0
  444. package/src/constants/notification_sections.test.ts +5 -0
  445. package/src/constants/notification_sections.ts +13 -0
  446. package/src/constants/notification_types.test.ts +5 -0
  447. package/src/constants/notification_types.ts +100 -0
  448. package/src/constants/notification_urgencies.test.ts +5 -0
  449. package/src/constants/notification_urgencies.ts +7 -0
  450. package/src/constants/payment_types.test.ts +5 -0
  451. package/src/constants/payment_types.ts +10 -0
  452. package/src/constants/platform.test.ts +15 -0
  453. package/src/constants/platform.ts +6 -0
  454. package/src/constants/product_types.test.ts +6 -0
  455. package/src/constants/product_types.ts +26 -0
  456. package/src/constants/rights.test.ts +5 -0
  457. package/src/constants/rights.ts +5 -0
  458. package/src/constants/robots_meta_directives.test.ts +5 -0
  459. package/src/constants/robots_meta_directives.ts +11 -0
  460. package/src/constants/roles.test.ts +5 -0
  461. package/src/constants/roles.ts +46 -0
  462. package/src/constants/shipment_companies.test.ts +5 -0
  463. package/src/constants/shipment_companies.ts +19 -0
  464. package/src/constants/shipment_services.test.ts +5 -0
  465. package/src/constants/shipment_services.ts +3 -0
  466. package/src/constants/system_roles.test.ts +5 -0
  467. package/src/constants/system_roles.ts +3 -0
  468. package/src/constants/theme_status.test.ts +5 -0
  469. package/src/constants/theme_status.ts +5 -0
  470. package/src/constants/user_types.test.ts +5 -0
  471. package/src/constants/user_types.ts +17 -0
  472. package/src/constants/white_label_accessibilities.test.ts +5 -0
  473. package/src/constants/white_label_accessibilities.ts +6 -0
  474. package/src/cookie.test.ts +11 -0
  475. package/src/cookie.ts +16 -0
  476. package/src/entities/address.test.ts +7 -0
  477. package/src/entities/address.ts +65 -0
  478. package/src/entities/agent_conversation.test.ts +7 -0
  479. package/src/entities/agent_conversation.ts +39 -0
  480. package/src/entities/agent_skill.test.ts +13 -0
  481. package/src/entities/agent_skill.ts +99 -0
  482. package/src/entities/agent_skill_approval.ts +26 -0
  483. package/src/entities/agent_skill_version.ts +64 -0
  484. package/src/entities/agent_token_analytics.ts +49 -0
  485. package/src/entities/agent_token_usage.test.ts +7 -0
  486. package/src/entities/agent_token_usage.ts +88 -0
  487. package/src/entities/assignment.test.ts +39 -0
  488. package/src/entities/assignment.ts +99 -0
  489. package/src/entities/automatic_payment_relationship.test.ts +8 -0
  490. package/src/entities/automatic_payment_relationship.ts +29 -0
  491. package/src/entities/bank.test.ts +7 -0
  492. package/src/entities/bank.ts +45 -0
  493. package/src/entities/cart.test.ts +57 -0
  494. package/src/entities/cart.ts +102 -0
  495. package/src/entities/cart_item.test.ts +33 -0
  496. package/src/entities/cart_item.ts +85 -0
  497. package/src/entities/cart_shipment_group.ts +21 -0
  498. package/src/entities/cart_shipment_quote.ts +33 -0
  499. package/src/entities/category.test.ts +57 -0
  500. package/src/entities/category.ts +59 -0
  501. package/src/entities/company.test.ts +7 -0
  502. package/src/entities/company.ts +397 -0
  503. package/src/entities/company_invitation.test.ts +7 -0
  504. package/src/entities/company_invitation.ts +33 -0
  505. package/src/entities/country_tax.test.ts +13 -0
  506. package/src/entities/country_tax.ts +46 -0
  507. package/src/entities/discount.test.ts +36 -0
  508. package/src/entities/discount.ts +50 -0
  509. package/src/entities/discount_group.test.ts +7 -0
  510. package/src/entities/discount_group.ts +43 -0
  511. package/src/entities/domain.test.ts +393 -0
  512. package/src/entities/domain.ts +1088 -0
  513. package/src/entities/domain_chat_settings.test.ts +16 -0
  514. package/src/entities/domain_chat_settings.ts +82 -0
  515. package/src/entities/domain_invitation.test.ts +7 -0
  516. package/src/entities/domain_invitation.ts +36 -0
  517. package/src/entities/domain_tag.test.ts +7 -0
  518. package/src/entities/domain_tag.ts +42 -0
  519. package/src/entities/draft.test.ts +29 -0
  520. package/src/entities/draft.ts +79 -0
  521. package/src/entities/draft_comment.test.ts +7 -0
  522. package/src/entities/draft_comment.ts +63 -0
  523. package/src/entities/draft_preview.test.ts +42 -0
  524. package/src/entities/draft_preview.ts +37 -0
  525. package/src/entities/draft_preview_layer.test.ts +7 -0
  526. package/src/entities/draft_preview_layer.ts +21 -0
  527. package/src/entities/draft_template.test.ts +14 -0
  528. package/src/entities/draft_template.ts +81 -0
  529. package/src/entities/email_address.test.ts +7 -0
  530. package/src/entities/email_address.ts +24 -0
  531. package/src/entities/email_counter.test.ts +7 -0
  532. package/src/entities/email_counter.ts +20 -0
  533. package/src/entities/enrolled_domain.test.ts +7 -0
  534. package/src/entities/enrolled_domain.ts +40 -0
  535. package/src/entities/exchange_rate.test.ts +7 -0
  536. package/src/entities/exchange_rate.ts +22 -0
  537. package/src/entities/file.test.ts +43 -0
  538. package/src/entities/file.ts +165 -0
  539. package/src/entities/internal_tag.test.ts +7 -0
  540. package/src/entities/internal_tag.ts +51 -0
  541. package/src/entities/inventory.test.ts +28 -0
  542. package/src/entities/inventory.ts +63 -0
  543. package/src/entities/inventory_group.test.ts +7 -0
  544. package/src/entities/inventory_group.ts +36 -0
  545. package/src/entities/inventory_unit_variation.test.ts +7 -0
  546. package/src/entities/inventory_unit_variation.ts +29 -0
  547. package/src/entities/invoice.test.ts +50 -0
  548. package/src/entities/invoice.ts +192 -0
  549. package/src/entities/item.test.ts +19 -0
  550. package/src/entities/item.ts +59 -0
  551. package/src/entities/job.test.ts +95 -0
  552. package/src/entities/job.ts +401 -0
  553. package/src/entities/job_comment.test.ts +7 -0
  554. package/src/entities/job_comment.ts +53 -0
  555. package/src/entities/job_note.ts +40 -0
  556. package/src/entities/job_operation_log.test.ts +7 -0
  557. package/src/entities/job_operation_log.ts +41 -0
  558. package/src/entities/matching_inventory.ts +29 -0
  559. package/src/entities/notification.test.ts +58 -0
  560. package/src/entities/notification.ts +106 -0
  561. package/src/entities/payment.test.ts +27 -0
  562. package/src/entities/payment.ts +77 -0
  563. package/src/entities/payment_device.test.ts +7 -0
  564. package/src/entities/payment_device.ts +30 -0
  565. package/src/entities/phone_number.test.ts +7 -0
  566. package/src/entities/phone_number.ts +36 -0
  567. package/src/entities/product.test.ts +776 -0
  568. package/src/entities/product.ts +486 -0
  569. package/src/entities/product_form.ts +51 -0
  570. package/src/entities/product_form_version.ts +51 -0
  571. package/src/entities/product_review.ts +221 -0
  572. package/src/entities/production_comment.test.ts +7 -0
  573. package/src/entities/production_comment.ts +53 -0
  574. package/src/entities/quote.test.ts +98 -0
  575. package/src/entities/quote.ts +140 -0
  576. package/src/entities/quote_item.test.ts +50 -0
  577. package/src/entities/quote_item.ts +71 -0
  578. package/src/entities/reminder.test.ts +16 -0
  579. package/src/entities/reminder.ts +74 -0
  580. package/src/entities/session.test.ts +7 -0
  581. package/src/entities/session.ts +28 -0
  582. package/src/entities/shipment.test.ts +24 -0
  583. package/src/entities/shipment.ts +196 -0
  584. package/src/entities/shipment_item.test.ts +7 -0
  585. package/src/entities/shipment_item.ts +15 -0
  586. package/src/entities/shipment_item_fulfillment.test.ts +8 -0
  587. package/src/entities/shipment_item_fulfillment.ts +15 -0
  588. package/src/entities/shipment_log.ts +37 -0
  589. package/src/entities/shipment_method.test.ts +7 -0
  590. package/src/entities/shipment_method.ts +61 -0
  591. package/src/entities/shipment_method_variation.test.ts +7 -0
  592. package/src/entities/shipment_method_variation.ts +39 -0
  593. package/src/entities/short_url.test.ts +7 -0
  594. package/src/entities/short_url.ts +36 -0
  595. package/src/entities/subscription_plan.test.ts +7 -0
  596. package/src/entities/subscription_plan.ts +73 -0
  597. package/src/entities/supply_domain.test.ts +7 -0
  598. package/src/entities/supply_domain.ts +27 -0
  599. package/src/entities/support_conversation.test.ts +7 -0
  600. package/src/entities/support_conversation.ts +65 -0
  601. package/src/entities/support_message.test.ts +7 -0
  602. package/src/entities/support_message.ts +30 -0
  603. package/src/entities/system_role.test.ts +7 -0
  604. package/src/entities/system_role.ts +17 -0
  605. package/src/entities/theme.test.ts +38 -0
  606. package/src/entities/theme.ts +82 -0
  607. package/src/entities/theme_css_setting.test.ts +7 -0
  608. package/src/entities/theme_css_setting.ts +23 -0
  609. package/src/entities/user.test.ts +154 -0
  610. package/src/entities/user.ts +428 -0
  611. package/src/entities/user_company.test.ts +7 -0
  612. package/src/entities/user_company.ts +27 -0
  613. package/src/entities/variation.test.ts +7 -0
  614. package/src/entities/variation.ts +64 -0
  615. package/src/entities/variation_field.test.ts +76 -0
  616. package/src/entities/variation_field.ts +268 -0
  617. package/src/entities/variation_fields_option.test.ts +46 -0
  618. package/src/entities/variation_fields_option.ts +107 -0
  619. package/src/entities/variation_option.test.ts +7 -0
  620. package/src/entities/variation_option.ts +58 -0
  621. package/src/entities/variations_group.test.ts +7 -0
  622. package/src/entities/variations_group.ts +41 -0
  623. package/src/entity.ts +1098 -0
  624. package/src/index.ts +189 -0
  625. package/src/merchi.test.ts +25 -0
  626. package/src/merchi.ts +445 -0
  627. package/src/pricing/__fixtures__/conditional_field_hidden.json +112 -0
  628. package/src/pricing/__fixtures__/conditional_field_visible.json +113 -0
  629. package/src/pricing/__fixtures__/group_product.json +130 -0
  630. package/src/pricing/__fixtures__/non_selectable_number_field.json +108 -0
  631. package/src/pricing/__fixtures__/quantity_break_discount.json +104 -0
  632. package/src/pricing/__fixtures__/simple_selectable_field.json +110 -0
  633. package/src/pricing/discount.test.ts +47 -0
  634. package/src/pricing/discount.ts +17 -0
  635. package/src/pricing/estimate.test.ts +486 -0
  636. package/src/pricing/estimate.ts +310 -0
  637. package/src/pricing/golden.test.ts +51 -0
  638. package/src/pricing/index.test.ts +9 -0
  639. package/src/pricing/index.ts +7 -0
  640. package/src/pricing/inventory.test.ts +197 -0
  641. package/src/pricing/inventory.ts +89 -0
  642. package/src/pricing/matrix.test.ts +553 -0
  643. package/src/pricing/matrix.ts +217 -0
  644. package/src/pricing/round.test.ts +31 -0
  645. package/src/pricing/round.ts +27 -0
  646. package/src/pricing/types.ts +140 -0
  647. package/src/pricing/visibility.test.ts +223 -0
  648. package/src/pricing/visibility.ts +111 -0
  649. package/src/request.test.ts +79 -0
  650. package/src/request.ts +196 -0
  651. package/src/test_util.ts +18 -0
  652. package/src/toasts.test.ts +38 -0
  653. package/src/toasts.ts +34 -0
  654. package/src/util/float.ts +12 -0
  655. package/src/util/index.ts +7 -0
  656. package/src/util/query_string.test.ts +7 -0
  657. package/src/util/query_string.ts +13 -0
  658. package/src/util/validation.test.ts +16 -0
  659. package/src/util/validation.ts +2 -0
  660. package/src/uuid.test.ts +15 -0
  661. package/src/uuid.ts +8 -0
  662. package/tsconfig.json +29 -0
@@ -0,0 +1,16 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make DomainChatSettings', () => {
4
+ const merchi = new Merchi();
5
+ const settings = new merchi.DomainChatSettings();
6
+ expect(settings).toBeTruthy();
7
+ });
8
+
9
+ test('can set assignedUsers', () => {
10
+ const merchi = new Merchi();
11
+ const settings = new merchi.DomainChatSettings();
12
+ const user = new merchi.User();
13
+ user.id = 11;
14
+ settings.assignedUsers = [user];
15
+ expect(settings.assignedUsers?.map((u) => u.id)).toEqual([11]);
16
+ });
@@ -0,0 +1,82 @@
1
+ import { Domain } from './domain.js';
2
+ import { Entity } from '../entity.js';
3
+ import { MerchiFile } from './file.js';
4
+ import { User } from './user.js';
5
+
6
+ export class DomainChatSettings extends Entity {
7
+ protected static resourceName = 'domain_chat_settings';
8
+ protected static singularName = 'domainChatSettings';
9
+ protected static pluralName = 'domainChatSettingsList';
10
+
11
+ @DomainChatSettings.property()
12
+ public id?: number;
13
+
14
+ @DomainChatSettings.property()
15
+ public domain?: Domain;
16
+
17
+ @DomainChatSettings.property()
18
+ public enabled?: boolean;
19
+
20
+ @DomainChatSettings.property()
21
+ public displayName?: string | null;
22
+
23
+ @DomainChatSettings.property({ type: MerchiFile })
24
+ public avatar?: MerchiFile | null;
25
+
26
+ @DomainChatSettings.property()
27
+ public welcomeMessage?: string | null;
28
+
29
+ @DomainChatSettings.property()
30
+ public privacyPolicyUrl?: string | null;
31
+
32
+ @DomainChatSettings.property()
33
+ public workingHours?: any | null;
34
+
35
+ @DomainChatSettings.property()
36
+ public awayMessage?: string | null;
37
+
38
+ @DomainChatSettings.property()
39
+ public notifyEmailNewConversation?: boolean;
40
+
41
+ @DomainChatSettings.property()
42
+ public notifyEmailNewMessage?: boolean;
43
+
44
+ @DomainChatSettings.property()
45
+ public telegramChatId?: string | null;
46
+
47
+ @DomainChatSettings.property({ arrayType: 'User' })
48
+ public assignedUsers?: User[];
49
+
50
+ @DomainChatSettings.property()
51
+ public requireGuestContact?: boolean;
52
+
53
+ @DomainChatSettings.property()
54
+ public embedTestMode?: boolean;
55
+
56
+ @DomainChatSettings.property()
57
+ public autoOpenDelay?: number | null;
58
+
59
+ @DomainChatSettings.property()
60
+ public autoOpenMessage?: string | null;
61
+
62
+ @DomainChatSettings.property()
63
+ public autoOpenMode?: string | null;
64
+
65
+ @DomainChatSettings.property()
66
+ public aiFallbackEnabled?: boolean;
67
+
68
+ @DomainChatSettings.property()
69
+ public aiFallbackScope?: 'faq_only' | 'faq_and_status' | 'collect_and_escalate' | 'full_support_limited' | null;
70
+
71
+ @DomainChatSettings.property()
72
+ public aiDisclosureMode?: 'on' | 'off' | null;
73
+
74
+ @DomainChatSettings.property()
75
+ public aiMaxRepliesPerConversation?: number | null;
76
+
77
+ @DomainChatSettings.property()
78
+ public aiCooldownSeconds?: number;
79
+
80
+ @DomainChatSettings.property()
81
+ public aiEscalationMessage?: string | null;
82
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make DomainInvitation', () => {
4
+ const merchi = new Merchi();
5
+ const domainInvitation = new merchi.DomainInvitation();
6
+ expect(domainInvitation).toBeTruthy();
7
+ });
@@ -0,0 +1,36 @@
1
+ import { Domain } from './domain.js';
2
+ import { Entity } from '../entity.js';
3
+ import { User } from './user.js';
4
+
5
+ export class DomainInvitation extends Entity {
6
+ protected static resourceName = 'domain_invitations';
7
+ protected static singularName = 'domainInvitation';
8
+ protected static pluralName = 'domainInvitations';
9
+
10
+ @DomainInvitation.property({type: Date})
11
+ public archived?: Date | null;
12
+
13
+ @DomainInvitation.property()
14
+ public id?: number;
15
+
16
+ @DomainInvitation.property()
17
+ public userName?: string;
18
+
19
+ @DomainInvitation.property()
20
+ public userEmail?: string;
21
+
22
+ @DomainInvitation.property()
23
+ public role?: number;
24
+
25
+ @DomainInvitation.property()
26
+ public token?: string;
27
+
28
+ @DomainInvitation.property()
29
+ public domain?: Domain;
30
+
31
+ @DomainInvitation.property()
32
+ public sender?: User;
33
+
34
+ @DomainInvitation.property({type: Date})
35
+ public user?: User | null;
36
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make DomainTag', () => {
4
+ const merchi = new Merchi();
5
+ const domainTag = new merchi.DomainTag();
6
+ expect(domainTag).toBeTruthy();
7
+ });
@@ -0,0 +1,42 @@
1
+ import { Domain } from './domain.js';
2
+ import { Entity } from '../entity.js';
3
+ import { Invoice } from './invoice.js';
4
+ import { Job } from './job.js';
5
+ import { Product } from './product.js';
6
+ import { Shipment } from './shipment.js';
7
+
8
+ export class DomainTag extends Entity {
9
+ protected static resourceName = 'domain_tags';
10
+ protected static singularName = 'domainTag';
11
+ protected static pluralName = 'domainTags';
12
+
13
+ @DomainTag.property()
14
+ public id?: number;
15
+
16
+ @DomainTag.property()
17
+ public colour?: number;
18
+
19
+ @DomainTag.property()
20
+ public name?: string;
21
+
22
+ @DomainTag.property()
23
+ public description?: string;
24
+
25
+ @DomainTag.property()
26
+ public showPublic?: boolean;
27
+
28
+ @DomainTag.property()
29
+ public domain?: Domain;
30
+
31
+ @DomainTag.property({arrayType: 'Job'})
32
+ public jobs?: Job[];
33
+
34
+ @DomainTag.property({arrayType: 'Product'})
35
+ public products?: Product[];
36
+
37
+ @DomainTag.property({arrayType: 'Invoice'})
38
+ public invoices?: Invoice[];
39
+
40
+ @DomainTag.property({arrayType: 'Shipment'})
41
+ public shipments?: Shipment[];
42
+ }
@@ -0,0 +1,29 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make Draft', () => {
4
+ const merchi = new Merchi();
5
+ const draft = new merchi.Draft();
6
+ expect(draft).toBeTruthy();
7
+ });
8
+
9
+ test('commentsYoungestToEldest', () => {
10
+ const merchi = new Merchi();
11
+ const draft = new merchi.Draft();
12
+ expect(draft.commentsYoungestToEldest).toThrow();
13
+ draft.comments = [];
14
+ expect(draft.commentsYoungestToEldest()).toEqual([]);
15
+ draft.comments = [new merchi.DraftComment(), new merchi.DraftComment()];
16
+ expect(draft.commentsYoungestToEldest).toThrow();
17
+ draft.comments[0].id = 2;
18
+ draft.comments[1].id = 1;
19
+ expect(draft.commentsYoungestToEldest()[0].id).toEqual(1);
20
+ });
21
+
22
+ test('draft accepted serialised to milliseconds', () => {
23
+ const merchi = new Merchi();
24
+ const draft = new merchi.Draft();
25
+ draft.accepted = new Date('Feb 28 2013 19:00:00 GMT-0500');
26
+ const correct = [['accepted', '1362096000']];
27
+ const backData = Array.from((draft.toFormData() as any).entries());
28
+ expect(backData).toEqual(correct);
29
+ });
@@ -0,0 +1,79 @@
1
+ import { DraftComment } from './draft_comment.js';
2
+ import { Entity } from '../entity.js';
3
+ import { MerchiFile } from './file.js';
4
+ import { Job } from './job.js';
5
+ import { Notification } from './notification.js';
6
+ import { User } from './user.js';
7
+ import { DraftTemplate } from './draft_template.js';
8
+
9
+ export class Draft extends Entity {
10
+ protected static resourceName = 'drafts';
11
+ protected static singularName = 'draft';
12
+ protected static pluralName = 'drafts';
13
+
14
+ @Draft.property({type: Date})
15
+ public archived?: Date | null;
16
+
17
+ @Draft.property()
18
+ public id?: number;
19
+
20
+ @Draft.property({type: Date})
21
+ public date?: Date | null;
22
+
23
+ @Draft.property({type: Date})
24
+ public accepted?: Date | null;
25
+
26
+ @Draft.property({type: Date})
27
+ public resendDate?: Date | null;
28
+
29
+ @Draft.property()
30
+ public viewed?: boolean;
31
+
32
+ @Draft.property()
33
+ public sendSms?: boolean;
34
+
35
+ @Draft.property()
36
+ public sendWhatsapp?: boolean;
37
+
38
+ @Draft.property()
39
+ public sendEmail?: boolean;
40
+
41
+ @Draft.property({arrayType: 'DraftComment'})
42
+ public comments?: DraftComment[];
43
+
44
+ @Draft.property({arrayType: 'DraftTemplate'})
45
+ public draftTemplates?: DraftTemplate[];
46
+
47
+ @Draft.property()
48
+ public commentsCount?: number;
49
+
50
+ @Draft.property()
51
+ public changesRequested?: boolean;
52
+
53
+ @Draft.property()
54
+ public designer?: User;
55
+
56
+ @Draft.property({arrayType: 'MerchiFile'})
57
+ public images?: MerchiFile[];
58
+
59
+ @Draft.property({arrayType: 'Notification'})
60
+ public notification?: Notification[];
61
+
62
+ @Draft.property()
63
+ public job?: Job;
64
+
65
+ @Draft.property({arrayType: 'Job'})
66
+ public sharedWithJobs?: Job[];
67
+
68
+ public commentsYoungestToEldest = () => {
69
+ if (this.comments === undefined) {
70
+ throw 'comments is undefined. did you forget to embed it?';
71
+ }
72
+ return this.comments.sort((a, b) => {
73
+ if (a.id === undefined || b.id === undefined) {
74
+ throw 'comment id is undefined. did you forget to embed it?';
75
+ }
76
+ return a.id - b.id;
77
+ });
78
+ };
79
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make DraftComment', () => {
4
+ const merchi = new Merchi();
5
+ const draftComment = new merchi.DraftComment();
6
+ expect(draftComment).toBeTruthy();
7
+ });
@@ -0,0 +1,63 @@
1
+ import { Draft } from './draft.js';
2
+ import { Entity } from '../entity.js';
3
+ import { MerchiFile } from './file.js';
4
+ import { Job } from './job.js';
5
+ import { Notification } from './notification.js';
6
+ import { User } from './user.js';
7
+
8
+ export class DraftComment extends Entity {
9
+ protected static resourceName = 'draft_comments';
10
+ protected static singularName = 'draftComment';
11
+ protected static pluralName = 'draftComments';
12
+
13
+ @DraftComment.property({type: Date})
14
+ public archived?: Date | null;
15
+
16
+ @DraftComment.property()
17
+ public id?: number;
18
+
19
+ @DraftComment.property({type: Date})
20
+ public date?: Date | null;
21
+
22
+ @DraftComment.property({type: Date})
23
+ public lastEditedTime?: Date | null;
24
+
25
+ @DraftComment.property()
26
+ public urgency?: number;
27
+
28
+ @DraftComment.property()
29
+ public text?: string;
30
+
31
+ @DraftComment.property()
32
+ public changeRequest?: boolean;
33
+
34
+ @DraftComment.property()
35
+ public sendSms?: boolean;
36
+
37
+ @DraftComment.property()
38
+ public sendEmail?: boolean;
39
+
40
+ @DraftComment.property()
41
+ public sendWhatsapp?: boolean;
42
+
43
+ @DraftComment.property()
44
+ public user?: User;
45
+
46
+ @DraftComment.property()
47
+ public lastEditedBy?: User;
48
+
49
+ @DraftComment.property({arrayType: 'MerchiFile'})
50
+ public files?: MerchiFile[];
51
+
52
+ @DraftComment.property({arrayType: 'User'})
53
+ public forwards?: User[];
54
+
55
+ @DraftComment.property({arrayType: 'Notification'})
56
+ public notifications?: Notification[];
57
+
58
+ @DraftComment.property({type: Draft})
59
+ public draft?: Draft | null;
60
+
61
+ @DraftComment.property({type: Job})
62
+ public job?: Job | null;
63
+ }
@@ -0,0 +1,42 @@
1
+ import { setup, mockFetch } from '../test_util.js';
2
+ import { DraftPreview } from './draft_preview.js';
3
+
4
+ setup();
5
+
6
+ test('can create draft preview from json', () => {
7
+ const mockData = {
8
+ draft_preview: {
9
+ id: 1,
10
+ name: 'Test Preview',
11
+ description: 'Test Description',
12
+ date: '2024-03-26T10:00:00Z',
13
+ height: 800,
14
+ width: 600
15
+ }
16
+ };
17
+
18
+ const draftPreview = new DraftPreview();
19
+ draftPreview.fromJson(mockData.draft_preview);
20
+
21
+ expect(draftPreview.id).toBe(1);
22
+ expect(draftPreview.name).toBe('Test Preview');
23
+ expect(draftPreview.description).toBe('Test Description');
24
+ expect(draftPreview.date).toBeInstanceOf(Date);
25
+ expect(draftPreview.height).toBe(800);
26
+ expect(draftPreview.width).toBe(600);
27
+ });
28
+
29
+ test('can fetch draft preview from server', () => {
30
+ const mockData = {
31
+ draft_preview: {
32
+ id: 1,
33
+ name: 'Test Preview'
34
+ }
35
+ };
36
+
37
+ mockFetch(true, mockData, 200);
38
+ return DraftPreview.get(1).then(draftPreview => {
39
+ expect(draftPreview.id).toBe(1);
40
+ expect(draftPreview.name).toBe('Test Preview');
41
+ });
42
+ });
@@ -0,0 +1,37 @@
1
+ import { Entity } from '../entity.js';
2
+ import { MerchiFile } from './file.js';
3
+ import { Product } from './product.js';
4
+ import { DraftPreviewLayer } from './draft_preview_layer.js';
5
+
6
+ export class DraftPreview extends Entity {
7
+ protected static resourceName = 'draft_previews';
8
+ protected static singularName = 'draftPreview';
9
+ protected static pluralName = 'draftPreviews';
10
+
11
+ @DraftPreview.property()
12
+ public id?: number;
13
+
14
+ @DraftPreview.property({type: MerchiFile})
15
+ public file?: MerchiFile;
16
+
17
+ @DraftPreview.property({type: Product})
18
+ public product?: Product;
19
+
20
+ @DraftPreview.property({type: String})
21
+ public description?: string | null;
22
+
23
+ @DraftPreview.property({type: String})
24
+ public name?: string | null;
25
+
26
+ @DraftPreview.property({type: Date})
27
+ public date?: Date | null;
28
+
29
+ @DraftPreview.property()
30
+ public height?: number;
31
+
32
+ @DraftPreview.property()
33
+ public width?: number;
34
+
35
+ @DraftPreview.property({arrayType: 'DraftPreviewLayer'})
36
+ public draftPreviewLayers?: DraftPreviewLayer[];
37
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make DraftPreviewLayer', () => {
4
+ const merchi = new Merchi();
5
+ const draftPreviewLayer = new merchi.DraftPreviewLayer();
6
+ expect(draftPreviewLayer).toBeTruthy();
7
+ });
@@ -0,0 +1,21 @@
1
+ import { Entity } from '../entity.js';
2
+ import { DraftPreview } from './draft_preview.js';
3
+ import { DraftTemplate } from './draft_template.js';
4
+
5
+ export class DraftPreviewLayer extends Entity {
6
+ protected static resourceName = 'draft_preview_layers';
7
+ protected static singularName = 'draftPreviewLayer';
8
+ protected static pluralName = 'draftPreviewLayers';
9
+
10
+ @DraftPreviewLayer.property()
11
+ public id?: number;
12
+
13
+ @DraftPreviewLayer.property({type: String})
14
+ public layerName?: string;
15
+
16
+ @DraftPreviewLayer.property({type: DraftPreview})
17
+ public draftPreview?: DraftPreview;
18
+
19
+ @DraftPreviewLayer.property({type: DraftTemplate})
20
+ public draftTemplate?: DraftTemplate;
21
+ }
@@ -0,0 +1,14 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make DraftTemplate', () => {
4
+ const merchi = new Merchi();
5
+ const draftTemplate = new merchi.DraftTemplate();
6
+ expect(draftTemplate).toBeTruthy();
7
+ });
8
+
9
+ test('customisationMap accepts JSON object from server', () => {
10
+ const merchi = new Merchi();
11
+ const draftTemplate = new merchi.DraftTemplate();
12
+ draftTemplate.fromJson({ customisationMap: { regions: [] } });
13
+ expect(draftTemplate.customisationMap).toEqual({ regions: [] });
14
+ });
@@ -0,0 +1,81 @@
1
+ import { DraftPreviewLayer } from './draft_preview_layer.js';
2
+ import { Entity } from '../entity.js';
3
+ import { MerchiFile } from './file.js';
4
+ import { Job } from './job.js';
5
+ import { Product } from './product.js';
6
+ import { VariationField } from './variation_field.js';
7
+ import { VariationFieldsOption } from './variation_fields_option.js';
8
+
9
+ /**
10
+ * Runtime type tag only. The API returns `customisationMap` as arbitrary JSON;
11
+ * the entity layer refuses `Object` from decorator metadata, so we cannot use
12
+ * `any` / plain object without an explicit `type` option here. A const class
13
+ * expression is used so `noUnusedLocals` counts the symbol as used (a named
14
+ * class referenced only from decorators can trigger TS6196).
15
+ */
16
+ const customisationMapPropertyType = class {};
17
+
18
+ export class DraftTemplate extends Entity {
19
+ protected static resourceName = 'draft_templates';
20
+ protected static singularName = 'draftTemplate';
21
+ protected static pluralName = 'draftTemplates';
22
+
23
+ @DraftTemplate.property({type: Date})
24
+ public archived?: Date | null;
25
+
26
+ @DraftTemplate.property()
27
+ public id?: number;
28
+
29
+ @DraftTemplate.property({type: Date})
30
+ public date?: Date | null;
31
+
32
+ @DraftTemplate.property()
33
+ public description?: string;
34
+
35
+ @DraftTemplate.property()
36
+ public name?: string;
37
+
38
+ @DraftTemplate.property()
39
+ public height?: number;
40
+
41
+ @DraftTemplate.property()
42
+ public width?: number;
43
+
44
+ @DraftTemplate.property({type: MerchiFile})
45
+ public file?: MerchiFile;
46
+
47
+ @DraftTemplate.property({type: 'MerchiFile'})
48
+ public design?: MerchiFile;
49
+
50
+ @DraftTemplate.property({type: Product})
51
+ public product?: Product | null;
52
+
53
+ @DraftTemplate.property({type: Job})
54
+ public job?: Job | null;
55
+
56
+ @DraftTemplate.property({arrayType: 'VariationFieldsOption'})
57
+ public selectedByVariationFieldOptions?: VariationFieldsOption[];
58
+
59
+ @DraftTemplate.property({arrayType: 'VariationField'})
60
+ public editedByVariationFields?: VariationField[];
61
+
62
+ @DraftTemplate.property({arrayType: 'DraftPreviewLayer'})
63
+ public draftPreviewLayers?: DraftPreviewLayer[];
64
+
65
+ // Cached template customisation map -- which regions of the template
66
+ // image are editable (text placeholders, body colour fill, print
67
+ // area) versus preserved. Populated lazily by the backend when a
68
+ // template is first rendered, or set manually by an operator (in
69
+ // which case ``customisationMapSource === 'manual'`` and the auto
70
+ // analyser leaves it alone). ``customisationMapFileId`` records the
71
+ // ``file.id`` the cached map was generated from so the analyser
72
+ // knows when to re-run after the template image is replaced.
73
+ @DraftTemplate.property({type: customisationMapPropertyType})
74
+ public customisationMap?: Record<string, unknown> | null;
75
+
76
+ @DraftTemplate.property({type: String})
77
+ public customisationMapSource?: string | null;
78
+
79
+ @DraftTemplate.property({type: String})
80
+ public customisationMapFileId?: string | null;
81
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make EmailAddress', () => {
4
+ const merchi = new Merchi();
5
+ const emailAddress = new merchi.EmailAddress();
6
+ expect(emailAddress).toBeTruthy();
7
+ });
@@ -0,0 +1,24 @@
1
+ import { Company } from './company.js';
2
+ import { Entity } from '../entity.js';
3
+ import { User } from './user.js';
4
+
5
+ export class EmailAddress extends Entity {
6
+ protected static resourceName = 'email_addresses';
7
+ protected static singularName = 'emailAddress';
8
+ protected static pluralName = 'emailAddresses';
9
+
10
+ @EmailAddress.property({type: Date})
11
+ public archived?: Date | null;
12
+
13
+ @EmailAddress.property()
14
+ public id?: number;
15
+
16
+ @EmailAddress.property()
17
+ public emailAddress?: string;
18
+
19
+ @EmailAddress.property({arrayType: 'User'})
20
+ public users?: User[];
21
+
22
+ @EmailAddress.property({arrayType: 'Company'})
23
+ public companies?: Company[];
24
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make EmailCounter', () => {
4
+ const merchi = new Merchi();
5
+ const emailCounter = new merchi.EmailCounter();
6
+ expect(emailCounter).toBeTruthy();
7
+ });
@@ -0,0 +1,20 @@
1
+ import { Entity } from '../entity.js';
2
+
3
+ export class EmailCounter extends Entity {
4
+ protected static resourceName = 'email_counters';
5
+ protected static singularName = 'emailCounter';
6
+ protected static pluralName = 'emailCounters';
7
+ protected static primaryKey = 'emailAddress';
8
+
9
+ @EmailCounter.property()
10
+ public emailAddress?: string;
11
+
12
+ @EmailCounter.property()
13
+ public unsubscribed?: boolean;
14
+
15
+ @EmailCounter.property()
16
+ public silenced?: boolean;
17
+
18
+ @EmailCounter.property()
19
+ public tokens?: number;
20
+ }
@@ -0,0 +1,7 @@
1
+ import { Merchi } from '../merchi.js';
2
+
3
+ test('can make EnrolledDomain', () => {
4
+ const merchi = new Merchi();
5
+ const enrolledDomain = new merchi.EnrolledDomain();
6
+ expect(enrolledDomain).toBeTruthy();
7
+ });