@sixtyninecommerce/admin 0.10.0 → 0.12.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 (302) hide show
  1. package/README.md +5772 -118
  2. package/dist/auth/index.d.ts +7 -1
  3. package/dist/auth/index.js +8 -1
  4. package/dist/catalog/assets.d.ts +120 -8
  5. package/dist/catalog/assets.js +98 -12
  6. package/dist/catalog/collections.d.ts +279 -14
  7. package/dist/catalog/collections.js +246 -15
  8. package/dist/catalog/documents.d.ts +142 -0
  9. package/dist/catalog/documents.js +114 -0
  10. package/dist/catalog/index.d.ts +54 -6
  11. package/dist/catalog/index.js +10 -1
  12. package/dist/catalog/metadata.d.ts +244 -0
  13. package/dist/catalog/metadata.js +220 -0
  14. package/dist/catalog/products.d.ts +159 -19
  15. package/dist/catalog/products.js +88 -13
  16. package/dist/catalog/properties.d.ts +140 -14
  17. package/dist/catalog/properties.js +65 -1
  18. package/dist/catalog/recommendations.d.ts +288 -0
  19. package/dist/catalog/recommendations.js +237 -0
  20. package/dist/catalog/reviews.d.ts +381 -0
  21. package/dist/catalog/reviews.js +325 -0
  22. package/dist/catalog/types.d.ts +17 -1
  23. package/dist/catalog/types.js +10 -0
  24. package/dist/catalog/variant-find.d.ts +136 -0
  25. package/dist/catalog/variant-find.js +239 -0
  26. package/dist/catalog/variants.d.ts +293 -26
  27. package/dist/catalog/variants.js +164 -7
  28. package/dist/catalog/visibility.d.ts +38 -7
  29. package/dist/catalog/visibility.js +19 -1
  30. package/dist/client.d.ts +121 -9
  31. package/dist/client.js +53 -14
  32. package/dist/content/assets.d.ts +285 -0
  33. package/dist/content/assets.js +181 -0
  34. package/dist/content/forms.d.ts +332 -1
  35. package/dist/content/forms.js +140 -4
  36. package/dist/content/items.d.ts +292 -0
  37. package/dist/content/items.js +170 -0
  38. package/dist/content/menus.d.ts +254 -0
  39. package/dist/content/menus.js +70 -0
  40. package/dist/content/strings.d.ts +137 -0
  41. package/dist/content/strings.js +82 -0
  42. package/dist/content/types.d.ts +282 -0
  43. package/dist/content/types.js +100 -0
  44. package/dist/customers/age-verification.d.ts +66 -0
  45. package/dist/customers/age-verification.js +79 -0
  46. package/dist/customers/credit.d.ts +263 -0
  47. package/dist/customers/credit.js +244 -0
  48. package/dist/customers/delivery-preferences.d.ts +120 -0
  49. package/dist/customers/delivery-preferences.js +97 -0
  50. package/dist/customers/delivery-terms.d.ts +44 -0
  51. package/dist/customers/delivery-terms.js +32 -0
  52. package/dist/customers/groups.d.ts +207 -0
  53. package/dist/customers/groups.js +438 -0
  54. package/dist/customers/index.d.ts +462 -37
  55. package/dist/customers/index.js +317 -40
  56. package/dist/customers/invitation-status.d.ts +57 -0
  57. package/dist/customers/invitation-status.js +21 -0
  58. package/dist/customers/notes.d.ts +67 -0
  59. package/dist/customers/notes.js +51 -0
  60. package/dist/customers/notification-recipients.d.ts +97 -0
  61. package/dist/customers/notification-recipients.js +84 -0
  62. package/dist/customers/saved-lists.d.ts +42 -0
  63. package/dist/customers/saved-lists.js +61 -0
  64. package/dist/customers/vat.d.ts +83 -0
  65. package/dist/customers/vat.js +46 -0
  66. package/dist/customers/wire.d.ts +20 -0
  67. package/dist/customers/wire.js +35 -0
  68. package/dist/documents/ar.d.ts +307 -0
  69. package/dist/documents/ar.js +254 -0
  70. package/dist/documents/emails.d.ts +150 -0
  71. package/dist/documents/emails.js +220 -0
  72. package/dist/documents/index.d.ts +744 -21
  73. package/dist/documents/index.js +438 -24
  74. package/dist/documents/pdf.d.ts +2 -0
  75. package/dist/documents/pdf.js +11 -0
  76. package/dist/fulfillments/create.d.ts +167 -0
  77. package/dist/fulfillments/create.js +216 -0
  78. package/dist/fulfillments/index.d.ts +163 -11
  79. package/dist/fulfillments/index.js +135 -6
  80. package/dist/fulfillments/payment-policy.d.ts +64 -0
  81. package/dist/fulfillments/payment-policy.js +140 -0
  82. package/dist/fulfillments/warehouse.d.ts +724 -0
  83. package/dist/fulfillments/warehouse.js +914 -0
  84. package/dist/geo/index.d.ts +119 -0
  85. package/dist/geo/index.js +107 -0
  86. package/dist/index.d.ts +147 -39
  87. package/dist/index.js +51 -12
  88. package/dist/integrations/afas-actions.d.ts +234 -0
  89. package/dist/integrations/afas-actions.js +310 -0
  90. package/dist/integrations/afas-types.d.ts +483 -0
  91. package/dist/integrations/afas-types.js +5 -0
  92. package/dist/integrations/afas.d.ts +234 -0
  93. package/dist/integrations/afas.js +290 -0
  94. package/dist/integrations/connections.d.ts +103 -0
  95. package/dist/integrations/connections.js +55 -0
  96. package/dist/integrations/esp.d.ts +313 -0
  97. package/dist/integrations/esp.js +169 -0
  98. package/dist/integrations/exact-online-types.d.ts +965 -0
  99. package/dist/integrations/exact-online-types.js +6 -0
  100. package/dist/integrations/exact-online.d.ts +784 -0
  101. package/dist/integrations/exact-online.js +1089 -0
  102. package/dist/integrations/index.d.ts +44 -3
  103. package/dist/integrations/index.js +23 -3
  104. package/dist/integrations/pipeline-discoveries.d.ts +65 -0
  105. package/dist/integrations/pipeline-discoveries.js +65 -0
  106. package/dist/integrations/pipeline-keys.d.ts +13 -0
  107. package/dist/integrations/pipeline-keys.js +22 -0
  108. package/dist/integrations/pipeline-runs.d.ts +119 -0
  109. package/dist/integrations/pipeline-runs.js +87 -0
  110. package/dist/integrations/pipelines.d.ts +87 -15
  111. package/dist/integrations/pipelines.js +41 -22
  112. package/dist/integrations/price-import.d.ts +223 -0
  113. package/dist/integrations/price-import.js +124 -0
  114. package/dist/integrations/types.d.ts +367 -3
  115. package/dist/integrations/types.js +4 -3
  116. package/dist/locations/index.d.ts +66 -0
  117. package/dist/locations/index.js +31 -0
  118. package/dist/meta/index.d.ts +172 -0
  119. package/dist/metafields/index.d.ts +8 -1
  120. package/dist/metafields/index.js +10 -0
  121. package/dist/orders/cancel-with-money.d.ts +237 -0
  122. package/dist/orders/cancel-with-money.js +155 -0
  123. package/dist/orders/commit-edit.d.ts +23 -1
  124. package/dist/orders/commit-edit.js +19 -2
  125. package/dist/orders/deposit-policy.d.ts +3 -1
  126. package/dist/orders/drafts.d.ts +800 -0
  127. package/dist/orders/drafts.js +771 -0
  128. package/dist/orders/fields.d.ts +245 -0
  129. package/dist/orders/fields.js +188 -0
  130. package/dist/orders/get.d.ts +29 -19
  131. package/dist/orders/get.js +17 -8
  132. package/dist/orders/index.d.ts +66 -15
  133. package/dist/orders/index.js +25 -2
  134. package/dist/orders/lifecycle.d.ts +128 -0
  135. package/dist/orders/lifecycle.js +158 -0
  136. package/dist/orders/line-price-preview.d.ts +7 -2
  137. package/dist/orders/list.d.ts +243 -0
  138. package/dist/orders/list.js +487 -0
  139. package/dist/orders/manual-discounts.d.ts +13 -5
  140. package/dist/orders/manual-pricing.d.ts +5 -0
  141. package/dist/orders/money-view.d.ts +149 -0
  142. package/dist/orders/money-view.js +99 -0
  143. package/dist/orders/order-entry.d.ts +20 -7
  144. package/dist/orders/plan-edit.d.ts +34 -2
  145. package/dist/orders/plan-edit.js +112 -11
  146. package/dist/orders/settings.d.ts +201 -0
  147. package/dist/orders/settings.js +325 -0
  148. package/dist/orders/status.d.ts +159 -13
  149. package/dist/orders/status.js +21 -0
  150. package/dist/orders/surcharges.d.ts +20 -1
  151. package/dist/orders/surcharges.js +37 -11
  152. package/dist/payments/account-credit.d.ts +46 -0
  153. package/dist/payments/account-credit.js +42 -0
  154. package/dist/payments/ar.d.ts +292 -0
  155. package/dist/payments/ar.js +223 -0
  156. package/dist/payments/connected-account.d.ts +47 -0
  157. package/dist/payments/connected-account.js +61 -0
  158. package/dist/payments/credit-noted-fields.d.ts +19 -0
  159. package/dist/payments/credit-noted-fields.js +69 -0
  160. package/dist/payments/customer-consent.d.ts +30 -0
  161. package/dist/payments/customer-consent.js +49 -0
  162. package/dist/payments/index.d.ts +340 -19
  163. package/dist/payments/index.js +151 -1
  164. package/dist/payments/methods.d.ts +303 -8
  165. package/dist/payments/methods.js +337 -7
  166. package/dist/payments/mollie-methods.d.ts +159 -0
  167. package/dist/payments/mollie-methods.js +141 -0
  168. package/dist/payments/payment-links.d.ts +180 -0
  169. package/dist/payments/payment-links.js +97 -0
  170. package/dist/payments/provider-keys.d.ts +150 -0
  171. package/dist/payments/provider-keys.js +118 -0
  172. package/dist/payments/providers.d.ts +86 -11
  173. package/dist/payments/providers.js +29 -0
  174. package/dist/payments/requests.d.ts +147 -0
  175. package/dist/payments/requests.js +93 -0
  176. package/dist/payments/store-credit-fields.d.ts +15 -0
  177. package/dist/payments/store-credit-fields.js +51 -0
  178. package/dist/pickups/index.d.ts +106 -0
  179. package/dist/pickups/index.js +108 -0
  180. package/dist/platform/channels.d.ts +132 -0
  181. package/dist/platform/channels.js +128 -0
  182. package/dist/platform/email-gateways.d.ts +165 -0
  183. package/dist/platform/email-gateways.js +78 -0
  184. package/dist/platform/geo.d.ts +123 -0
  185. package/dist/platform/geo.js +144 -0
  186. package/dist/platform/tax.d.ts +162 -0
  187. package/dist/platform/tax.js +169 -0
  188. package/dist/pos/anomalies.d.ts +158 -0
  189. package/dist/pos/anomalies.js +64 -0
  190. package/dist/pos/assisted-selling.d.ts +79 -0
  191. package/dist/pos/assisted-selling.js +38 -0
  192. package/dist/pos/exchanges.d.ts +108 -0
  193. package/dist/pos/exchanges.js +22 -0
  194. package/dist/pos/gift-cards.d.ts +135 -0
  195. package/dist/pos/gift-cards.js +47 -0
  196. package/dist/pos/index.d.ts +2370 -58
  197. package/dist/pos/index.js +854 -7
  198. package/dist/pos/no-receipt.d.ts +94 -0
  199. package/dist/pos/no-receipt.js +25 -0
  200. package/dist/pos/offline-sales.d.ts +228 -0
  201. package/dist/pos/offline-sales.js +170 -0
  202. package/dist/pos/pay-by-link.d.ts +143 -0
  203. package/dist/pos/pay-by-link.js +57 -0
  204. package/dist/pos/quick-keys.d.ts +103 -0
  205. package/dist/pos/quick-keys.js +45 -0
  206. package/dist/pos/reports.d.ts +360 -0
  207. package/dist/pos/reports.js +62 -0
  208. package/dist/pos/returns.d.ts +244 -0
  209. package/dist/pos/returns.js +83 -0
  210. package/dist/pricing/bulk-coupons.d.ts +139 -0
  211. package/dist/pricing/bulk-coupons.js +112 -0
  212. package/dist/pricing/index.d.ts +174 -4
  213. package/dist/pricing/index.js +174 -1
  214. package/dist/pricing/price-lists.d.ts +606 -0
  215. package/dist/pricing/price-lists.js +600 -0
  216. package/dist/purchasing/alerts.d.ts +104 -0
  217. package/dist/purchasing/alerts.js +88 -0
  218. package/dist/purchasing/backorders.d.ts +61 -0
  219. package/dist/purchasing/backorders.js +92 -0
  220. package/dist/purchasing/cost.d.ts +110 -0
  221. package/dist/purchasing/cost.js +86 -0
  222. package/dist/purchasing/index.d.ts +54 -0
  223. package/dist/purchasing/index.js +24 -0
  224. package/dist/purchasing/links.d.ts +263 -0
  225. package/dist/purchasing/links.js +192 -0
  226. package/dist/purchasing/purchase-orders.d.ts +551 -0
  227. package/dist/purchasing/purchase-orders.js +491 -0
  228. package/dist/purchasing/receipts.d.ts +396 -0
  229. package/dist/purchasing/receipts.js +287 -0
  230. package/dist/purchasing/replenishment.d.ts +281 -0
  231. package/dist/purchasing/replenishment.js +240 -0
  232. package/dist/purchasing/returns.d.ts +273 -0
  233. package/dist/purchasing/returns.js +229 -0
  234. package/dist/purchasing/settings.d.ts +152 -0
  235. package/dist/purchasing/settings.js +181 -0
  236. package/dist/purchasing/suppliers.d.ts +476 -0
  237. package/dist/purchasing/suppliers.js +438 -0
  238. package/dist/quotes/index.d.ts +518 -0
  239. package/dist/quotes/index.js +439 -0
  240. package/dist/reports/index.d.ts +71 -8
  241. package/dist/reports/index.js +74 -11
  242. package/dist/returns/index.d.ts +675 -21
  243. package/dist/returns/index.js +756 -11
  244. package/dist/search/index.d.ts +76 -1
  245. package/dist/search/index.js +63 -0
  246. package/dist/seo/config.d.ts +128 -0
  247. package/dist/seo/config.js +95 -0
  248. package/dist/seo/redirects.d.ts +125 -0
  249. package/dist/seo/redirects.js +60 -1
  250. package/dist/seo/settings.d.ts +147 -0
  251. package/dist/seo/settings.js +209 -0
  252. package/dist/shipping/definitions.d.ts +29 -0
  253. package/dist/shipping/definitions.js +47 -0
  254. package/dist/shipping/fulfillment-profiles.d.ts +174 -0
  255. package/dist/shipping/fulfillment-profiles.js +104 -0
  256. package/dist/shipping/hendriks.d.ts +97 -0
  257. package/dist/shipping/hendriks.js +50 -0
  258. package/dist/shipping/index.d.ts +54 -0
  259. package/dist/shipping/index.js +27 -0
  260. package/dist/shipping/methods.d.ts +205 -0
  261. package/dist/shipping/methods.js +240 -0
  262. package/dist/shipping/myparcel.d.ts +668 -0
  263. package/dist/shipping/myparcel.js +466 -0
  264. package/dist/shipping/parcel-count-suggestion.d.ts +2 -0
  265. package/dist/shipping/parcel-rule.d.ts +6 -5
  266. package/dist/shipping/parcel-rule.js +21 -23
  267. package/dist/shipping/rate-tables.d.ts +324 -0
  268. package/dist/shipping/rate-tables.js +390 -0
  269. package/dist/shipping/ship-to-countries.d.ts +75 -0
  270. package/dist/shipping/ship-to-countries.js +47 -0
  271. package/dist/stock/by-location.d.ts +86 -0
  272. package/dist/stock/by-location.js +94 -0
  273. package/dist/stock/index.d.ts +18 -4
  274. package/dist/stock/index.js +7 -0
  275. package/dist/stock/locations.d.ts +144 -0
  276. package/dist/stock/locations.js +168 -0
  277. package/dist/stock/settings.d.ts +106 -0
  278. package/dist/stock/settings.js +103 -0
  279. package/dist/stock/transfers.d.ts +386 -52
  280. package/dist/stock/transfers.js +222 -17
  281. package/dist/stored-value/index.d.ts +312 -11
  282. package/dist/stored-value/index.js +223 -4
  283. package/dist/subscriptions/index.d.ts +682 -0
  284. package/dist/subscriptions/index.js +815 -0
  285. package/dist/tax/display-policy.d.ts +105 -0
  286. package/dist/tax/display-policy.js +84 -0
  287. package/dist/tax/index.d.ts +79 -1
  288. package/dist/tax/index.js +52 -0
  289. package/dist/tenant/email-style.d.ts +102 -0
  290. package/dist/tenant/email-style.js +72 -0
  291. package/dist/tenant/email-templates.d.ts +287 -0
  292. package/dist/tenant/email-templates.js +271 -0
  293. package/dist/tenant/notifications.d.ts +23 -17
  294. package/dist/tenant/settings-sources.d.ts +1 -1
  295. package/dist/tenant/time-zone.d.ts +17 -0
  296. package/dist/tenant/time-zone.js +11 -0
  297. package/dist/types.d.ts +50 -3
  298. package/dist/users/index.d.ts +3 -0
  299. package/dist/users/index.js +2 -0
  300. package/dist/users/warehouses.d.ts +50 -0
  301. package/dist/users/warehouses.js +51 -0
  302. package/package.json +2 -2
@@ -0,0 +1,324 @@
1
+ import { type Transport } from '@sixtyninecommerce/core';
2
+ import type { Call } from '../types.js';
3
+ /**
4
+ * A weight-zone rate table: what the `weight-zone-calculator` of a shipping method prices with.
5
+ * The engine calls it a `ShippingZoneConfig`; a method names it in its calculator argument
6
+ * `shippingZoneConfigId`.
7
+ */
8
+ export interface RateTableSummary {
9
+ id: string;
10
+ /** Unique within the store. */
11
+ name: string;
12
+ /**
13
+ * Turns a variant's package dimensions into a volumetric weight: length × width × height in cm,
14
+ * divided by this, is kilograms. An order is charged for the greater of its actual and its
15
+ * volumetric weight. `0` prices by actual weight only.
16
+ */
17
+ volumetricDivisor: number;
18
+ /** Grams a line weighs when its variant has no package weight; null weighs it as nothing. */
19
+ defaultWeightGrams: number | null;
20
+ /** A switched-off table prices nothing: every method using it quotes nothing. */
21
+ enabled: boolean;
22
+ /** ISO-8601, UTC. */
23
+ createdAt: string;
24
+ /** ISO-8601, UTC. */
25
+ updatedAt: string;
26
+ }
27
+ /** A place a domestic zone matches by postal code, or an international zone by country. */
28
+ export interface RateTableZoneMember {
29
+ id: string;
30
+ /** ISO 3166-1 alpha-2; an international zone's member. */
31
+ countryCode: string | null;
32
+ /** First digits of a postal code, start of the range; a domestic zone's member. */
33
+ postalCodeFrom: string | null;
34
+ /** End of the range, inclusive. */
35
+ postalCodeTo: string | null;
36
+ }
37
+ /** One weight tier's price in one currency. */
38
+ export interface RateTableRate {
39
+ id: string;
40
+ /** Inclusive. */
41
+ minWeightGrams: number;
42
+ /** Exclusive: the tier covers weights from its start up to, not including, this. */
43
+ maxWeightGrams: number;
44
+ /**
45
+ * In minor units: hundredths of {@link currencyCode} for EVERY currency, as the platform stores
46
+ * all money (€6.95 is 695, ¥1,200 is 120000). In the tax basis the method's calculator says.
47
+ */
48
+ price: number;
49
+ /** ISO 4217. */
50
+ currencyCode: string;
51
+ }
52
+ /** One zone of a rate table. */
53
+ export interface RateTableZone {
54
+ id: string;
55
+ name: string;
56
+ /**
57
+ * `domestic` matches its members' postal-code ranges, `international` their countries. A zone
58
+ * stored before the engine judged the type may hold another word, which prices as
59
+ * `international`.
60
+ */
61
+ type: string;
62
+ /** Zones are matched in position order; the first that matches the address prices the order. */
63
+ position: number;
64
+ members: RateTableZoneMember[];
65
+ /**
66
+ * In start-weight order. An order is priced with the tier of its own currency that covers its
67
+ * weight; without one, with the store's default-currency tier converted at the checkout's
68
+ * exchange rate; without either, the method quotes nothing.
69
+ */
70
+ rates: RateTableRate[];
71
+ /** ISO-8601, UTC. */
72
+ createdAt: string;
73
+ /** ISO-8601, UTC. */
74
+ updatedAt: string;
75
+ }
76
+ /** A rate table with its zones, as {@link RateTablesModule.get} reads it. */
77
+ export interface RateTable extends RateTableSummary {
78
+ /** In position order. */
79
+ zones: RateTableZone[];
80
+ }
81
+ /** A new rate table, as {@link RateTablesModule.create} takes it. It starts switched on. */
82
+ export interface CreateRateTableInput {
83
+ /** Trimmed; at most 255 characters. */
84
+ name: string;
85
+ /** Left out: 5000. See {@link RateTableSummary.volumetricDivisor}. */
86
+ volumetricDivisor?: number;
87
+ /** Left out or null: none. See {@link RateTableSummary.defaultWeightGrams}. */
88
+ defaultWeightGrams?: number | null;
89
+ }
90
+ /** A change to a rate table: a field left out keeps what the table has. */
91
+ export interface UpdateRateTableInput {
92
+ name?: string;
93
+ volumetricDivisor?: number;
94
+ /** `null` clears it. */
95
+ defaultWeightGrams?: number | null;
96
+ enabled?: boolean;
97
+ }
98
+ /** How a zone matches an address. See {@link RateTableZone.type}. */
99
+ export type RateTableZoneType = 'domestic' | 'international';
100
+ /** A new zone, as {@link RateTableZonesModule.create} takes it. It starts with no members or rates. */
101
+ export interface CreateRateTableZoneInput {
102
+ /** Trimmed; at most 255 characters. */
103
+ name: string;
104
+ type: RateTableZoneType;
105
+ /**
106
+ * Left out: after the table's last zone. A position another zone of the table holds is
107
+ * refused (`SHIPPING_ZONE_POSITION_TAKEN`); {@link RateTableZonesModule.reorder} moves zones.
108
+ */
109
+ position?: number;
110
+ }
111
+ /** A change to a zone: a field left out keeps what the zone has. */
112
+ export interface UpdateRateTableZoneInput {
113
+ name?: string;
114
+ /** Refused while the zone has members, which a zone of the other type would never match. */
115
+ type?: RateTableZoneType;
116
+ /** Refused (`SHIPPING_ZONE_POSITION_TAKEN`) when another zone of the table holds it. */
117
+ position?: number;
118
+ }
119
+ /**
120
+ * One place a zone matches, as {@link RateTableZonesModule.setMembers} takes it: a domestic
121
+ * zone's member is a postal-code range (no country), an international zone's a country (no
122
+ * postal codes).
123
+ */
124
+ export interface RateTableZoneMemberInput {
125
+ /** ISO 3166-1 alpha-2. */
126
+ countryCode?: string | null;
127
+ /** The leading digits of a postal code, start of the range. */
128
+ postalCodeFrom?: string | null;
129
+ /** End of the range, inclusive. */
130
+ postalCodeTo?: string | null;
131
+ }
132
+ /** One weight tier, as {@link RateTableZonesModule.setRates} takes it. */
133
+ export interface RateTableRateInput {
134
+ /** Inclusive, in grams. */
135
+ minWeightGrams: number;
136
+ /** Exclusive, in grams. */
137
+ maxWeightGrams: number;
138
+ /** In minor units, as {@link RateTableRate.price}: hundredths for every currency. */
139
+ price: number;
140
+ /** ISO 4217. */
141
+ currencyCode: string;
142
+ }
143
+ /**
144
+ * `admin.shipping.rateTables.zones`: the zones of the store's rate tables, their members and
145
+ * their rates. A table or zone of another store is refused as not found (`ENTITY_NOT_FOUND`; a
146
+ * zone delete `SHIPPING_ZONE_NOT_DELETED`), whatever its id, as a missing one is.
147
+ *
148
+ * Besides {@link RateTablesModule}'s `SHIPPING_ZONE_INPUT_INVALID` (here with pointers such as
149
+ * `/input/type`, `/members/0/postalCodeTo`, `/rates/1/maxWeightGrams` or `/zoneIds/2`, and the
150
+ * rules `enum`, `pattern`, `not`, `exclusiveMinimum`, `uniqueItems` and `overlap`), the doors
151
+ * refuse:
152
+ *
153
+ * - `SHIPPING_ZONE_POSITION_TAKEN` (`ConflictError`, 409, on `/input/position`): another zone of
154
+ * the table is at the position. Zones are matched in position order, first match wins.
155
+ * - `SHIPPING_ZONE_IN_USE` (`BusinessRuleError`, 422): deleting the last zone of a table a
156
+ * shipping method of this store prices with, which would make it quote nothing. The message
157
+ * names the methods.
158
+ *
159
+ * Every write runs in one transaction: a refused write changes nothing, and a replace
160
+ * (`setMembers`, `setRates`) refused keeps the zone's previous members or rates.
161
+ */
162
+ export interface RateTableZonesModule {
163
+ /**
164
+ * Add a zone to the store's rate table `tableId`, and answer it as {@link RateTablesModule.get}
165
+ * reads a zone. Refused `SHIPPING_ZONE_INPUT_INVALID` (a blank or too long name, a type other
166
+ * than `domestic` or `international`, a negative position), `SHIPPING_ZONE_POSITION_TAKEN`, or
167
+ * `ENTITY_NOT_FOUND` for a table the store does not have.
168
+ *
169
+ * @effect write
170
+ * @permission UpdateSettings
171
+ */
172
+ create(tableId: string, input: CreateRateTableZoneInput, options?: Call): Promise<RateTableZone>;
173
+ /**
174
+ * Change a zone, and answer it as {@link RateTablesModule.get} reads a zone. Refused as
175
+ * {@link create} is, for `null` on a field (none can be cleared), for a type change while the
176
+ * zone has members, or `ENTITY_NOT_FOUND`.
177
+ *
178
+ * @effect write
179
+ * @permission UpdateSettings
180
+ */
181
+ update(zoneId: string, patch: UpdateRateTableZoneInput, options?: Call): Promise<RateTableZone>;
182
+ /**
183
+ * Delete a zone with its members and rates. Refused `SHIPPING_ZONE_IN_USE` for the last zone of
184
+ * a table a shipping method of this store prices with.
185
+ *
186
+ * The engine answers a zone the store does not have (a missing, malformed or another store's
187
+ * id, or one already deleted) as a result rather than an error; this SDK raises it as
188
+ * `SHIPPING_ZONE_NOT_DELETED` (`ConflictError`, 409) with the engine's reason.
189
+ *
190
+ * @effect destructive
191
+ * @permission UpdateSettings
192
+ */
193
+ delete(zoneId: string, options?: Call): Promise<void>;
194
+ /**
195
+ * Put the zones of table `tableId` in the order given; each takes its index as its position.
196
+ * The list names EVERY zone of the table exactly once: one listed twice, or one left out, is
197
+ * refused `SHIPPING_ZONE_INPUT_INVALID` (`uniqueItems` on `/zoneIds/<i>`, `required` on
198
+ * `/zoneIds`), and an id that is not a zone of this table `ENTITY_NOT_FOUND`. Answers the zones
199
+ * in their new order.
200
+ *
201
+ * @effect write
202
+ * @permission UpdateSettings
203
+ */
204
+ reorder(tableId: string, zoneIds: string[], options?: Call): Promise<RateTableZone[]>;
205
+ /**
206
+ * Replace the zone's members with `members`, and answer them as stored (in the order sent,
207
+ * trimmed, the country upper-cased). Refused `SHIPPING_ZONE_INPUT_INVALID` per member, on `/members/<i>/<field>`:
208
+ * a member the zone's type would never match (`not`), a range missing an end (`required`), a
209
+ * postal code that is not digits (`pattern`), a range that ends before it starts (`minimum`), a
210
+ * country that is not two letters (`pattern`).
211
+ *
212
+ * @effect write
213
+ * @permission UpdateSettings
214
+ */
215
+ setMembers(zoneId: string, members: RateTableZoneMemberInput[], options?: Call): Promise<RateTableZoneMember[]>;
216
+ /**
217
+ * Replace the zone's weight tiers with `rates`, and answer them as stored (in the order sent,
218
+ * the currency trimmed and upper-cased; {@link RateTablesModule.get} reads them in start-weight
219
+ * order). What every customer whose order the zone prices pays from the next quote on.
220
+ *
221
+ * Refused `SHIPPING_ZONE_INPUT_INVALID` per tier, on `/rates/<i>/<field>`: a negative weight or
222
+ * price (`minimum`), a tier that ends at or before its start (`exclusiveMinimum`), a currency
223
+ * that is not ISO 4217 (`enum`), and, within one currency, two tiers with the same start
224
+ * (`uniqueItems`) or sharing weights (`overlap`). Gaps are allowed: a weight in a gap gets no
225
+ * quote.
226
+ *
227
+ * @effect money
228
+ * @permission UpdateSettings
229
+ */
230
+ setRates(zoneId: string, rates: RateTableRateInput[], options?: Call): Promise<RateTableRate[]>;
231
+ }
232
+ /**
233
+ * `admin.shipping.rateTables`: the store's weight-zone rate tables (headless spec §9.2
234
+ * `shipping`, "zones, calculator config"). Scoped to the store the client is on: another
235
+ * store's table is not listed, reads as null and is refused as not found, whatever its id.
236
+ *
237
+ * Every refusal of the engine's rate-table doors carries a code:
238
+ *
239
+ * - `SHIPPING_ZONE_INPUT_INVALID` (`ValidationError`, 400): what was sent cannot be stored.
240
+ * `error.details[]` names EVERY problem of the save at once, each with `field`, a JSON Pointer
241
+ * into the arguments (`/input/name`, `/input/volumetricDivisor`), and `code`, the rule broken
242
+ * (`required`, `type`, `minimum`, `maximum`, `maxLength`). The SDK raises the same code, with
243
+ * the same pointers, for a value it cannot send at all (not a string, not a whole number
244
+ * GraphQL's `Int` carries), before anything leaves.
245
+ * - `SHIPPING_ZONE_CONFIG_NAME_TAKEN` (`ConflictError`, 409): another table of this store has
246
+ * the name (`details[0].field` is `/input/name`). Another store's names are free.
247
+ * - `SHIPPING_ZONE_CONFIG_IN_USE` (`BusinessRuleError`, 422): a delete of a table a shipping
248
+ * method of this store prices with. The message names the methods (three, then "and N more");
249
+ * the engine also lists them as `extensions.shippingMethods` (`{ id, code, name }`), which this
250
+ * SDK does not lift onto the error. Nothing is deleted.
251
+ * - `ENTITY_NOT_FOUND` (`NotFoundError`, 404): an update of a table the store does not have (a
252
+ * missing, malformed or another store's id read alike).
253
+ * - `FORBIDDEN` (`PermissionDeniedError`, 403): reads need `ReadSettings`, writes
254
+ * `UpdateSettings` (a create and a delete too).
255
+ *
256
+ * Every write runs in one transaction: a refused write changes nothing.
257
+ */
258
+ export interface RateTablesModule {
259
+ /**
260
+ * Every rate table of the store, switched off or not, newest first. Not paged: a store has a
261
+ * handful.
262
+ *
263
+ * @effect read
264
+ * @permission ReadSettings
265
+ */
266
+ list(options?: Call): Promise<RateTableSummary[]>;
267
+ /**
268
+ * One rate table with its zones, their members and rates, or `null` when the store has no
269
+ * such table (a missing, malformed or another store's id read alike).
270
+ *
271
+ * @effect read
272
+ * @permission ReadSettings
273
+ */
274
+ get(id: string, options?: Call): Promise<RateTable | null>;
275
+ /**
276
+ * Add a rate table to the store, switched on and with no zones, and answer it as {@link get}
277
+ * reads it. Refused `SHIPPING_ZONE_INPUT_INVALID` (a blank or too long name, a negative
278
+ * divisor or default weight) or `SHIPPING_ZONE_CONFIG_NAME_TAKEN`.
279
+ *
280
+ * @effect write
281
+ * @permission UpdateSettings
282
+ */
283
+ create(input: CreateRateTableInput, options?: Call): Promise<RateTable>;
284
+ /**
285
+ * Change a rate table, and answer it as {@link get} reads it. Every method pricing with it
286
+ * quotes by the change from the next quote on, and switching it off makes them quote nothing
287
+ * (allowed: it is the switch's purpose, and it is undone by switching it back on).
288
+ *
289
+ * Refused `SHIPPING_ZONE_INPUT_INVALID` (as {@link create}, and `null` for the name, the
290
+ * divisor or `enabled`, which cannot be cleared), `SHIPPING_ZONE_CONFIG_NAME_TAKEN` or
291
+ * `ENTITY_NOT_FOUND`.
292
+ *
293
+ * @effect write
294
+ * @permission UpdateSettings
295
+ */
296
+ update(id: string, patch: UpdateRateTableInput, options?: Call): Promise<RateTable>;
297
+ /**
298
+ * Delete a rate table with its zones, members and rates. Refused
299
+ * `SHIPPING_ZONE_CONFIG_IN_USE` while a shipping method of this store prices with it (give the
300
+ * method another table, or delete it, first).
301
+ *
302
+ * The engine answers a table the store does not have (a missing, malformed or another store's
303
+ * id, or one already deleted) as a result rather than an error; this SDK raises it as
304
+ * `SHIPPING_ZONE_CONFIG_NOT_DELETED` (`ConflictError`, 409) with the engine's reason.
305
+ *
306
+ * @effect destructive
307
+ * @permission UpdateSettings
308
+ */
309
+ delete(id: string, options?: Call): Promise<void>;
310
+ /** The zones of the store's tables, their members and their rates. */
311
+ zones: RateTableZonesModule;
312
+ }
313
+ export declare const RATE_TABLES_QUERY = "\n query StoreRateTables {\n shippingZoneConfigs { \n id\n name\n volumetricDivisor\n defaultWeightGrams\n enabled\n createdAt\n updatedAt\n }\n }\n";
314
+ export declare const RATE_TABLE_QUERY = "\n query StoreRateTable($id: ID!) {\n shippingZoneConfig(id: $id) { \n \n id\n name\n volumetricDivisor\n defaultWeightGrams\n enabled\n createdAt\n updatedAt\n\n zones { \n id\n name\n type\n position\n members { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n rates { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n createdAt\n updatedAt\n }\n }\n }\n";
315
+ export declare const CREATE_RATE_TABLE_MUTATION = "\n mutation CreateStoreRateTable($input: CreateShippingZoneConfigInput!) {\n createShippingZoneConfig(input: $input) { \n \n id\n name\n volumetricDivisor\n defaultWeightGrams\n enabled\n createdAt\n updatedAt\n\n zones { \n id\n name\n type\n position\n members { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n rates { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n createdAt\n updatedAt\n }\n }\n }\n";
316
+ export declare const UPDATE_RATE_TABLE_MUTATION = "\n mutation UpdateStoreRateTable($id: ID!, $input: UpdateShippingZoneConfigInput!) {\n updateShippingZoneConfig(id: $id, input: $input) { \n \n id\n name\n volumetricDivisor\n defaultWeightGrams\n enabled\n createdAt\n updatedAt\n\n zones { \n id\n name\n type\n position\n members { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n rates { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n createdAt\n updatedAt\n }\n }\n }\n";
317
+ export declare const DELETE_RATE_TABLE_MUTATION = "\n mutation DeleteStoreRateTable($id: ID!) {\n deleteShippingZoneConfig(id: $id) {\n result\n message\n }\n }\n";
318
+ export declare const CREATE_RATE_TABLE_ZONE_MUTATION = "\n mutation CreateStoreRateTableZone($configId: ID!, $input: CreateShippingZoneInput!) {\n createShippingZone(configId: $configId, input: $input) { \n id\n name\n type\n position\n members { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n rates { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n createdAt\n updatedAt\n }\n }\n";
319
+ export declare const UPDATE_RATE_TABLE_ZONE_MUTATION = "\n mutation UpdateStoreRateTableZone($id: ID!, $input: UpdateShippingZoneInput!) {\n updateShippingZone(id: $id, input: $input) { \n id\n name\n type\n position\n members { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n rates { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n createdAt\n updatedAt\n }\n }\n";
320
+ export declare const DELETE_RATE_TABLE_ZONE_MUTATION = "\n mutation DeleteStoreRateTableZone($id: ID!) {\n deleteShippingZone(id: $id) {\n result\n message\n }\n }\n";
321
+ export declare const REORDER_RATE_TABLE_ZONES_MUTATION = "\n mutation ReorderStoreRateTableZones($configId: ID!, $zoneIds: [ID!]!) {\n reorderShippingZones(configId: $configId, zoneIds: $zoneIds) { \n id\n name\n type\n position\n members { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n rates { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n createdAt\n updatedAt\n }\n }\n";
322
+ export declare const SET_RATE_TABLE_ZONE_MEMBERS_MUTATION = "\n mutation SetStoreRateTableZoneMembers($zoneId: ID!, $members: [ShippingZoneMemberInput!]!) {\n setShippingZoneMembers(zoneId: $zoneId, members: $members) { \n id\n countryCode\n postalCodeFrom\n postalCodeTo\n }\n }\n";
323
+ export declare const SET_RATE_TABLE_ZONE_RATES_MUTATION = "\n mutation SetStoreRateTableZoneRates($zoneId: ID!, $rates: [ShippingRateInput!]!) {\n setShippingRates(zoneId: $zoneId, rates: $rates) { \n id\n minWeightGrams\n maxWeightGrams\n price\n currencyCode\n }\n }\n";
324
+ export declare function createRateTablesModule(transport: Transport): RateTablesModule;