@revenexx/node 0.1.0 → 0.1.1
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.
- package/README.md +3 -0
- package/dist/client.d.mts +25 -0
- package/dist/client.d.ts +25 -0
- package/dist/client.js +39 -18
- package/dist/client.js.map +1 -1
- package/dist/client.mjs +35 -14
- package/dist/client.mjs.map +1 -1
- package/dist/enums/approval-rule-approver-type.d.mts +7 -0
- package/dist/enums/approval-rule-approver-type.d.ts +7 -0
- package/dist/enums/approval-rule-approver-type.js +12 -0
- package/dist/enums/approval-rule-approver-type.js.map +1 -0
- package/dist/enums/approval-rule-approver-type.mjs +11 -0
- package/dist/enums/approval-rule-approver-type.mjs.map +1 -0
- package/dist/enums/approval-rule-condition.d.mts +10 -0
- package/dist/enums/approval-rule-condition.d.ts +10 -0
- package/dist/enums/approval-rule-condition.js +15 -0
- package/dist/enums/approval-rule-condition.js.map +1 -0
- package/dist/enums/approval-rule-condition.mjs +14 -0
- package/dist/enums/approval-rule-condition.mjs.map +1 -0
- package/dist/enums/approval-rule-create-request-approver-type.d.mts +7 -0
- package/dist/enums/approval-rule-create-request-approver-type.d.ts +7 -0
- package/dist/enums/approval-rule-create-request-approver-type.js +12 -0
- package/dist/enums/approval-rule-create-request-approver-type.js.map +1 -0
- package/dist/enums/approval-rule-create-request-approver-type.mjs +11 -0
- package/dist/enums/approval-rule-create-request-approver-type.mjs.map +1 -0
- package/dist/enums/approval-rule-create-request-condition.d.mts +10 -0
- package/dist/enums/approval-rule-create-request-condition.d.ts +10 -0
- package/dist/enums/approval-rule-create-request-condition.js +15 -0
- package/dist/enums/approval-rule-create-request-condition.js.map +1 -0
- package/dist/enums/approval-rule-create-request-condition.mjs +14 -0
- package/dist/enums/approval-rule-create-request-condition.mjs.map +1 -0
- package/dist/enums/approval-rule-create-request-effect.d.mts +7 -0
- package/dist/enums/approval-rule-create-request-effect.d.ts +7 -0
- package/dist/enums/approval-rule-create-request-effect.js +12 -0
- package/dist/enums/approval-rule-create-request-effect.js.map +1 -0
- package/dist/enums/approval-rule-create-request-effect.mjs +11 -0
- package/dist/enums/approval-rule-create-request-effect.mjs.map +1 -0
- package/dist/enums/approval-rule-effect.d.mts +7 -0
- package/dist/enums/approval-rule-effect.d.ts +7 -0
- package/dist/enums/approval-rule-effect.js +12 -0
- package/dist/enums/approval-rule-effect.js.map +1 -0
- package/dist/enums/approval-rule-effect.mjs +11 -0
- package/dist/enums/approval-rule-effect.mjs.map +1 -0
- package/dist/enums/approval-rule-update-request-approver-type.d.mts +7 -0
- package/dist/enums/approval-rule-update-request-approver-type.d.ts +7 -0
- package/dist/enums/approval-rule-update-request-approver-type.js +12 -0
- package/dist/enums/approval-rule-update-request-approver-type.js.map +1 -0
- package/dist/enums/approval-rule-update-request-approver-type.mjs +11 -0
- package/dist/enums/approval-rule-update-request-approver-type.mjs.map +1 -0
- package/dist/enums/approval-rule-update-request-condition.d.mts +10 -0
- package/dist/enums/approval-rule-update-request-condition.d.ts +10 -0
- package/dist/enums/approval-rule-update-request-condition.js +15 -0
- package/dist/enums/approval-rule-update-request-condition.js.map +1 -0
- package/dist/enums/approval-rule-update-request-condition.mjs +14 -0
- package/dist/enums/approval-rule-update-request-condition.mjs.map +1 -0
- package/dist/enums/approval-rule-update-request-effect.d.mts +7 -0
- package/dist/enums/approval-rule-update-request-effect.d.ts +7 -0
- package/dist/enums/approval-rule-update-request-effect.js +12 -0
- package/dist/enums/approval-rule-update-request-effect.js.map +1 -0
- package/dist/enums/approval-rule-update-request-effect.mjs +11 -0
- package/dist/enums/approval-rule-update-request-effect.mjs.map +1 -0
- package/dist/enums/approver-type.d.mts +7 -0
- package/dist/enums/approver-type.d.ts +7 -0
- package/dist/enums/approver-type.js +12 -0
- package/dist/enums/approver-type.js.map +1 -0
- package/dist/enums/approver-type.mjs +11 -0
- package/dist/enums/approver-type.mjs.map +1 -0
- package/dist/enums/condition.d.mts +10 -0
- package/dist/enums/condition.d.ts +10 -0
- package/dist/enums/condition.js +15 -0
- package/dist/enums/condition.js.map +1 -0
- package/dist/enums/condition.mjs +14 -0
- package/dist/enums/condition.mjs.map +1 -0
- package/dist/enums/effect.d.mts +7 -0
- package/dist/enums/effect.d.ts +7 -0
- package/dist/enums/effect.js +12 -0
- package/dist/enums/effect.js.map +1 -0
- package/dist/enums/effect.mjs +11 -0
- package/dist/enums/effect.mjs.map +1 -0
- package/dist/enums/pending-approval-approver-type.d.mts +7 -0
- package/dist/enums/pending-approval-approver-type.d.ts +7 -0
- package/dist/enums/pending-approval-approver-type.js +12 -0
- package/dist/enums/pending-approval-approver-type.js.map +1 -0
- package/dist/enums/pending-approval-approver-type.mjs +11 -0
- package/dist/enums/pending-approval-approver-type.mjs.map +1 -0
- package/dist/enums/pending-approval-status.d.mts +7 -0
- package/dist/enums/pending-approval-status.d.ts +7 -0
- package/dist/enums/pending-approval-status.js +12 -0
- package/dist/enums/pending-approval-status.js.map +1 -0
- package/dist/enums/pending-approval-status.mjs +11 -0
- package/dist/enums/pending-approval-status.mjs.map +1 -0
- package/dist/enums/procurement-purchase-request-items-create-type.d.mts +7 -0
- package/dist/enums/procurement-purchase-request-items-create-type.d.ts +7 -0
- package/dist/enums/procurement-purchase-request-items-create-type.js +12 -0
- package/dist/enums/procurement-purchase-request-items-create-type.js.map +1 -0
- package/dist/enums/procurement-purchase-request-items-create-type.mjs +11 -0
- package/dist/enums/procurement-purchase-request-items-create-type.mjs.map +1 -0
- package/dist/enums/purchase-request-event-name.d.mts +12 -0
- package/dist/enums/purchase-request-event-name.d.ts +12 -0
- package/dist/enums/purchase-request-event-name.js +17 -0
- package/dist/enums/purchase-request-event-name.js.map +1 -0
- package/dist/enums/purchase-request-event-name.mjs +16 -0
- package/dist/enums/purchase-request-event-name.mjs.map +1 -0
- package/dist/enums/purchase-request-item-create-request-type.d.mts +7 -0
- package/dist/enums/purchase-request-item-create-request-type.d.ts +7 -0
- package/dist/enums/purchase-request-item-create-request-type.js +12 -0
- package/dist/enums/purchase-request-item-create-request-type.js.map +1 -0
- package/dist/enums/purchase-request-item-create-request-type.mjs +11 -0
- package/dist/enums/purchase-request-item-create-request-type.mjs.map +1 -0
- package/dist/enums/purchase-request-item-type.d.mts +7 -0
- package/dist/enums/purchase-request-item-type.d.ts +7 -0
- package/dist/enums/purchase-request-item-type.js +12 -0
- package/dist/enums/purchase-request-item-type.js.map +1 -0
- package/dist/enums/purchase-request-item-type.mjs +11 -0
- package/dist/enums/purchase-request-item-type.mjs.map +1 -0
- package/dist/enums/purchase-request-item-update-request-type.d.mts +7 -0
- package/dist/enums/purchase-request-item-update-request-type.d.ts +7 -0
- package/dist/enums/purchase-request-item-update-request-type.js +12 -0
- package/dist/enums/purchase-request-item-update-request-type.js.map +1 -0
- package/dist/enums/purchase-request-item-update-request-type.mjs +11 -0
- package/dist/enums/purchase-request-item-update-request-type.mjs.map +1 -0
- package/dist/enums/purchase-request-status.d.mts +9 -0
- package/dist/enums/purchase-request-status.d.ts +9 -0
- package/dist/enums/purchase-request-status.js +14 -0
- package/dist/enums/purchase-request-status.js.map +1 -0
- package/dist/enums/purchase-request-status.mjs +13 -0
- package/dist/enums/purchase-request-status.mjs.map +1 -0
- package/dist/enums/submit-item-type.d.mts +7 -0
- package/dist/enums/submit-item-type.d.ts +7 -0
- package/dist/enums/submit-item-type.js +12 -0
- package/dist/enums/submit-item-type.js.map +1 -0
- package/dist/enums/submit-item-type.mjs +11 -0
- package/dist/enums/submit-item-type.mjs.map +1 -0
- package/dist/enums/submit-result-outcome.d.mts +9 -0
- package/dist/enums/submit-result-outcome.d.ts +9 -0
- package/dist/enums/submit-result-outcome.js +14 -0
- package/dist/enums/submit-result-outcome.js.map +1 -0
- package/dist/enums/submit-result-outcome.mjs +13 -0
- package/dist/enums/submit-result-outcome.mjs.map +1 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +115 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +23 -0
- package/dist/index.mjs.map +1 -1
- package/dist/inputFile.js +1 -2
- package/dist/inputFile.js.map +1 -1
- package/dist/inputFile.mjs +0 -1
- package/dist/inputFile.mjs.map +1 -1
- package/dist/models.d.mts +1027 -36
- package/dist/models.d.ts +1027 -36
- package/dist/operator.js +243 -204
- package/dist/operator.js.map +1 -1
- package/dist/operator.mjs +242 -203
- package/dist/operator.mjs.map +1 -1
- package/dist/permission.js +58 -48
- package/dist/permission.js.map +1 -1
- package/dist/permission.mjs +58 -48
- package/dist/permission.mjs.map +1 -1
- package/dist/query.js +525 -422
- package/dist/query.js.map +1 -1
- package/dist/query.mjs +524 -421
- package/dist/query.mjs.map +1 -1
- package/dist/services/apps.d.mts +18 -0
- package/dist/services/apps.d.ts +18 -0
- package/dist/services/avatars.d.mts +18 -0
- package/dist/services/avatars.d.ts +18 -0
- package/dist/services/carts-io.d.mts +46 -28
- package/dist/services/carts-io.d.ts +46 -28
- package/dist/services/carts-io.js.map +1 -1
- package/dist/services/carts-io.mjs.map +1 -1
- package/dist/services/carts-items.d.mts +42 -24
- package/dist/services/carts-items.d.ts +42 -24
- package/dist/services/carts-items.js.map +1 -1
- package/dist/services/carts-items.mjs.map +1 -1
- package/dist/services/carts.d.mts +70 -52
- package/dist/services/carts.d.ts +70 -52
- package/dist/services/carts.js.map +1 -1
- package/dist/services/carts.mjs.map +1 -1
- package/dist/services/channels.d.mts +64 -46
- package/dist/services/channels.d.ts +64 -46
- package/dist/services/channels.js +1 -1
- package/dist/services/channels.js.map +1 -1
- package/dist/services/channels.mjs +1 -1
- package/dist/services/channels.mjs.map +1 -1
- package/dist/services/cost-centers.d.mts +18 -0
- package/dist/services/cost-centers.d.ts +18 -0
- package/dist/services/customers-contacts.d.mts +62 -44
- package/dist/services/customers-contacts.d.ts +62 -44
- package/dist/services/customers-contacts.js.map +1 -1
- package/dist/services/customers-contacts.mjs.map +1 -1
- package/dist/services/customers-organizations.d.mts +58 -40
- package/dist/services/customers-organizations.d.ts +58 -40
- package/dist/services/customers-organizations.js.map +1 -1
- package/dist/services/customers-organizations.mjs.map +1 -1
- package/dist/services/customers-roles.d.mts +26 -8
- package/dist/services/customers-roles.d.ts +26 -8
- package/dist/services/customers-roles.js.map +1 -1
- package/dist/services/customers-roles.mjs.map +1 -1
- package/dist/services/customers-segments.d.mts +62 -44
- package/dist/services/customers-segments.d.ts +62 -44
- package/dist/services/customers-segments.js.map +1 -1
- package/dist/services/customers-segments.mjs.map +1 -1
- package/dist/services/customers-value-lists.d.mts +90 -72
- package/dist/services/customers-value-lists.d.ts +90 -72
- package/dist/services/customers-value-lists.js.map +1 -1
- package/dist/services/customers-value-lists.mjs.map +1 -1
- package/dist/services/customers.d.mts +78 -60
- package/dist/services/customers.d.ts +78 -60
- package/dist/services/customers.js.map +1 -1
- package/dist/services/customers.mjs.map +1 -1
- package/dist/services/events.d.mts +18 -0
- package/dist/services/events.d.ts +18 -0
- package/dist/services/forms.d.mts +66 -48
- package/dist/services/forms.d.ts +66 -48
- package/dist/services/forms.js.map +1 -1
- package/dist/services/forms.mjs.map +1 -1
- package/dist/services/health.d.mts +18 -0
- package/dist/services/health.d.ts +18 -0
- package/dist/services/inventories-locations.d.mts +38 -20
- package/dist/services/inventories-locations.d.ts +38 -20
- package/dist/services/inventories-locations.js.map +1 -1
- package/dist/services/inventories-locations.mjs.map +1 -1
- package/dist/services/inventories-reservations.d.mts +38 -20
- package/dist/services/inventories-reservations.d.ts +38 -20
- package/dist/services/inventories-reservations.js.map +1 -1
- package/dist/services/inventories-reservations.mjs.map +1 -1
- package/dist/services/inventories-stock.d.mts +70 -52
- package/dist/services/inventories-stock.d.ts +70 -52
- package/dist/services/inventories-stock.js.map +1 -1
- package/dist/services/inventories-stock.mjs.map +1 -1
- package/dist/services/io.d.mts +66 -48
- package/dist/services/io.d.ts +66 -48
- package/dist/services/io.js +2 -2
- package/dist/services/io.js.map +1 -1
- package/dist/services/io.mjs +2 -2
- package/dist/services/io.mjs.map +1 -1
- package/dist/services/locale.d.mts +18 -0
- package/dist/services/locale.d.ts +18 -0
- package/dist/services/markets.d.mts +122 -104
- package/dist/services/markets.d.ts +122 -104
- package/dist/services/markets.js.map +1 -1
- package/dist/services/markets.mjs.map +1 -1
- package/dist/services/messaging.d.mts +194 -176
- package/dist/services/messaging.d.ts +194 -176
- package/dist/services/messaging.js +3 -3
- package/dist/services/messaging.js.map +1 -1
- package/dist/services/messaging.mjs +3 -3
- package/dist/services/messaging.mjs.map +1 -1
- package/dist/services/orderlists.d.mts +96 -78
- package/dist/services/orderlists.d.ts +96 -78
- package/dist/services/orderlists.js +1 -1
- package/dist/services/orderlists.js.map +1 -1
- package/dist/services/orderlists.mjs +1 -1
- package/dist/services/orderlists.mjs.map +1 -1
- package/dist/services/orders.d.mts +114 -96
- package/dist/services/orders.d.ts +114 -96
- package/dist/services/orders.js.map +1 -1
- package/dist/services/orders.mjs.map +1 -1
- package/dist/services/pages-collaboration.d.mts +34 -16
- package/dist/services/pages-collaboration.d.ts +34 -16
- package/dist/services/pages-collaboration.js.map +1 -1
- package/dist/services/pages-collaboration.mjs.map +1 -1
- package/dist/services/pages-delivery.d.mts +26 -8
- package/dist/services/pages-delivery.d.ts +26 -8
- package/dist/services/pages-delivery.js.map +1 -1
- package/dist/services/pages-delivery.mjs.map +1 -1
- package/dist/services/pages-editor.d.mts +34 -16
- package/dist/services/pages-editor.d.ts +34 -16
- package/dist/services/pages-editor.js.map +1 -1
- package/dist/services/pages-editor.mjs.map +1 -1
- package/dist/services/pages.d.mts +82 -64
- package/dist/services/pages.d.ts +82 -64
- package/dist/services/pages.js.map +1 -1
- package/dist/services/pages.mjs.map +1 -1
- package/dist/services/payments-ledger.d.mts +54 -36
- package/dist/services/payments-ledger.d.ts +54 -36
- package/dist/services/payments-ledger.js.map +1 -1
- package/dist/services/payments-ledger.mjs.map +1 -1
- package/dist/services/payments-methods.d.mts +34 -16
- package/dist/services/payments-methods.d.ts +34 -16
- package/dist/services/payments-methods.js.map +1 -1
- package/dist/services/payments-methods.mjs.map +1 -1
- package/dist/services/payments-providers.d.mts +38 -20
- package/dist/services/payments-providers.d.ts +38 -20
- package/dist/services/payments-providers.js.map +1 -1
- package/dist/services/payments-providers.mjs.map +1 -1
- package/dist/services/prices.d.mts +86 -68
- package/dist/services/prices.d.ts +86 -68
- package/dist/services/prices.js.map +1 -1
- package/dist/services/prices.mjs.map +1 -1
- package/dist/services/procurement.d.mts +991 -0
- package/dist/services/procurement.d.ts +991 -0
- package/dist/services/procurement.js +1185 -0
- package/dist/services/procurement.js.map +1 -0
- package/dist/services/procurement.mjs +1184 -0
- package/dist/services/procurement.mjs.map +1 -0
- package/dist/services/products-assets.d.mts +34 -16
- package/dist/services/products-assets.d.ts +34 -16
- package/dist/services/products-assets.js.map +1 -1
- package/dist/services/products-assets.mjs.map +1 -1
- package/dist/services/products-categories.d.mts +66 -48
- package/dist/services/products-categories.d.ts +66 -48
- package/dist/services/products-categories.js.map +1 -1
- package/dist/services/products-categories.mjs.map +1 -1
- package/dist/services/products-data-model.d.mts +166 -148
- package/dist/services/products-data-model.d.ts +166 -148
- package/dist/services/products-data-model.js.map +1 -1
- package/dist/services/products-data-model.mjs.map +1 -1
- package/dist/services/products-references.d.mts +50 -32
- package/dist/services/products-references.d.ts +50 -32
- package/dist/services/products-references.js.map +1 -1
- package/dist/services/products-references.mjs.map +1 -1
- package/dist/services/products.d.mts +70 -52
- package/dist/services/products.d.ts +70 -52
- package/dist/services/products.js.map +1 -1
- package/dist/services/products.mjs.map +1 -1
- package/dist/services/search.d.mts +40 -22
- package/dist/services/search.d.ts +40 -22
- package/dist/services/search.js +1 -1
- package/dist/services/search.js.map +1 -1
- package/dist/services/search.mjs +1 -1
- package/dist/services/search.mjs.map +1 -1
- package/dist/services/settings.d.mts +18 -0
- package/dist/services/settings.d.ts +18 -0
- package/dist/services/shipping-carriers.d.mts +42 -24
- package/dist/services/shipping-carriers.d.ts +42 -24
- package/dist/services/shipping-carriers.js.map +1 -1
- package/dist/services/shipping-carriers.mjs.map +1 -1
- package/dist/services/shipping-methods.d.mts +70 -52
- package/dist/services/shipping-methods.d.ts +70 -52
- package/dist/services/shipping-methods.js.map +1 -1
- package/dist/services/shipping-methods.mjs.map +1 -1
- package/dist/services/shipping-value-lists.d.mts +62 -44
- package/dist/services/shipping-value-lists.d.ts +62 -44
- package/dist/services/shipping-value-lists.js.map +1 -1
- package/dist/services/shipping-value-lists.mjs.map +1 -1
- package/dist/services/sites.d.mts +18 -0
- package/dist/services/sites.d.ts +18 -0
- package/dist/services/storage.d.mts +18 -0
- package/dist/services/storage.d.ts +18 -0
- package/package.json +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/shipping-methods.ts"],"names":[],"mappings":"AAAA,SAAS,yBAA+D;AAOjE,MAAM,gBAAgB;AAAA,EAGzB,YAAY,QAAgB;AACxB,SAAK,SAAS;AAAA,EAClB;AAAA,EAmCA,oBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAI,CAAC,iBAAkB,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACzG,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,OAAO;AAAA,QACP,QAAQ,KAAK,CAAC;AAAA,QACd,OAAO,KAAK,CAAC;AAAA,QACb,MAAM,KAAK,CAAC;AAAA,QACZ,SAAS,KAAK,CAAC;AAAA,QACf,aAAa,KAAK,CAAC;AAAA,QACnB,WAAW,KAAK,CAAC;AAAA,QACjB,SAAS,KAAK,CAAC;AAAA,QACf,UAAU,KAAK,CAAC;AAAA,MACpB;AAAA,IACJ;AAEA,UAAM,QAAQ,OAAO;AACrB,UAAM,SAAS,OAAO;AACtB,UAAM,QAAQ,OAAO;AACrB,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,OAAO;AACvB,UAAM,cAAc,OAAO;AAC3B,UAAM,YAAY,OAAO;AACzB,UAAM,UAAU,OAAO;AACvB,UAAM,WAAW,OAAO;AAGxB,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,WAAW,aAAa;AAC/B,iBAAW,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAyDA,sBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,MAAM;AAAA,QACN,MAAM,KAAK,CAAC;AAAA,QACZ,SAAS,KAAK,CAAC;AAAA,QACf,WAAW,KAAK,CAAC;AAAA,QACjB,WAAW,KAAK,CAAC;AAAA,QACjB,UAAU,KAAK,CAAC;AAAA,QAChB,aAAa,KAAK,CAAC;AAAA,QACnB,SAAS,KAAK,CAAC;AAAA,QACf,YAAY,KAAK,CAAC;AAAA,QAClB,YAAY,KAAK,CAAC;AAAA,QAClB,WAAW,KAAK,CAAC;AAAA,QACjB,QAAQ,KAAK,EAAE;AAAA,QACf,iBAAiB,KAAK,EAAE;AAAA,QACxB,aAAa,KAAK,EAAE;AAAA,QACpB,UAAU,KAAK,EAAE;AAAA,QACjB,UAAU,KAAK,EAAE;AAAA,QACjB,OAAO,KAAK,EAAE;AAAA,QACd,aAAa,KAAK,EAAE;AAAA,QACpB,YAAY,KAAK,EAAE;AAAA,QACnB,UAAU,KAAK,EAAE;AAAA,MACrB;AAAA,IACJ;AAEA,UAAM,OAAO,OAAO;AACpB,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,OAAO;AACvB,UAAM,YAAY,OAAO;AACzB,UAAM,YAAY,OAAO;AACzB,UAAM,WAAW,OAAO;AACxB,UAAM,cAAc,OAAO;AAC3B,UAAM,UAAU,OAAO;AACvB,UAAM,aAAa,OAAO;AAC1B,UAAM,aAAa,OAAO;AAC1B,UAAM,YAAY,OAAO;AACzB,UAAM,SAAS,OAAO;AACtB,UAAM,kBAAkB,OAAO;AAC/B,UAAM,cAAc,OAAO;AAC3B,UAAM,WAAW,OAAO;AACxB,UAAM,WAAW,OAAO;AACxB,UAAM,QAAQ,OAAO;AACrB,UAAM,cAAc,OAAO;AAC3B,UAAM,aAAa,OAAO;AAC1B,UAAM,WAAW,OAAO;AAExB,QAAI,OAAO,SAAS,aAAa;AAC7B,YAAM,IAAI,kBAAkB,oCAAoC;AAAA,IACpE;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,YAAM,IAAI,kBAAkB,oCAAoC;AAAA,IACpE;AAEA,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,WAAW,aAAa;AAC/B,iBAAW,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,OAAO,oBAAoB,aAAa;AACxC,iBAAW,kBAAkB,IAAI;AAAA,IACrC;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,0BAAuC;AAEnC,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAmBA,sBACI,eACqB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,MACR;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,4BAA4B,QAAQ,QAAQ,EAAE;AAC9D,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAmBA,mBACI,eACqB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,MACR;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,4BAA4B,QAAQ,QAAQ,EAAE;AAC9D,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EA2DA,sBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,QACJ,SAAS,KAAK,CAAC;AAAA,QACf,WAAW,KAAK,CAAC;AAAA,QACjB,MAAM,KAAK,CAAC;AAAA,QACZ,WAAW,KAAK,CAAC;AAAA,QACjB,UAAU,KAAK,CAAC;AAAA,QAChB,aAAa,KAAK,CAAC;AAAA,QACnB,SAAS,KAAK,CAAC;AAAA,QACf,YAAY,KAAK,CAAC;AAAA,QAClB,YAAY,KAAK,CAAC;AAAA,QAClB,WAAW,KAAK,CAAC;AAAA,QACjB,QAAQ,KAAK,EAAE;AAAA,QACf,iBAAiB,KAAK,EAAE;AAAA,QACxB,aAAa,KAAK,EAAE;AAAA,QACpB,UAAU,KAAK,EAAE;AAAA,QACjB,MAAM,KAAK,EAAE;AAAA,QACb,UAAU,KAAK,EAAE;AAAA,QACjB,OAAO,KAAK,EAAE;AAAA,QACd,aAAa,KAAK,EAAE;AAAA,QACpB,YAAY,KAAK,EAAE;AAAA,QACnB,UAAU,KAAK,EAAE;AAAA,MACrB;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAClB,UAAM,UAAU,OAAO;AACvB,UAAM,YAAY,OAAO;AACzB,UAAM,OAAO,OAAO;AACpB,UAAM,YAAY,OAAO;AACzB,UAAM,WAAW,OAAO;AACxB,UAAM,cAAc,OAAO;AAC3B,UAAM,UAAU,OAAO;AACvB,UAAM,aAAa,OAAO;AAC1B,UAAM,aAAa,OAAO;AAC1B,UAAM,YAAY,OAAO;AACzB,UAAM,SAAS,OAAO;AACtB,UAAM,kBAAkB,OAAO;AAC/B,UAAM,cAAc,OAAO;AAC3B,UAAM,WAAW,OAAO;AACxB,UAAM,OAAO,OAAO;AACpB,UAAM,WAAW,OAAO;AACxB,UAAM,QAAQ,OAAO;AACrB,UAAM,cAAc,OAAO;AAC3B,UAAM,aAAa,OAAO;AAC1B,UAAM,WAAW,OAAO;AAExB,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,4BAA4B,QAAQ,QAAQ,EAAE;AAC9D,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,WAAW,aAAa;AAC/B,iBAAW,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,OAAO,oBAAoB,aAAa;AACxC,iBAAW,kBAAkB,IAAI;AAAA,IACrC;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,cAAc,IAAI;AAAA,IACjC;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EA2BA,kBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,OAAO,KAAK,CAAC;AAAA,QACb,QAAQ,KAAK,CAAC;AAAA,QACd,OAAO,KAAK,CAAC;AAAA,QACb,WAAW,KAAK,CAAC;AAAA,MACrB;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,QAAQ,OAAO;AACrB,UAAM,SAAS,OAAO;AACtB,UAAM,QAAQ,OAAO;AACrB,UAAM,YAAY,OAAO;AAEzB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AAEA,UAAM,UAAU,yCAAyC,QAAQ,eAAe,QAAQ;AACxF,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,WAAW,aAAa;AAC/B,iBAAW,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAyBA,oBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,WAAW,KAAK,CAAC;AAAA,QACjB,UAAU,KAAK,CAAC;AAAA,QAChB,OAAO,KAAK,CAAC;AAAA,MACjB;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,YAAY,OAAO;AACzB,UAAM,WAAW,OAAO;AACxB,UAAM,QAAQ,OAAO;AAErB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AAEA,UAAM,UAAU,yCAAyC,QAAQ,eAAe,QAAQ;AACxF,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAqBA,qBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,OAAO,KAAK,CAAC;AAAA,MACjB;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,QAAQ,OAAO;AAErB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,YAAM,IAAI,kBAAkB,qCAAqC;AAAA,IACrE;AAEA,UAAM,UAAU,yCAAyC,QAAQ,eAAe,QAAQ;AACxF,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EA+BA,oBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,WAAW,KAAK,CAAC;AAAA,QACjB,MAAM,KAAK,CAAC;AAAA,QACZ,SAAS,KAAK,CAAC;AAAA,QACf,WAAW,KAAK,CAAC;AAAA,QACjB,SAAS,KAAK,CAAC;AAAA,QACf,WAAW,KAAK,CAAC;AAAA,MACrB;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,YAAY,OAAO;AACzB,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,OAAO;AACvB,UAAM,YAAY,OAAO;AACzB,UAAM,UAAU,OAAO;AACvB,UAAM,YAAY,OAAO;AAEzB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,YAAM,IAAI,kBAAkB,yCAAyC;AAAA,IACzE;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,YAAM,IAAI,kBAAkB,oCAAoC;AAAA,IACpE;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,YAAM,IAAI,kBAAkB,uCAAuC;AAAA,IACvE;AAEA,UAAM,UAAU,gDAAgD,QAAQ,eAAe,QAAQ;AAC/F,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAqBA,oBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,IAAI,KAAK,CAAC;AAAA,MACd;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AACA,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,8CAA8C,QAAQ,eAAe,QAAQ,EAAE,QAAQ,QAAQ,EAAE;AACjH,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAqBA,iBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,IAAI,KAAK,CAAC;AAAA,MACd;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AACA,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,8CAA8C,QAAQ,eAAe,QAAQ,EAAE,QAAQ,QAAQ,EAAE;AACjH,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EA2BA,oBACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,IAAI,KAAK,CAAC;AAAA,QACV,WAAW,KAAK,CAAC;AAAA,QACjB,UAAU,KAAK,CAAC;AAAA,QAChB,OAAO,KAAK,CAAC;AAAA,MACjB;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,KAAK,OAAO;AAClB,UAAM,YAAY,OAAO;AACzB,UAAM,WAAW,OAAO;AACxB,UAAM,QAAQ,OAAO;AAErB,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AACA,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,8CAA8C,QAAQ,eAAe,QAAQ,EAAE,QAAQ,QAAQ,EAAE;AACjH,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,cAAc,aAAa;AAClC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAuCA,cACI,kBACG,MACkB;AACrB,QAAI;AAEJ,QAAI,CAAC,iBAAkB,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACzG,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,QACJ,YAAY,KAAK,CAAC;AAAA,QAClB,SAAS,KAAK,CAAC;AAAA,QACf,UAAU,KAAK,CAAC;AAAA,QAChB,UAAU,KAAK,CAAC;AAAA,QAChB,YAAY,KAAK,CAAC;AAAA,QAClB,iBAAiB,KAAK,CAAC;AAAA,QACvB,eAAe,KAAK,CAAC;AAAA,QACrB,UAAU,KAAK,CAAC;AAAA,QAChB,QAAQ,KAAK,CAAC;AAAA,QACd,YAAY,KAAK,CAAC;AAAA,MACtB;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAClB,UAAM,aAAa,OAAO;AAC1B,UAAM,UAAU,OAAO;AACvB,UAAM,WAAW,OAAO;AACxB,UAAM,WAAW,OAAO;AACxB,UAAM,aAAa,OAAO;AAC1B,UAAM,kBAAkB,OAAO;AAC/B,UAAM,gBAAgB,OAAO;AAC7B,UAAM,WAAW,OAAO;AACxB,UAAM,SAAS,OAAO;AACtB,UAAM,aAAa,OAAO;AAG1B,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,OAAO,aAAa;AAC3B,iBAAW,IAAI,IAAI;AAAA,IACvB;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,YAAY,IAAI;AAAA,IAC/B;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,oBAAoB,aAAa;AACxC,iBAAW,mBAAmB,IAAI;AAAA,IACtC;AACA,QAAI,OAAO,kBAAkB,aAAa;AACtC,iBAAW,iBAAiB,IAAI;AAAA,IACpC;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,WAAW,aAAa;AAC/B,iBAAW,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,OAAO,eAAe,aAAa;AACnC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAmBA,wBACI,eACqC;AACrC,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,MAAM;AAAA,MACV;AAAA,IACJ;AAEA,UAAM,OAAO,OAAO;AAEpB,QAAI,OAAO,SAAS,aAAa;AAC7B,YAAM,IAAI,kBAAkB,oCAAoC;AAAA,IACpE;AAEA,UAAM,UAAU,wCAAwC,QAAQ,UAAU,IAAI;AAC9E,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { PricingType } from '../enums/pricing-type';\nimport { ShippingMethodMatrixBasis } from '../enums/shipping-method-matrix-basis';\nimport { ShippingMethodPricingType } from '../enums/shipping-method-pricing-type';\n\nexport class ShippingMethods {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Filterable by exact column value — `?code=`, `?enabled=`, `?pricing_type=`, `?carrier_id=`, `?carrier=` and `?tax_class=` are applied as equalities and echoed back in `filter`. `?carrier_id=` and `?carrier=` are the two halves of one question: the first finds the methods holding a reference, the second the ones still resolving through the legacy code text. A query key that names no column of this entity is SILENTLY IGNORED — `?status=` on this route is the trap, since carriers have a status and methods do not: the page comes back unfiltered, 200, with an empty `filter`.\n *\n * @param {number} params.limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} params.offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {string} params.code - Exact-match filter on `code`. Unique per tenant, so this resolves a code a checkout already holds without paging the whole list.\n * @param {boolean} params.enabled - Exact-match filter on `enabled`. Only enabled methods are ever quoted, so this is the storefront-facing subset.\n * @param {PricingType} params.pricingType - Exact-match filter on `pricing_type`. Pricing model — `matrix` is the set whose tiers a rate-matrix editor has to load.\n * @param {string} params.carrierId - Exact-match filter on `carrier_id`. The methods that ship with one carrier — what a merchant needs before pausing it. Matches `carrier_id` only, never the legacy `carrier` text.\n * @param {string} params.carrier - Exact-match filter on `carrier`. The other half of that question: the methods still resolving their carrier through the legacy free-text CODE rather than a reference. Together with `?carrier_id=` this is how a merchant finds what a carrier is still holding before retiring it.\n * @param {string} params.taxClass - Exact-match filter on `tax_class`. The methods naming one tax class — the same question GET /shipping/tax-classes/{code}/usage counts, when the caller wants the rows rather than the count. Only a method's OWN class; a method falling back to the tenant setting does not match.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingMethodsList(params?: { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string }): Promise<Models.Error>;\n /**\n * Filterable by exact column value — `?code=`, `?enabled=`, `?pricing_type=`, `?carrier_id=`, `?carrier=` and `?tax_class=` are applied as equalities and echoed back in `filter`. `?carrier_id=` and `?carrier=` are the two halves of one question: the first finds the methods holding a reference, the second the ones still resolving through the legacy code text. A query key that names no column of this entity is SILENTLY IGNORED — `?status=` on this route is the trap, since carriers have a status and methods do not: the page comes back unfiltered, 200, with an empty `filter`.\n *\n * @param {number} limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {string} code - Exact-match filter on `code`. Unique per tenant, so this resolves a code a checkout already holds without paging the whole list.\n * @param {boolean} enabled - Exact-match filter on `enabled`. Only enabled methods are ever quoted, so this is the storefront-facing subset.\n * @param {PricingType} pricingType - Exact-match filter on `pricing_type`. Pricing model — `matrix` is the set whose tiers a rate-matrix editor has to load.\n * @param {string} carrierId - Exact-match filter on `carrier_id`. The methods that ship with one carrier — what a merchant needs before pausing it. Matches `carrier_id` only, never the legacy `carrier` text.\n * @param {string} carrier - Exact-match filter on `carrier`. The other half of that question: the methods still resolving their carrier through the legacy free-text CODE rather than a reference. Together with `?carrier_id=` this is how a merchant finds what a carrier is still holding before retiring it.\n * @param {string} taxClass - Exact-match filter on `tax_class`. The methods naming one tax class — the same question GET /shipping/tax-classes/{code}/usage counts, when the caller wants the rows rather than the count. Only a method's OWN class; a method falling back to the tenant setting does not match.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsList(limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string): Promise<Models.Error>;\n shippingMethodsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (boolean)?, (PricingType)?, (string)?, (string)?, (string)?] \n ): Promise<Models.Error> {\n let params: { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n code: rest[2] as string,\n enabled: rest[3] as boolean,\n pricingType: rest[4] as PricingType,\n carrierId: rest[5] as string,\n carrier: rest[6] as string,\n taxClass: rest[7] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const code = params.code;\n const enabled = params.enabled;\n const pricingType = params.pricingType;\n const carrierId = params.carrierId;\n const carrier = params.carrier;\n const taxClass = params.taxClass;\n\n\n const apiPath = '/v1/shipping/methods';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof pricingType !== 'undefined') {\n apiPayload['pricing_type'] = pricingType;\n }\n if (typeof carrierId !== 'undefined') {\n apiPayload['carrier_id'] = carrierId;\n }\n if (typeof carrier !== 'undefined') {\n apiPayload['carrier'] = carrier;\n }\n if (typeof taxClass !== 'undefined') {\n apiPayload['tax_class'] = taxClass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A create cannot omit `code` and `name`; every other column is optional or defaulted by the database. Two rows of this tenant may not share `code` — that is the 409. The new method is quoted by nobody until two further things are true: `enabled` defaults to FALSE, and a 'matrix' method has no tiers yet — until POST or PUT …/tiers gives it some it appears in `excluded` with 'matrix has no rate tiers configured' rather than in the rates. `carrier_id` and the legacy `carrier` code are both accepted and neither is verified against the carrier table here: an unmatched code is a plain carrier name on the rate, not an error.\n *\n * @param {string} params.code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string} params.name - Display name shown in the checkout.\n * @param {string} params.carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} params.carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string[]} params.countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} params.currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} params.description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} params.enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} params.etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} params.etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} params.freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} params.labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} params.matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} params.matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} params.metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {number} params.position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} params.price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} params.pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} params.quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} params.taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingMethodsCreate(params: { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string }): Promise<Models.Error>;\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A create cannot omit `code` and `name`; every other column is optional or defaulted by the database. Two rows of this tenant may not share `code` — that is the 409. The new method is quoted by nobody until two further things are true: `enabled` defaults to FALSE, and a 'matrix' method has no tiers yet — until POST or PUT …/tiers gives it some it appears in `excluded` with 'matrix has no rate tiers configured' rather than in the rates. `carrier_id` and the legacy `carrier` code are both accepted and neither is verified against the carrier table here: an unmatched code is a plain carrier name on the rate, not an error.\n *\n * @param {string} code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string} name - Display name shown in the checkout.\n * @param {string} carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string[]} countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {number} position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsCreate(code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string): Promise<Models.Error>;\n shippingMethodsCreate(\n paramsOrFirst: { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string[])?, (string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (object)?, (string)?, (ShippingMethodMatrixBasis)?, (object)?, (number)?, (number)?, (ShippingMethodPricingType)?, (number)?, (string)?] \n ): Promise<Models.Error> {\n let params: { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n } else {\n params = {\n code: paramsOrFirst as string,\n name: rest[0] as string,\n carrier: rest[1] as string,\n carrierId: rest[2] as string,\n countries: rest[3] as string[],\n currency: rest[4] as string,\n description: rest[5] as string,\n enabled: rest[6] as boolean,\n etaDaysMax: rest[7] as number,\n etaDaysMin: rest[8] as number,\n freeAbove: rest[9] as number,\n labels: rest[10] as object,\n matrixAttribute: rest[11] as string,\n matrixBasis: rest[12] as ShippingMethodMatrixBasis,\n metadata: rest[13] as object,\n position: rest[14] as number,\n price: rest[15] as number,\n pricingType: rest[16] as ShippingMethodPricingType,\n quoteAbove: rest[17] as number,\n taxClass: rest[18] as string \n };\n }\n \n const code = params.code;\n const name = params.name;\n const carrier = params.carrier;\n const carrierId = params.carrierId;\n const countries = params.countries;\n const currency = params.currency;\n const description = params.description;\n const enabled = params.enabled;\n const etaDaysMax = params.etaDaysMax;\n const etaDaysMin = params.etaDaysMin;\n const freeAbove = params.freeAbove;\n const labels = params.labels;\n const matrixAttribute = params.matrixAttribute;\n const matrixBasis = params.matrixBasis;\n const metadata = params.metadata;\n const position = params.position;\n const price = params.price;\n const pricingType = params.pricingType;\n const quoteAbove = params.quoteAbove;\n const taxClass = params.taxClass;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/shipping/methods';\n const apiPayload: Payload = {};\n if (typeof carrier !== 'undefined') {\n apiPayload['carrier'] = carrier;\n }\n if (typeof carrierId !== 'undefined') {\n apiPayload['carrier_id'] = carrierId;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof countries !== 'undefined') {\n apiPayload['countries'] = countries;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof description !== 'undefined') {\n apiPayload['description'] = description;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof etaDaysMax !== 'undefined') {\n apiPayload['eta_days_max'] = etaDaysMax;\n }\n if (typeof etaDaysMin !== 'undefined') {\n apiPayload['eta_days_min'] = etaDaysMin;\n }\n if (typeof freeAbove !== 'undefined') {\n apiPayload['free_above'] = freeAbove;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof matrixAttribute !== 'undefined') {\n apiPayload['matrix_attribute'] = matrixAttribute;\n }\n if (typeof matrixBasis !== 'undefined') {\n apiPayload['matrix_basis'] = matrixBasis;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n if (typeof pricingType !== 'undefined') {\n apiPayload['pricing_type'] = pricingType;\n }\n if (typeof quoteAbove !== 'undefined') {\n apiPayload['quote_above'] = quoteAbove;\n }\n if (typeof taxClass !== 'undefined') {\n apiPayload['tax_class'] = taxClass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Runs the carrier seed first, then creates any missing method: the three lines a shop is expected to offer — standard, express and pickup. The app runs this itself on `app.installed`, so a fresh install already has them; calling it by hand afterwards is how a tenant that deleted one gets it back, and calling it twice costs nothing, because it reconciles rather than seeds. The seeded methods deliberately name no carrier: which carrier carries the standard method is a contract, not a default, and a method that says 'dhl' resolves to the seeded DHL row anyway.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingMethodsDefaults(): Promise<{}> {\n\n const apiPath = '/v1/shipping/methods/defaults';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Deleting one takes every `shipping_rate_tiers` row that points at it with it — the foreign keys decide that, not this route. So the whole rate matrix goes with the method, which is also why this never answers a conflict and why there is no way to recover the table afterwards — for a method a checkout may still be holding in a session, `enabled: false` is the safer edit.\n *\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingMethodsDelete(params: { id: string }): Promise<Models.Error>;\n /**\n * Deleting one takes every `shipping_rate_tiers` row that points at it with it — the foreign keys decide that, not this route. So the whole rate matrix goes with the method, which is also why this never answers a conflict and why there is no way to recover the table afterwards — for a method a checkout may still be holding in a session, `enabled: false` is the safer edit.\n *\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsDelete(id: string): Promise<Models.Error>;\n shippingMethodsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Error> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. This is the CONFIGURATION of one, by row id — not what a buyer would be charged. A matrix method's prices are not in here at all: they are its rate tiers, GET /shipping/methods/{method_id}/tiers, and the price for a given basket is POST /shipping/rates, which is the only place free-above thresholds, country restrictions, the carrier's reach and tax are applied. A checkout that reads `price` off this row prices a matrix method at 0.\n *\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingMethodsGet(params: { id: string }): Promise<Models.Error>;\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. This is the CONFIGURATION of one, by row id — not what a buyer would be charged. A matrix method's prices are not in here at all: they are its rate tiers, GET /shipping/methods/{method_id}/tiers, and the price for a given basket is POST /shipping/rates, which is the only place free-above thresholds, country restrictions, the carrier's reach and tax are applied. A checkout that reads `price` off this row prices a matrix method at 0.\n *\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsGet(id: string): Promise<Models.Error>;\n shippingMethodsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.Error> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A partial update — send only what changes, whether that is taking the method in or out of the checkout, its pricing, the countries it is restricted to or the delivery estimate it states of its own; a payload carrying no column at all is refused rather than answering a row it did not touch. Flipping `enabled` is what puts the method in front of a buyer or takes it away, and a disabled method is reported in the rate answer's `excluded` rather than hidden. Changing `pricing_type` away from 'matrix' does NOT delete the tier table — it stops being read, and changing back reinstates the old prices, so a method switched to 'fixed' and back quotes what it quoted before. Two rows of this tenant may not share `code` — that is the 409.\n *\n * @param {string} params.id - The row id.\n * @param {string} params.carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} params.carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string} params.code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string[]} params.countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} params.currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} params.description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} params.enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} params.etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} params.etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} params.freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} params.labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} params.matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} params.matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} params.metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {string} params.name - Display name shown in the checkout.\n * @param {number} params.position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} params.price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} params.pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} params.quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} params.taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingMethodsUpdate(params: { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string }): Promise<Models.Error>;\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A partial update — send only what changes, whether that is taking the method in or out of the checkout, its pricing, the countries it is restricted to or the delivery estimate it states of its own; a payload carrying no column at all is refused rather than answering a row it did not touch. Flipping `enabled` is what puts the method in front of a buyer or takes it away, and a disabled method is reported in the rate answer's `excluded` rather than hidden. Changing `pricing_type` away from 'matrix' does NOT delete the tier table — it stops being read, and changing back reinstates the old prices, so a method switched to 'fixed' and back quotes what it quoted before. Two rows of this tenant may not share `code` — that is the 409.\n *\n * @param {string} id - The row id.\n * @param {string} carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string} code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string[]} countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {string} name - Display name shown in the checkout.\n * @param {number} position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsUpdate(id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string): Promise<Models.Error>;\n shippingMethodsUpdate(\n paramsOrFirst: { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string[])?, (string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (object)?, (string)?, (ShippingMethodMatrixBasis)?, (object)?, (string)?, (number)?, (number)?, (ShippingMethodPricingType)?, (number)?, (string)?] \n ): Promise<Models.Error> {\n let params: { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n carrier: rest[0] as string,\n carrierId: rest[1] as string,\n code: rest[2] as string,\n countries: rest[3] as string[],\n currency: rest[4] as string,\n description: rest[5] as string,\n enabled: rest[6] as boolean,\n etaDaysMax: rest[7] as number,\n etaDaysMin: rest[8] as number,\n freeAbove: rest[9] as number,\n labels: rest[10] as object,\n matrixAttribute: rest[11] as string,\n matrixBasis: rest[12] as ShippingMethodMatrixBasis,\n metadata: rest[13] as object,\n name: rest[14] as string,\n position: rest[15] as number,\n price: rest[16] as number,\n pricingType: rest[17] as ShippingMethodPricingType,\n quoteAbove: rest[18] as number,\n taxClass: rest[19] as string \n };\n }\n \n const id = params.id;\n const carrier = params.carrier;\n const carrierId = params.carrierId;\n const code = params.code;\n const countries = params.countries;\n const currency = params.currency;\n const description = params.description;\n const enabled = params.enabled;\n const etaDaysMax = params.etaDaysMax;\n const etaDaysMin = params.etaDaysMin;\n const freeAbove = params.freeAbove;\n const labels = params.labels;\n const matrixAttribute = params.matrixAttribute;\n const matrixBasis = params.matrixBasis;\n const metadata = params.metadata;\n const name = params.name;\n const position = params.position;\n const price = params.price;\n const pricingType = params.pricingType;\n const quoteAbove = params.quoteAbove;\n const taxClass = params.taxClass;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof carrier !== 'undefined') {\n apiPayload['carrier'] = carrier;\n }\n if (typeof carrierId !== 'undefined') {\n apiPayload['carrier_id'] = carrierId;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof countries !== 'undefined') {\n apiPayload['countries'] = countries;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof description !== 'undefined') {\n apiPayload['description'] = description;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof etaDaysMax !== 'undefined') {\n apiPayload['eta_days_max'] = etaDaysMax;\n }\n if (typeof etaDaysMin !== 'undefined') {\n apiPayload['eta_days_min'] = etaDaysMin;\n }\n if (typeof freeAbove !== 'undefined') {\n apiPayload['free_above'] = freeAbove;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof matrixAttribute !== 'undefined') {\n apiPayload['matrix_attribute'] = matrixAttribute;\n }\n if (typeof matrixBasis !== 'undefined') {\n apiPayload['matrix_basis'] = matrixBasis;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n if (typeof pricingType !== 'undefined') {\n apiPayload['pricing_type'] = pricingType;\n }\n if (typeof quoteAbove !== 'undefined') {\n apiPayload['quote_above'] = quoteAbove;\n }\n if (typeof taxClass !== 'undefined') {\n apiPayload['tax_class'] = taxClass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The rate matrix of one method — every `from_value` threshold with the price charged at or above it — lowest threshold first. Filterable by `?from_value=` — the unique index is (tenant_id, method_id, from_value), so that addresses one row of the matrix by the threshold it prices rather than by an id a bulk replace has already discarded. The applied filters are echoed in `filter`, which always carries the `method_id` taken from the path.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} params.limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} params.offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {number} params.fromValue - Exact-match filter on `from_value`. The tier at exactly this threshold. (tenant_id, method_id, from_value) is unique, so this addresses one row of the matrix by what it MEANS rather than by an id a bulk replace has already thrown away.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersList(params: { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number }): Promise<Models.Error>;\n /**\n * The rate matrix of one method — every `from_value` threshold with the price charged at or above it — lowest threshold first. Filterable by `?from_value=` — the unique index is (tenant_id, method_id, from_value), so that addresses one row of the matrix by the threshold it prices rather than by an id a bulk replace has already discarded. The applied filters are echoed in `filter`, which always carries the `method_id` taken from the path.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {number} fromValue - Exact-match filter on `from_value`. The tier at exactly this threshold. (tenant_id, method_id, from_value) is unique, so this addresses one row of the matrix by what it MEANS rather than by an id a bulk replace has already thrown away.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersList(methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number): Promise<Models.Error>;\n shippingTiersList(\n paramsOrFirst: { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number } | string,\n ...rest: [(number)?, (number)?, (string)?, (number)?] \n ): Promise<Models.Error> {\n let params: { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n limit: rest[0] as number,\n offset: rest[1] as number,\n order: rest[2] as string,\n fromValue: rest[3] as number \n };\n }\n \n const methodId = params.methodId;\n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const fromValue = params.fromValue;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This adds ONE row to the table of the method in the path, leaving the rest alone — the edit for a merchant who has added a heavier bracket. To lay a whole table down at once use PUT …/tiers (set semantics) or POST …/tiers/ladder (evenly stepped), and note that both of those DISCARD the ids of the rows they replace. Two rows of this tenant may not share the combination of `method_id` + `from_value` — that is the 409. `method_id` is taken from the path on every write, so a body naming a different method is ignored rather than obeyed.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} params.fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} params.position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} params.price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersCreate(params: { methodId: string, fromValue?: number, position?: number, price?: number }): Promise<Models.Error>;\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This adds ONE row to the table of the method in the path, leaving the rest alone — the edit for a merchant who has added a heavier bracket. To lay a whole table down at once use PUT …/tiers (set semantics) or POST …/tiers/ladder (evenly stepped), and note that both of those DISCARD the ids of the rows they replace. Two rows of this tenant may not share the combination of `method_id` + `from_value` — that is the 409. `method_id` is taken from the path on every write, so a body naming a different method is ignored rather than obeyed.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersCreate(methodId: string, fromValue?: number, position?: number, price?: number): Promise<Models.Error>;\n shippingTiersCreate(\n paramsOrFirst: { methodId: string, fromValue?: number, position?: number, price?: number } | string,\n ...rest: [(number)?, (number)?, (number)?] \n ): Promise<Models.Error> {\n let params: { methodId: string, fromValue?: number, position?: number, price?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, fromValue?: number, position?: number, price?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n fromValue: rest[0] as number,\n position: rest[1] as number,\n price: rest[2] as number \n };\n }\n \n const methodId = params.methodId;\n const fromValue = params.fromValue;\n const position = params.position;\n const price = params.price;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The write behind a table editor: a merchant edits the whole matrix on screen and saves it in one call, rather than diffing it into a row added here and a row deleted there. Set semantics, and it replaces EVERY tier the method had: the tiers this method has afterwards are exactly the ones handed in, positions derived from the array order. An empty `tiers` array clears the table — and a matrix method with no tiers quotes nothing, with a reason.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {Models.ShippingRateTierReplaceItem[]} params.tiers - The complete new tier set (set semantics) — positions are derived from the array order. An empty array clears the matrix, and a matrix method with no tiers quotes nothing.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersReplace(params: { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] }): Promise<Models.Error>;\n /**\n * The write behind a table editor: a merchant edits the whole matrix on screen and saves it in one call, rather than diffing it into a row added here and a row deleted there. Set semantics, and it replaces EVERY tier the method had: the tiers this method has afterwards are exactly the ones handed in, positions derived from the array order. An empty `tiers` array clears the table — and a matrix method with no tiers quotes nothing, with a reason.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {Models.ShippingRateTierReplaceItem[]} tiers - The complete new tier set (set semantics) — positions are derived from the array order. An empty array clears the matrix, and a matrix method with no tiers quotes nothing.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersReplace(methodId: string, tiers: Models.ShippingRateTierReplaceItem[]): Promise<Models.Error>;\n shippingTiersReplace(\n paramsOrFirst: { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] } | string,\n ...rest: [(Models.ShippingRateTierReplaceItem[])?] \n ): Promise<Models.Error> {\n let params: { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n tiers: rest[0] as Models.ShippingRateTierReplaceItem[] \n };\n }\n \n const methodId = params.methodId;\n const tiers = params.tiers;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof tiers === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"tiers\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof tiers !== 'undefined') {\n apiPayload['tiers'] = tiers;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The tier table a merchant describes in words — \"0 to 30 kg, every 5 kg, €4.90 plus €2 a step\" — without typing every row. Replaces the method's tiers by default (set replace=false to append).\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} params.basePrice - Price of the first tier.\n * @param {number} params.step - Distance between two tiers. Must be > 0.\n * @param {number} params.toValue - Last tier threshold. The final tier keeps applying above it — a matrix has no upper bound. Must be >= from_value.\n * @param {number} params.fromValue - First tier threshold (default 0), in the method's matrix measure.\n * @param {boolean} params.replace - Replace the whole table (default true) or append to it.\n * @param {number} params.stepPrice - Added to each subsequent tier (default 0). A negative value is allowed as long as no tier ends up below 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersLadder(params: { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number }): Promise<Models.Error>;\n /**\n * The tier table a merchant describes in words — \"0 to 30 kg, every 5 kg, €4.90 plus €2 a step\" — without typing every row. Replaces the method's tiers by default (set replace=false to append).\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} basePrice - Price of the first tier.\n * @param {number} step - Distance between two tiers. Must be > 0.\n * @param {number} toValue - Last tier threshold. The final tier keeps applying above it — a matrix has no upper bound. Must be >= from_value.\n * @param {number} fromValue - First tier threshold (default 0), in the method's matrix measure.\n * @param {boolean} replace - Replace the whole table (default true) or append to it.\n * @param {number} stepPrice - Added to each subsequent tier (default 0). A negative value is allowed as long as no tier ends up below 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersLadder(methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number): Promise<Models.Error>;\n shippingTiersLadder(\n paramsOrFirst: { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number } | string,\n ...rest: [(number)?, (number)?, (number)?, (number)?, (boolean)?, (number)?] \n ): Promise<Models.Error> {\n let params: { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n basePrice: rest[0] as number,\n step: rest[1] as number,\n toValue: rest[2] as number,\n fromValue: rest[3] as number,\n replace: rest[4] as boolean,\n stepPrice: rest[5] as number \n };\n }\n \n const methodId = params.methodId;\n const basePrice = params.basePrice;\n const step = params.step;\n const toValue = params.toValue;\n const fromValue = params.fromValue;\n const replace = params.replace;\n const stepPrice = params.stepPrice;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof basePrice === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"basePrice\"');\n }\n if (typeof step === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"step\"');\n }\n if (typeof toValue === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"toValue\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/ladder'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof basePrice !== 'undefined') {\n apiPayload['base_price'] = basePrice;\n }\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n if (typeof replace !== 'undefined') {\n apiPayload['replace'] = replace;\n }\n if (typeof step !== 'undefined') {\n apiPayload['step'] = step;\n }\n if (typeof stepPrice !== 'undefined') {\n apiPayload['step_price'] = stepPrice;\n }\n if (typeof toValue !== 'undefined') {\n apiPayload['to_value'] = toValue;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. Removing a tier in the MIDDLE of a table is harmless — the measures it used to cover fall to the highest remaining threshold below them. Removing the LOWEST one is not: a measure under the new lowest threshold matches no tier at all, and the method is then left out of POST /shipping/rates with 'no tier covers measure …' instead of being quoted at 0, so an entire band of baskets silently stops being offered this method. Deleting the last tier takes the method out of the checkout altogether. Rebuilding the table wholesale is PUT …/tiers or POST …/tiers/ladder; deleting the method deletes its tiers on its own.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersDelete(params: { methodId: string, id: string }): Promise<Models.Error>;\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. Removing a tier in the MIDDLE of a table is harmless — the measures it used to cover fall to the highest remaining threshold below them. Removing the LOWEST one is not: a measure under the new lowest threshold matches no tier at all, and the method is then left out of POST /shipping/rates with 'no tier covers measure …' instead of being quoted at 0, so an entire band of baskets silently stops being offered this method. Deleting the last tier takes the method out of the checkout altogether. Rebuilding the table wholesale is PUT …/tiers or POST …/tiers/ladder; deleting the method deletes its tiers on its own.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersDelete(methodId: string, id: string): Promise<Models.Error>;\n shippingTiersDelete(\n paramsOrFirst: { methodId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Error> {\n let params: { methodId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, id: string };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const methodId = params.methodId;\n const id = params.id;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/{id}'.replace('{method_id}', methodId).replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This reads one row of that table by id, under the method that owns it; a tier id belonging to another method is a 404 rather than somebody else's price. A tier id is not durable: PUT …/tiers and POST …/tiers/ladder replace the table by deleting and recreating it, so an id read before either of them names nothing afterwards. Where a caller wants a stable handle, address the row by what it MEANS — GET …/tiers?from_value=… — since (method_id, from_value) is unique.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersGet(params: { methodId: string, id: string }): Promise<Models.Error>;\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This reads one row of that table by id, under the method that owns it; a tier id belonging to another method is a 404 rather than somebody else's price. A tier id is not durable: PUT …/tiers and POST …/tiers/ladder replace the table by deleting and recreating it, so an id read before either of them names nothing afterwards. Where a caller wants a stable handle, address the row by what it MEANS — GET …/tiers?from_value=… — since (method_id, from_value) is unique.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersGet(methodId: string, id: string): Promise<Models.Error>;\n shippingTiersGet(\n paramsOrFirst: { methodId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.Error> {\n let params: { methodId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, id: string };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const methodId = params.methodId;\n const id = params.id;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/{id}'.replace('{method_id}', methodId).replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A tier id is not stable across a bulk edit: `PUT …/tiers` and `POST …/tiers/ladder` replace the table by deleting and recreating it, so an id read before either of them is gone afterwards.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} params.id - The row id.\n * @param {number} params.fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} params.position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} params.price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingTiersUpdate(params: { methodId: string, id: string, fromValue?: number, position?: number, price?: number }): Promise<Models.Error>;\n /**\n * A tier id is not stable across a bulk edit: `PUT …/tiers` and `POST …/tiers/ladder` replace the table by deleting and recreating it, so an id read before either of them is gone afterwards.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} id - The row id.\n * @param {number} fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersUpdate(methodId: string, id: string, fromValue?: number, position?: number, price?: number): Promise<Models.Error>;\n shippingTiersUpdate(\n paramsOrFirst: { methodId: string, id: string, fromValue?: number, position?: number, price?: number } | string,\n ...rest: [(string)?, (number)?, (number)?, (number)?] \n ): Promise<Models.Error> {\n let params: { methodId: string, id: string, fromValue?: number, position?: number, price?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, id: string, fromValue?: number, position?: number, price?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n id: rest[0] as string,\n fromValue: rest[1] as number,\n position: rest[2] as number,\n price: rest[3] as number \n };\n }\n \n const methodId = params.methodId;\n const id = params.id;\n const fromValue = params.fromValue;\n const position = params.position;\n const price = params.price;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/{id}'.replace('{method_id}', methodId).replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The question a checkout asks, and the only route that answers a PRICE. Hand in the buyer context — the destination country, the order value, and whatever the matrix methods measure: a weight, a quantity or a named product attribute — and this comes back with the methods that may be offered and what each of them costs, free-above thresholds, country restrictions, the carrier's delivery promise and tax already applied. A method that does not apply is never an error: it moves to `excluded` with a reason. So is a tax rate that cannot be resolved — `tax.resolved: false` means the rates are UNKNOWN, not untaxed.\n *\n * @param {string} params.at - The instant to evaluate the delivery estimate at (ISO 8601). Omitted: now. Lets a storefront compute the cut-off in its own timezone.\n * @param {object} params.attributes - Measure values for attribute matrices, keyed by attribute NAME — the key a matrix method names in its matrix_attribute, and the value the number its tiers are matched against. Summed over the basket by the caller, not by this app. Only the key a method asks for is read; anything else in the map is carried along and ignored, and a value that is not a finite number excludes that method with a reason rather than failing the quote.\n * @param {string} params.country - Destination ISO 3166-1 alpha-2 code — compared upper-cased against method and carrier country restrictions. Omitted or null: every method that restricts by country is excluded, with a reason.\n * @param {string} params.currency - ISO 4217 code, echoed into the rates (default 'EUR'). Echoed, not converted: this app prices in the currency the method carries.\n * @param {string} params.marketId - Buyer market for tax resolution. Omitted: the market matching `country`, else the tenant's sole market — never an arbitrary one.\n * @param {number} params.orderValue - Order value (default 0) — drives order_value matrices, and free-above thresholds when no sided value is sent. Read on the basis the tenant's free_above_compares setting declares.\n * @param {number} params.orderValueGross - Order value including tax. Compared against free-above thresholds when free_above_compares is 'gross'.\n * @param {number} params.orderValueNet - Order value excluding tax. Compared against free-above thresholds when free_above_compares is 'net'.\n * @param {number} params.quantity - Total quantity — measure for quantity matrices.\n * @param {number} params.weight - Total weight — measure for weight matrices. Read in weight_unit and converted to the unit the tiers are keyed in.\n * @param {string} params.weightUnit - The unit `weight` is expressed in, as a CODE into the tenant's own weight units (GET /shipping/weight-units). Omitted, it is the unit this market quotes in. A unit the tenant does not keep is a 400 — a mis-read weight prices the wrong bracket silently, and guessing is worse than refusing.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n */\n shippingRates(params?: { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string }): Promise<Models.Error>;\n /**\n * The question a checkout asks, and the only route that answers a PRICE. Hand in the buyer context — the destination country, the order value, and whatever the matrix methods measure: a weight, a quantity or a named product attribute — and this comes back with the methods that may be offered and what each of them costs, free-above thresholds, country restrictions, the carrier's delivery promise and tax already applied. A method that does not apply is never an error: it moves to `excluded` with a reason. So is a tax rate that cannot be resolved — `tax.resolved: false` means the rates are UNKNOWN, not untaxed.\n *\n * @param {string} at - The instant to evaluate the delivery estimate at (ISO 8601). Omitted: now. Lets a storefront compute the cut-off in its own timezone.\n * @param {object} attributes - Measure values for attribute matrices, keyed by attribute NAME — the key a matrix method names in its matrix_attribute, and the value the number its tiers are matched against. Summed over the basket by the caller, not by this app. Only the key a method asks for is read; anything else in the map is carried along and ignored, and a value that is not a finite number excludes that method with a reason rather than failing the quote.\n * @param {string} country - Destination ISO 3166-1 alpha-2 code — compared upper-cased against method and carrier country restrictions. Omitted or null: every method that restricts by country is excluded, with a reason.\n * @param {string} currency - ISO 4217 code, echoed into the rates (default 'EUR'). Echoed, not converted: this app prices in the currency the method carries.\n * @param {string} marketId - Buyer market for tax resolution. Omitted: the market matching `country`, else the tenant's sole market — never an arbitrary one.\n * @param {number} orderValue - Order value (default 0) — drives order_value matrices, and free-above thresholds when no sided value is sent. Read on the basis the tenant's free_above_compares setting declares.\n * @param {number} orderValueGross - Order value including tax. Compared against free-above thresholds when free_above_compares is 'gross'.\n * @param {number} orderValueNet - Order value excluding tax. Compared against free-above thresholds when free_above_compares is 'net'.\n * @param {number} quantity - Total quantity — measure for quantity matrices.\n * @param {number} weight - Total weight — measure for weight matrices. Read in weight_unit and converted to the unit the tiers are keyed in.\n * @param {string} weightUnit - The unit `weight` is expressed in, as a CODE into the tenant's own weight units (GET /shipping/weight-units). Omitted, it is the unit this market quotes in. A unit the tenant does not keep is a 400 — a mis-read weight prices the wrong bracket silently, and guessing is worse than refusing.\n * @throws {RevenexxException}\n * @returns {Promise<Models.Error>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingRates(at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string): Promise<Models.Error>;\n shippingRates(\n paramsOrFirst?: { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string } | string,\n ...rest: [(object)?, (string)?, (string)?, (string)?, (number)?, (number)?, (number)?, (number)?, (number)?, (string)?] \n ): Promise<Models.Error> {\n let params: { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string };\n } else {\n params = {\n at: paramsOrFirst as string,\n attributes: rest[0] as object,\n country: rest[1] as string,\n currency: rest[2] as string,\n marketId: rest[3] as string,\n orderValue: rest[4] as number,\n orderValueGross: rest[5] as number,\n orderValueNet: rest[6] as number,\n quantity: rest[7] as number,\n weight: rest[8] as number,\n weightUnit: rest[9] as string \n };\n }\n \n const at = params.at;\n const attributes = params.attributes;\n const country = params.country;\n const currency = params.currency;\n const marketId = params.marketId;\n const orderValue = params.orderValue;\n const orderValueGross = params.orderValueGross;\n const orderValueNet = params.orderValueNet;\n const quantity = params.quantity;\n const weight = params.weight;\n const weightUnit = params.weightUnit;\n\n\n const apiPath = '/v1/shipping/rates';\n const apiPayload: Payload = {};\n if (typeof at !== 'undefined') {\n apiPayload['at'] = at;\n }\n if (typeof attributes !== 'undefined') {\n apiPayload['attributes'] = attributes;\n }\n if (typeof country !== 'undefined') {\n apiPayload['country'] = country;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof marketId !== 'undefined') {\n apiPayload['market_id'] = marketId;\n }\n if (typeof orderValue !== 'undefined') {\n apiPayload['order_value'] = orderValue;\n }\n if (typeof orderValueGross !== 'undefined') {\n apiPayload['order_value_gross'] = orderValueGross;\n }\n if (typeof orderValueNet !== 'undefined') {\n apiPayload['order_value_net'] = orderValueNet;\n }\n if (typeof quantity !== 'undefined') {\n apiPayload['quantity'] = quantity;\n }\n if (typeof weight !== 'undefined') {\n apiPayload['weight'] = weight;\n }\n if (typeof weightUnit !== 'undefined') {\n apiPayload['weight_unit'] = weightUnit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * markets.tax_classes is the source of record for the rate and this app points at it by CODE from two places: a method's own tax_class and the tenant's shipping_tax_class fallback. Neither is a foreign key and neither could be — a cross-app FK is what ADR-0055 forbids — so integrity is a question one app asks the other, and this is the answering half. It is asked before a destructive edit: markets calls it when an operator tries to delete a tax class, and a count above zero is what stops the delete rather than leaving these methods pointing at a code nobody serves. Matched as a CODE, not a row: a tax class is unique per market, so 'reduced' may exist in several and a method naming it does not say which one it meant. Reports at most 500 methods and names the first 20. Every code answers, used or not — a code nobody points at is `in_use: false`, never a 404.\n *\n * @param {string} params.code - The tax-class CODE, as markets spells it — not a row id. Matched against every shipping method's `tax_class` and against this market's `shipping_tax_class` setting.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingTaxClassUsage>}\n */\n shippingTaxClassesUsage(params: { code: string }): Promise<Models.ShippingTaxClassUsage>;\n /**\n * markets.tax_classes is the source of record for the rate and this app points at it by CODE from two places: a method's own tax_class and the tenant's shipping_tax_class fallback. Neither is a foreign key and neither could be — a cross-app FK is what ADR-0055 forbids — so integrity is a question one app asks the other, and this is the answering half. It is asked before a destructive edit: markets calls it when an operator tries to delete a tax class, and a count above zero is what stops the delete rather than leaving these methods pointing at a code nobody serves. Matched as a CODE, not a row: a tax class is unique per market, so 'reduced' may exist in several and a method naming it does not say which one it meant. Reports at most 500 methods and names the first 20. Every code answers, used or not — a code nobody points at is `in_use: false`, never a 404.\n *\n * @param {string} code - The tax-class CODE, as markets spells it — not a row id. Matched against every shipping method's `tax_class` and against this market's `shipping_tax_class` setting.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingTaxClassUsage>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTaxClassesUsage(code: string): Promise<Models.ShippingTaxClassUsage>;\n shippingTaxClassesUsage(\n paramsOrFirst: { code: string } | string \n ): Promise<Models.ShippingTaxClassUsage> {\n let params: { code: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string };\n } else {\n params = {\n code: paramsOrFirst as string \n };\n }\n \n const code = params.code;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/shipping/tax-classes/{code}/usage'.replace('{code}', code);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/services/shipping-methods.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { PricingType } from '../enums/pricing-type';\nimport { ShippingMethodMatrixBasis } from '../enums/shipping-method-matrix-basis';\nimport { ShippingMethodPricingType } from '../enums/shipping-method-pricing-type';\n\nexport class ShippingMethods {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Filterable by exact column value — `?code=`, `?enabled=`, `?pricing_type=`, `?carrier_id=`, `?carrier=` and `?tax_class=` are applied as equalities and echoed back in `filter`. `?carrier_id=` and `?carrier=` are the two halves of one question: the first finds the methods holding a reference, the second the ones still resolving through the legacy code text. A query key that names no column of this entity is SILENTLY IGNORED — `?status=` on this route is the trap, since carriers have a status and methods do not: the page comes back unfiltered, 200, with an empty `filter`.\n *\n * @param {number} params.limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} params.offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {string} params.code - Exact-match filter on `code`. Unique per tenant, so this resolves a code a checkout already holds without paging the whole list.\n * @param {boolean} params.enabled - Exact-match filter on `enabled`. Only enabled methods are ever quoted, so this is the storefront-facing subset.\n * @param {PricingType} params.pricingType - Exact-match filter on `pricing_type`. Pricing model — `matrix` is the set whose tiers a rate-matrix editor has to load.\n * @param {string} params.carrierId - Exact-match filter on `carrier_id`. The methods that ship with one carrier — what a merchant needs before pausing it. Matches `carrier_id` only, never the legacy `carrier` text.\n * @param {string} params.carrier - Exact-match filter on `carrier`. The other half of that question: the methods still resolving their carrier through the legacy free-text CODE rather than a reference. Together with `?carrier_id=` this is how a merchant finds what a carrier is still holding before retiring it.\n * @param {string} params.taxClass - Exact-match filter on `tax_class`. The methods naming one tax class — the same question GET /shipping/tax-classes/{code}/usage counts, when the caller wants the rows rather than the count. Only a method's OWN class; a method falling back to the tenant setting does not match.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingMethodsList(params?: { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string }): Promise<{}>;\n /**\n * Filterable by exact column value — `?code=`, `?enabled=`, `?pricing_type=`, `?carrier_id=`, `?carrier=` and `?tax_class=` are applied as equalities and echoed back in `filter`. `?carrier_id=` and `?carrier=` are the two halves of one question: the first finds the methods holding a reference, the second the ones still resolving through the legacy code text. A query key that names no column of this entity is SILENTLY IGNORED — `?status=` on this route is the trap, since carriers have a status and methods do not: the page comes back unfiltered, 200, with an empty `filter`.\n *\n * @param {number} limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {string} code - Exact-match filter on `code`. Unique per tenant, so this resolves a code a checkout already holds without paging the whole list.\n * @param {boolean} enabled - Exact-match filter on `enabled`. Only enabled methods are ever quoted, so this is the storefront-facing subset.\n * @param {PricingType} pricingType - Exact-match filter on `pricing_type`. Pricing model — `matrix` is the set whose tiers a rate-matrix editor has to load.\n * @param {string} carrierId - Exact-match filter on `carrier_id`. The methods that ship with one carrier — what a merchant needs before pausing it. Matches `carrier_id` only, never the legacy `carrier` text.\n * @param {string} carrier - Exact-match filter on `carrier`. The other half of that question: the methods still resolving their carrier through the legacy free-text CODE rather than a reference. Together with `?carrier_id=` this is how a merchant finds what a carrier is still holding before retiring it.\n * @param {string} taxClass - Exact-match filter on `tax_class`. The methods naming one tax class — the same question GET /shipping/tax-classes/{code}/usage counts, when the caller wants the rows rather than the count. Only a method's OWN class; a method falling back to the tenant setting does not match.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsList(limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string): Promise<{}>;\n shippingMethodsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string } | number,\n ...rest: [(number)?, (string)?, (string)?, (boolean)?, (PricingType)?, (string)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, code?: string, enabled?: boolean, pricingType?: PricingType, carrierId?: string, carrier?: string, taxClass?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n code: rest[2] as string,\n enabled: rest[3] as boolean,\n pricingType: rest[4] as PricingType,\n carrierId: rest[5] as string,\n carrier: rest[6] as string,\n taxClass: rest[7] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const code = params.code;\n const enabled = params.enabled;\n const pricingType = params.pricingType;\n const carrierId = params.carrierId;\n const carrier = params.carrier;\n const taxClass = params.taxClass;\n\n\n const apiPath = '/v1/shipping/methods';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof pricingType !== 'undefined') {\n apiPayload['pricing_type'] = pricingType;\n }\n if (typeof carrierId !== 'undefined') {\n apiPayload['carrier_id'] = carrierId;\n }\n if (typeof carrier !== 'undefined') {\n apiPayload['carrier'] = carrier;\n }\n if (typeof taxClass !== 'undefined') {\n apiPayload['tax_class'] = taxClass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A create cannot omit `code` and `name`; every other column is optional or defaulted by the database. Two rows of this tenant may not share `code` — that is the 409. The new method is quoted by nobody until two further things are true: `enabled` defaults to FALSE, and a 'matrix' method has no tiers yet — until POST or PUT …/tiers gives it some it appears in `excluded` with 'matrix has no rate tiers configured' rather than in the rates. `carrier_id` and the legacy `carrier` code are both accepted and neither is verified against the carrier table here: an unmatched code is a plain carrier name on the rate, not an error.\n *\n * @param {string} params.code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string} params.name - Display name shown in the checkout.\n * @param {string} params.carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} params.carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string[]} params.countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} params.currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} params.description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} params.enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} params.etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} params.etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} params.freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} params.labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} params.matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} params.matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} params.metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {number} params.position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} params.price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} params.pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} params.quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} params.taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingMethod>}\n */\n shippingMethodsCreate(params: { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string }): Promise<Models.ShippingMethod>;\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A create cannot omit `code` and `name`; every other column is optional or defaulted by the database. Two rows of this tenant may not share `code` — that is the 409. The new method is quoted by nobody until two further things are true: `enabled` defaults to FALSE, and a 'matrix' method has no tiers yet — until POST or PUT …/tiers gives it some it appears in `excluded` with 'matrix has no rate tiers configured' rather than in the rates. `carrier_id` and the legacy `carrier` code are both accepted and neither is verified against the carrier table here: an unmatched code is a plain carrier name on the rate, not an error.\n *\n * @param {string} code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string} name - Display name shown in the checkout.\n * @param {string} carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string[]} countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {number} position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingMethod>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsCreate(code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string): Promise<Models.ShippingMethod>;\n shippingMethodsCreate(\n paramsOrFirst: { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string[])?, (string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (object)?, (string)?, (ShippingMethodMatrixBasis)?, (object)?, (number)?, (number)?, (ShippingMethodPricingType)?, (number)?, (string)?] \n ): Promise<Models.ShippingMethod> {\n let params: { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string, name: string, carrier?: string, carrierId?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n } else {\n params = {\n code: paramsOrFirst as string,\n name: rest[0] as string,\n carrier: rest[1] as string,\n carrierId: rest[2] as string,\n countries: rest[3] as string[],\n currency: rest[4] as string,\n description: rest[5] as string,\n enabled: rest[6] as boolean,\n etaDaysMax: rest[7] as number,\n etaDaysMin: rest[8] as number,\n freeAbove: rest[9] as number,\n labels: rest[10] as object,\n matrixAttribute: rest[11] as string,\n matrixBasis: rest[12] as ShippingMethodMatrixBasis,\n metadata: rest[13] as object,\n position: rest[14] as number,\n price: rest[15] as number,\n pricingType: rest[16] as ShippingMethodPricingType,\n quoteAbove: rest[17] as number,\n taxClass: rest[18] as string \n };\n }\n \n const code = params.code;\n const name = params.name;\n const carrier = params.carrier;\n const carrierId = params.carrierId;\n const countries = params.countries;\n const currency = params.currency;\n const description = params.description;\n const enabled = params.enabled;\n const etaDaysMax = params.etaDaysMax;\n const etaDaysMin = params.etaDaysMin;\n const freeAbove = params.freeAbove;\n const labels = params.labels;\n const matrixAttribute = params.matrixAttribute;\n const matrixBasis = params.matrixBasis;\n const metadata = params.metadata;\n const position = params.position;\n const price = params.price;\n const pricingType = params.pricingType;\n const quoteAbove = params.quoteAbove;\n const taxClass = params.taxClass;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/shipping/methods';\n const apiPayload: Payload = {};\n if (typeof carrier !== 'undefined') {\n apiPayload['carrier'] = carrier;\n }\n if (typeof carrierId !== 'undefined') {\n apiPayload['carrier_id'] = carrierId;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof countries !== 'undefined') {\n apiPayload['countries'] = countries;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof description !== 'undefined') {\n apiPayload['description'] = description;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof etaDaysMax !== 'undefined') {\n apiPayload['eta_days_max'] = etaDaysMax;\n }\n if (typeof etaDaysMin !== 'undefined') {\n apiPayload['eta_days_min'] = etaDaysMin;\n }\n if (typeof freeAbove !== 'undefined') {\n apiPayload['free_above'] = freeAbove;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof matrixAttribute !== 'undefined') {\n apiPayload['matrix_attribute'] = matrixAttribute;\n }\n if (typeof matrixBasis !== 'undefined') {\n apiPayload['matrix_basis'] = matrixBasis;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n if (typeof pricingType !== 'undefined') {\n apiPayload['pricing_type'] = pricingType;\n }\n if (typeof quoteAbove !== 'undefined') {\n apiPayload['quote_above'] = quoteAbove;\n }\n if (typeof taxClass !== 'undefined') {\n apiPayload['tax_class'] = taxClass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Runs the carrier seed first, then creates any missing method: the three lines a shop is expected to offer — standard, express and pickup. The app runs this itself on `app.installed`, so a fresh install already has them; calling it by hand afterwards is how a tenant that deleted one gets it back, and calling it twice costs nothing, because it reconciles rather than seeds. The seeded methods deliberately name no carrier: which carrier carries the standard method is a contract, not a default, and a method that says 'dhl' resolves to the seeded DHL row anyway.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingMethodsDefaults(): Promise<{}> {\n\n const apiPath = '/v1/shipping/methods/defaults';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Deleting one takes every `shipping_rate_tiers` row that points at it with it — the foreign keys decide that, not this route. So the whole rate matrix goes with the method, which is also why this never answers a conflict and why there is no way to recover the table afterwards — for a method a checkout may still be holding in a session, `enabled: false` is the safer edit.\n *\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingMethodsDelete(params: { id: string }): Promise<{}>;\n /**\n * Deleting one takes every `shipping_rate_tiers` row that points at it with it — the foreign keys decide that, not this route. So the whole rate matrix goes with the method, which is also why this never answers a conflict and why there is no way to recover the table afterwards — for a method a checkout may still be holding in a session, `enabled: false` is the safer edit.\n *\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsDelete(id: string): Promise<{}>;\n shippingMethodsDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. This is the CONFIGURATION of one, by row id — not what a buyer would be charged. A matrix method's prices are not in here at all: they are its rate tiers, GET /shipping/methods/{method_id}/tiers, and the price for a given basket is POST /shipping/rates, which is the only place free-above thresholds, country restrictions, the carrier's reach and tax are applied. A checkout that reads `price` off this row prices a matrix method at 0.\n *\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingMethod>}\n */\n shippingMethodsGet(params: { id: string }): Promise<Models.ShippingMethod>;\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. This is the CONFIGURATION of one, by row id — not what a buyer would be charged. A matrix method's prices are not in here at all: they are its rate tiers, GET /shipping/methods/{method_id}/tiers, and the price for a given basket is POST /shipping/rates, which is the only place free-above thresholds, country restrictions, the carrier's reach and tax are applied. A checkout that reads `price` off this row prices a matrix method at 0.\n *\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingMethod>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsGet(id: string): Promise<Models.ShippingMethod>;\n shippingMethodsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.ShippingMethod> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A partial update — send only what changes, whether that is taking the method in or out of the checkout, its pricing, the countries it is restricted to or the delivery estimate it states of its own; a payload carrying no column at all is refused rather than answering a row it did not touch. Flipping `enabled` is what puts the method in front of a buyer or takes it away, and a disabled method is reported in the rate answer's `excluded` rather than hidden. Changing `pricing_type` away from 'matrix' does NOT delete the tier table — it stops being read, and changing back reinstates the old prices, so a method switched to 'fixed' and back quotes what it quoted before. Two rows of this tenant may not share `code` — that is the 409.\n *\n * @param {string} params.id - The row id.\n * @param {string} params.carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} params.carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string} params.code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string[]} params.countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} params.currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} params.description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} params.enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} params.etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} params.etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} params.freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} params.labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} params.matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} params.matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} params.metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {string} params.name - Display name shown in the checkout.\n * @param {number} params.position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} params.price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} params.pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} params.quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} params.taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingMethod>}\n */\n shippingMethodsUpdate(params: { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string }): Promise<Models.ShippingMethod>;\n /**\n * A shipping method is the line a buyer picks in the checkout: a pricing model ('fixed', 'free' or 'matrix'), the countries it may be offered into, a free-above threshold, and the carrier it ships with. The method owns the PRICE; the delivery promise — tracking template, cut-off, handling and transit days — is inherited from the carrier wherever the method states none of its own. A partial update — send only what changes, whether that is taking the method in or out of the checkout, its pricing, the countries it is restricted to or the delivery estimate it states of its own; a payload carrying no column at all is refused rather than answering a row it did not touch. Flipping `enabled` is what puts the method in front of a buyer or takes it away, and a disabled method is reported in the rate answer's `excluded` rather than hidden. Changing `pricing_type` away from 'matrix' does NOT delete the tier table — it stops being read, and changing back reinstates the old prices, so a method switched to 'fixed' and back quotes what it quoted before. Two rows of this tenant may not share `code` — that is the 409.\n *\n * @param {string} id - The row id.\n * @param {string} carrier - Carrier CODE, kept from before shipping_carriers existed. Looked up in the carrier table when carrier_id is not set, so an existing value keeps working and gains a tracking template; a code nobody maintains is still reported as a plain name.\n * @param {string} carrierId - The carrier this method ships with. Wins over `carrier` and supplies the tracking template, pickup cut-off, handling time and transit days.\n * @param {string} code - Stable method code, unique per tenant (e.g. standard, express). What a checkout and an order line store, so it is the value every integration joins on.\n * @param {string[]} countries - The countries this method may be offered into. ISO 3166-1 alpha-2 codes; null or an empty array means no restriction. Compared upper-cased, so a lower-case entry still matches. Declared as an array rather than the bare object a jsonb column derives to — this one is always a list. ANDed with the carrier's own reach.\n * @param {string} currency - ISO 4217 code (default EUR). Exactly three characters — the column says so. Echoed into a rate, never converted: this app prices in the currency the method carries.\n * @param {string} description - The sentence under the name in the checkout — the delivery promise in words. Null when the name says enough.\n * @param {boolean} enabled - Only enabled methods are ever quoted (default false); a disabled one is reported in `excluded` rather than hidden.\n * @param {number} etaDaysMax - Transit time upper bound in calendar days. Falls back to the carrier's when null.\n * @param {number} etaDaysMin - Transit time lower bound in calendar days, for the checkout. Falls back to the carrier's when null.\n * @param {number} freeAbove - Free shipping at or above this order value — wins over every pricing model, including a matrix. Compared net or gross as the market's free_above_compares setting declares. Null falls back to the tenant's shop-wide free_shipping_threshold.\n * @param {object} labels - Localized display names. A flat map keyed by locale — the Cockpit falls back to `en`. Null means the row has no translations and every client shows the untranslated column instead.\n * @param {string} matrixAttribute - Attribute name for matrix_basis 'attribute' — the key the rate request's `attributes` map is read at. Free text: the set of attributes is the catalogue's, not this app's.\n * @param {ShippingMethodMatrixBasis} matrixBasis - The measure a matrix method prices its tiers over: total basket weight (in the market's weight unit), total item count, order value, or 'attribute' — any number the rate request carries under matrix_attribute. Null falls back to the tenant's matrix_basis_default. Ignored unless pricing_type is 'matrix'.\n * @param {object} metadata - Free-form jsonb the platform never reads or validates — whatever the merchant or their integration needs to keep beside the row (a customer number with the carrier, an ERP key, a label-printer id). The shape varies BY INTEGRATION, not by anything this app knows, so no key is declared and none is reserved; the example is one plausible instance rather than a schema. A flat map of scalars is the convention, and nothing enforces it.\n * @param {string} name - Display name shown in the checkout.\n * @param {number} position - Sort order in the checkout (default 0) — a rate answer is returned in this order.\n * @param {number} price - The fixed price (default 0), in `currency` — ignored for 'free' and 'matrix'.\n * @param {ShippingMethodPricingType} pricingType - Pricing model (default 'fixed'): 'fixed' is one price for every basket, 'free' is no price at all, 'matrix' is a tiered price read off this method's rate tiers. Only 'matrix' looks at matrix_basis, quote_above and the tier table.\n * @param {number} quoteAbove - Above this MATRIX MEASURE the method carries no automatic price: it is still offered, flagged `quote_required` with a reason, and the storefront shows 'shipping on request'. For bulky or overweight freight priced by hand. Null = every measure is priced automatically.\n * @param {string} taxClass - This method's own tax class, as a CODE into the buyer market's tax classes (markets.tax_classes) — never a rate. First step of the tax chain: unset falls back to the tenant's shipping_tax_class setting, then the market default. Not a foreign key and it could not be (ADR-0055); GET /shipping/tax-classes/{code}/usage is the integrity question markets asks in its place.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingMethod>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingMethodsUpdate(id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string): Promise<Models.ShippingMethod>;\n shippingMethodsUpdate(\n paramsOrFirst: { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string[])?, (string)?, (string)?, (boolean)?, (number)?, (number)?, (number)?, (object)?, (string)?, (ShippingMethodMatrixBasis)?, (object)?, (string)?, (number)?, (number)?, (ShippingMethodPricingType)?, (number)?, (string)?] \n ): Promise<Models.ShippingMethod> {\n let params: { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, carrier?: string, carrierId?: string, code?: string, countries?: string[], currency?: string, description?: string, enabled?: boolean, etaDaysMax?: number, etaDaysMin?: number, freeAbove?: number, labels?: object, matrixAttribute?: string, matrixBasis?: ShippingMethodMatrixBasis, metadata?: object, name?: string, position?: number, price?: number, pricingType?: ShippingMethodPricingType, quoteAbove?: number, taxClass?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n carrier: rest[0] as string,\n carrierId: rest[1] as string,\n code: rest[2] as string,\n countries: rest[3] as string[],\n currency: rest[4] as string,\n description: rest[5] as string,\n enabled: rest[6] as boolean,\n etaDaysMax: rest[7] as number,\n etaDaysMin: rest[8] as number,\n freeAbove: rest[9] as number,\n labels: rest[10] as object,\n matrixAttribute: rest[11] as string,\n matrixBasis: rest[12] as ShippingMethodMatrixBasis,\n metadata: rest[13] as object,\n name: rest[14] as string,\n position: rest[15] as number,\n price: rest[16] as number,\n pricingType: rest[17] as ShippingMethodPricingType,\n quoteAbove: rest[18] as number,\n taxClass: rest[19] as string \n };\n }\n \n const id = params.id;\n const carrier = params.carrier;\n const carrierId = params.carrierId;\n const code = params.code;\n const countries = params.countries;\n const currency = params.currency;\n const description = params.description;\n const enabled = params.enabled;\n const etaDaysMax = params.etaDaysMax;\n const etaDaysMin = params.etaDaysMin;\n const freeAbove = params.freeAbove;\n const labels = params.labels;\n const matrixAttribute = params.matrixAttribute;\n const matrixBasis = params.matrixBasis;\n const metadata = params.metadata;\n const name = params.name;\n const position = params.position;\n const price = params.price;\n const pricingType = params.pricingType;\n const quoteAbove = params.quoteAbove;\n const taxClass = params.taxClass;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof carrier !== 'undefined') {\n apiPayload['carrier'] = carrier;\n }\n if (typeof carrierId !== 'undefined') {\n apiPayload['carrier_id'] = carrierId;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof countries !== 'undefined') {\n apiPayload['countries'] = countries;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof description !== 'undefined') {\n apiPayload['description'] = description;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof etaDaysMax !== 'undefined') {\n apiPayload['eta_days_max'] = etaDaysMax;\n }\n if (typeof etaDaysMin !== 'undefined') {\n apiPayload['eta_days_min'] = etaDaysMin;\n }\n if (typeof freeAbove !== 'undefined') {\n apiPayload['free_above'] = freeAbove;\n }\n if (typeof labels !== 'undefined') {\n apiPayload['labels'] = labels;\n }\n if (typeof matrixAttribute !== 'undefined') {\n apiPayload['matrix_attribute'] = matrixAttribute;\n }\n if (typeof matrixBasis !== 'undefined') {\n apiPayload['matrix_basis'] = matrixBasis;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n if (typeof pricingType !== 'undefined') {\n apiPayload['pricing_type'] = pricingType;\n }\n if (typeof quoteAbove !== 'undefined') {\n apiPayload['quote_above'] = quoteAbove;\n }\n if (typeof taxClass !== 'undefined') {\n apiPayload['tax_class'] = taxClass;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The rate matrix of one method — every `from_value` threshold with the price charged at or above it — lowest threshold first. Filterable by `?from_value=` — the unique index is (tenant_id, method_id, from_value), so that addresses one row of the matrix by the threshold it prices rather than by an id a bulk replace has already discarded. The applied filters are echoed in `filter`, which always carries the `method_id` taken from the path.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} params.limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} params.offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} params.order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {number} params.fromValue - Exact-match filter on `from_value`. The tier at exactly this threshold. (tenant_id, method_id, from_value) is unique, so this addresses one row of the matrix by what it MEANS rather than by an id a bulk replace has already thrown away.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingTiersList(params: { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number }): Promise<{}>;\n /**\n * The rate matrix of one method — every `from_value` threshold with the price charged at or above it — lowest threshold first. Filterable by `?from_value=` — the unique index is (tenant_id, method_id, from_value), so that addresses one row of the matrix by the threshold it prices rather than by an id a bulk replace has already discarded. The applied filters are echoed in `filter`, which always carries the `method_id` taken from the path.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} limit - Page size (default 50, max 200). A value outside the range is clamped rather than refused, and `page.limit` echoes what was applied.\n * @param {number} offset - Row offset for pagination (default 0). The next page is `page.offset + page.returned`.\n * @param {string} order - Sort as 'column.asc' | 'column.desc' — a bare 'column' sorts ascending. The column must be one this entity has; anything else is a 400 from the data plane.\n * @param {number} fromValue - Exact-match filter on `from_value`. The tier at exactly this threshold. (tenant_id, method_id, from_value) is unique, so this addresses one row of the matrix by what it MEANS rather than by an id a bulk replace has already thrown away.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersList(methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number): Promise<{}>;\n shippingTiersList(\n paramsOrFirst: { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number } | string,\n ...rest: [(number)?, (number)?, (string)?, (number)?] \n ): Promise<{}> {\n let params: { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, limit?: number, offset?: number, order?: string, fromValue?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n limit: rest[0] as number,\n offset: rest[1] as number,\n order: rest[2] as string,\n fromValue: rest[3] as number \n };\n }\n \n const methodId = params.methodId;\n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const fromValue = params.fromValue;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This adds ONE row to the table of the method in the path, leaving the rest alone — the edit for a merchant who has added a heavier bracket. To lay a whole table down at once use PUT …/tiers (set semantics) or POST …/tiers/ladder (evenly stepped), and note that both of those DISCARD the ids of the rows they replace. Two rows of this tenant may not share the combination of `method_id` + `from_value` — that is the 409. `method_id` is taken from the path on every write, so a body naming a different method is ignored rather than obeyed.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} params.fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} params.position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} params.price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingRateTier>}\n */\n shippingTiersCreate(params: { methodId: string, fromValue?: number, position?: number, price?: number }): Promise<Models.ShippingRateTier>;\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This adds ONE row to the table of the method in the path, leaving the rest alone — the edit for a merchant who has added a heavier bracket. To lay a whole table down at once use PUT …/tiers (set semantics) or POST …/tiers/ladder (evenly stepped), and note that both of those DISCARD the ids of the rows they replace. Two rows of this tenant may not share the combination of `method_id` + `from_value` — that is the 409. `method_id` is taken from the path on every write, so a body naming a different method is ignored rather than obeyed.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingRateTier>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersCreate(methodId: string, fromValue?: number, position?: number, price?: number): Promise<Models.ShippingRateTier>;\n shippingTiersCreate(\n paramsOrFirst: { methodId: string, fromValue?: number, position?: number, price?: number } | string,\n ...rest: [(number)?, (number)?, (number)?] \n ): Promise<Models.ShippingRateTier> {\n let params: { methodId: string, fromValue?: number, position?: number, price?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, fromValue?: number, position?: number, price?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n fromValue: rest[0] as number,\n position: rest[1] as number,\n price: rest[2] as number \n };\n }\n \n const methodId = params.methodId;\n const fromValue = params.fromValue;\n const position = params.position;\n const price = params.price;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The write behind a table editor: a merchant edits the whole matrix on screen and saves it in one call, rather than diffing it into a row added here and a row deleted there. Set semantics, and it replaces EVERY tier the method had: the tiers this method has afterwards are exactly the ones handed in, positions derived from the array order. An empty `tiers` array clears the table — and a matrix method with no tiers quotes nothing, with a reason.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {Models.ShippingRateTierReplaceItem[]} params.tiers - The complete new tier set (set semantics) — positions are derived from the array order. An empty array clears the matrix, and a matrix method with no tiers quotes nothing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingTiersReplace(params: { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] }): Promise<{}>;\n /**\n * The write behind a table editor: a merchant edits the whole matrix on screen and saves it in one call, rather than diffing it into a row added here and a row deleted there. Set semantics, and it replaces EVERY tier the method had: the tiers this method has afterwards are exactly the ones handed in, positions derived from the array order. An empty `tiers` array clears the table — and a matrix method with no tiers quotes nothing, with a reason.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {Models.ShippingRateTierReplaceItem[]} tiers - The complete new tier set (set semantics) — positions are derived from the array order. An empty array clears the matrix, and a matrix method with no tiers quotes nothing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersReplace(methodId: string, tiers: Models.ShippingRateTierReplaceItem[]): Promise<{}>;\n shippingTiersReplace(\n paramsOrFirst: { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] } | string,\n ...rest: [(Models.ShippingRateTierReplaceItem[])?] \n ): Promise<{}> {\n let params: { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, tiers: Models.ShippingRateTierReplaceItem[] };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n tiers: rest[0] as Models.ShippingRateTierReplaceItem[] \n };\n }\n \n const methodId = params.methodId;\n const tiers = params.tiers;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof tiers === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"tiers\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof tiers !== 'undefined') {\n apiPayload['tiers'] = tiers;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The tier table a merchant describes in words — \"0 to 30 kg, every 5 kg, €4.90 plus €2 a step\" — without typing every row. Replaces the method's tiers by default (set replace=false to append).\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} params.basePrice - Price of the first tier.\n * @param {number} params.step - Distance between two tiers. Must be > 0.\n * @param {number} params.toValue - Last tier threshold. The final tier keeps applying above it — a matrix has no upper bound. Must be >= from_value.\n * @param {number} params.fromValue - First tier threshold (default 0), in the method's matrix measure.\n * @param {boolean} params.replace - Replace the whole table (default true) or append to it.\n * @param {number} params.stepPrice - Added to each subsequent tier (default 0). A negative value is allowed as long as no tier ends up below 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingTiersLadder(params: { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number }): Promise<{}>;\n /**\n * The tier table a merchant describes in words — \"0 to 30 kg, every 5 kg, €4.90 plus €2 a step\" — without typing every row. Replaces the method's tiers by default (set replace=false to append).\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {number} basePrice - Price of the first tier.\n * @param {number} step - Distance between two tiers. Must be > 0.\n * @param {number} toValue - Last tier threshold. The final tier keeps applying above it — a matrix has no upper bound. Must be >= from_value.\n * @param {number} fromValue - First tier threshold (default 0), in the method's matrix measure.\n * @param {boolean} replace - Replace the whole table (default true) or append to it.\n * @param {number} stepPrice - Added to each subsequent tier (default 0). A negative value is allowed as long as no tier ends up below 0.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersLadder(methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number): Promise<{}>;\n shippingTiersLadder(\n paramsOrFirst: { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number } | string,\n ...rest: [(number)?, (number)?, (number)?, (number)?, (boolean)?, (number)?] \n ): Promise<{}> {\n let params: { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, basePrice: number, step: number, toValue: number, fromValue?: number, replace?: boolean, stepPrice?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n basePrice: rest[0] as number,\n step: rest[1] as number,\n toValue: rest[2] as number,\n fromValue: rest[3] as number,\n replace: rest[4] as boolean,\n stepPrice: rest[5] as number \n };\n }\n \n const methodId = params.methodId;\n const basePrice = params.basePrice;\n const step = params.step;\n const toValue = params.toValue;\n const fromValue = params.fromValue;\n const replace = params.replace;\n const stepPrice = params.stepPrice;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof basePrice === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"basePrice\"');\n }\n if (typeof step === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"step\"');\n }\n if (typeof toValue === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"toValue\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/ladder'.replace('{method_id}', methodId);\n const apiPayload: Payload = {};\n if (typeof basePrice !== 'undefined') {\n apiPayload['base_price'] = basePrice;\n }\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n if (typeof replace !== 'undefined') {\n apiPayload['replace'] = replace;\n }\n if (typeof step !== 'undefined') {\n apiPayload['step'] = step;\n }\n if (typeof stepPrice !== 'undefined') {\n apiPayload['step_price'] = stepPrice;\n }\n if (typeof toValue !== 'undefined') {\n apiPayload['to_value'] = toValue;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. Removing a tier in the MIDDLE of a table is harmless — the measures it used to cover fall to the highest remaining threshold below them. Removing the LOWEST one is not: a measure under the new lowest threshold matches no tier at all, and the method is then left out of POST /shipping/rates with 'no tier covers measure …' instead of being quoted at 0, so an entire band of baskets silently stops being offered this method. Deleting the last tier takes the method out of the checkout altogether. Rebuilding the table wholesale is PUT …/tiers or POST …/tiers/ladder; deleting the method deletes its tiers on its own.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingTiersDelete(params: { methodId: string, id: string }): Promise<{}>;\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. Removing a tier in the MIDDLE of a table is harmless — the measures it used to cover fall to the highest remaining threshold below them. Removing the LOWEST one is not: a measure under the new lowest threshold matches no tier at all, and the method is then left out of POST /shipping/rates with 'no tier covers measure …' instead of being quoted at 0, so an entire band of baskets silently stops being offered this method. Deleting the last tier takes the method out of the checkout altogether. Rebuilding the table wholesale is PUT …/tiers or POST …/tiers/ladder; deleting the method deletes its tiers on its own.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersDelete(methodId: string, id: string): Promise<{}>;\n shippingTiersDelete(\n paramsOrFirst: { methodId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<{}> {\n let params: { methodId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, id: string };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const methodId = params.methodId;\n const id = params.id;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/{id}'.replace('{method_id}', methodId).replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This reads one row of that table by id, under the method that owns it; a tier id belonging to another method is a 404 rather than somebody else's price. A tier id is not durable: PUT …/tiers and POST …/tiers/ladder replace the table by deleting and recreating it, so an id read before either of them names nothing afterwards. Where a caller wants a stable handle, address the row by what it MEANS — GET …/tiers?from_value=… — since (method_id, from_value) is unique.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} params.id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingRateTier>}\n */\n shippingTiersGet(params: { methodId: string, id: string }): Promise<Models.ShippingRateTier>;\n /**\n * A rate tier is one row of a matrix method's price table: a `from_value` threshold and the price charged at or above it. The bound is INCLUSIVE and the winning tier is the one with the highest `from_value` at or below the measured value, so a measure of exactly 10 is priced by the tier at 10. What the number measures is the method's `matrix_basis` — kilograms in the market's own weight unit, items, money in the method's currency, or a named attribute — and the last tier has no upper bound. This reads one row of that table by id, under the method that owns it; a tier id belonging to another method is a 404 rather than somebody else's price. A tier id is not durable: PUT …/tiers and POST …/tiers/ladder replace the table by deleting and recreating it, so an id read before either of them names nothing afterwards. Where a caller wants a stable handle, address the row by what it MEANS — GET …/tiers?from_value=… — since (method_id, from_value) is unique.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} id - The row id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingRateTier>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersGet(methodId: string, id: string): Promise<Models.ShippingRateTier>;\n shippingTiersGet(\n paramsOrFirst: { methodId: string, id: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.ShippingRateTier> {\n let params: { methodId: string, id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, id: string };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n id: rest[0] as string \n };\n }\n \n const methodId = params.methodId;\n const id = params.id;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/{id}'.replace('{method_id}', methodId).replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A tier id is not stable across a bulk edit: `PUT …/tiers` and `POST …/tiers/ladder` replace the table by deleting and recreating it, so an id read before either of them is gone afterwards.\n *\n * @param {string} params.methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} params.id - The row id.\n * @param {number} params.fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} params.position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} params.price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingRateTier>}\n */\n shippingTiersUpdate(params: { methodId: string, id: string, fromValue?: number, position?: number, price?: number }): Promise<Models.ShippingRateTier>;\n /**\n * A tier id is not stable across a bulk edit: `PUT …/tiers` and `POST …/tiers/ladder` replace the table by deleting and recreating it, so an id read before either of them is gone afterwards.\n *\n * @param {string} methodId - The shipping method these tiers belong to. A method this tenant does not have is a 404, never an empty page.\n * @param {string} id - The row id.\n * @param {number} fromValue - Lower bound of this tier, in the method's matrix measure — kilograms (or whatever the market's `weight_unit` names, converted through its factor) for a weight matrix, items for quantity, money in the method's currency for order_value, and the raw attribute value for 'attribute'. INCLUSIVE: the tier applies from this value upward, and the tier that wins is the one with the highest from_value at or below the measured value, so a measure of exactly 10 is priced by the tier at 10 rather than the one below it. The last tier has no upper bound. Unique per method — a second tier at the same threshold is a 409, because which of the two won would be whatever the database returned first. Defaults to 0.\n * @param {number} position - Display order in the matrix editor (default 0; a bulk replace derives it from the array index). Pricing reads from_value, never this.\n * @param {number} price - What this tier costs, in the method's currency. Charged in full for the whole consignment — a matrix is a lookup table, not a rate per unit. Defaults to 0.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingRateTier>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTiersUpdate(methodId: string, id: string, fromValue?: number, position?: number, price?: number): Promise<Models.ShippingRateTier>;\n shippingTiersUpdate(\n paramsOrFirst: { methodId: string, id: string, fromValue?: number, position?: number, price?: number } | string,\n ...rest: [(string)?, (number)?, (number)?, (number)?] \n ): Promise<Models.ShippingRateTier> {\n let params: { methodId: string, id: string, fromValue?: number, position?: number, price?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { methodId: string, id: string, fromValue?: number, position?: number, price?: number };\n } else {\n params = {\n methodId: paramsOrFirst as string,\n id: rest[0] as string,\n fromValue: rest[1] as number,\n position: rest[2] as number,\n price: rest[3] as number \n };\n }\n \n const methodId = params.methodId;\n const id = params.id;\n const fromValue = params.fromValue;\n const position = params.position;\n const price = params.price;\n\n if (typeof methodId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"methodId\"');\n }\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/shipping/methods/{method_id}/tiers/{id}'.replace('{method_id}', methodId).replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof fromValue !== 'undefined') {\n apiPayload['from_value'] = fromValue;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof price !== 'undefined') {\n apiPayload['price'] = price;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The question a checkout asks, and the only route that answers a PRICE. Hand in the buyer context — the destination country, the order value, and whatever the matrix methods measure: a weight, a quantity or a named product attribute — and this comes back with the methods that may be offered and what each of them costs, free-above thresholds, country restrictions, the carrier's delivery promise and tax already applied. A method that does not apply is never an error: it moves to `excluded` with a reason. So is a tax rate that cannot be resolved — `tax.resolved: false` means the rates are UNKNOWN, not untaxed.\n *\n * @param {string} params.at - The instant to evaluate the delivery estimate at (ISO 8601). Omitted: now. Lets a storefront compute the cut-off in its own timezone.\n * @param {object} params.attributes - Measure values for attribute matrices, keyed by attribute NAME — the key a matrix method names in its matrix_attribute, and the value the number its tiers are matched against. Summed over the basket by the caller, not by this app. Only the key a method asks for is read; anything else in the map is carried along and ignored, and a value that is not a finite number excludes that method with a reason rather than failing the quote.\n * @param {string} params.country - Destination ISO 3166-1 alpha-2 code — compared upper-cased against method and carrier country restrictions. Omitted or null: every method that restricts by country is excluded, with a reason.\n * @param {string} params.currency - ISO 4217 code, echoed into the rates (default 'EUR'). Echoed, not converted: this app prices in the currency the method carries.\n * @param {string} params.marketId - Buyer market for tax resolution. Omitted: the market matching `country`, else the tenant's sole market — never an arbitrary one.\n * @param {number} params.orderValue - Order value (default 0) — drives order_value matrices, and free-above thresholds when no sided value is sent. Read on the basis the tenant's free_above_compares setting declares.\n * @param {number} params.orderValueGross - Order value including tax. Compared against free-above thresholds when free_above_compares is 'gross'.\n * @param {number} params.orderValueNet - Order value excluding tax. Compared against free-above thresholds when free_above_compares is 'net'.\n * @param {number} params.quantity - Total quantity — measure for quantity matrices.\n * @param {number} params.weight - Total weight — measure for weight matrices. Read in weight_unit and converted to the unit the tiers are keyed in.\n * @param {string} params.weightUnit - The unit `weight` is expressed in, as a CODE into the tenant's own weight units (GET /shipping/weight-units). Omitted, it is the unit this market quotes in. A unit the tenant does not keep is a 400 — a mis-read weight prices the wrong bracket silently, and guessing is worse than refusing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n shippingRates(params?: { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string }): Promise<{}>;\n /**\n * The question a checkout asks, and the only route that answers a PRICE. Hand in the buyer context — the destination country, the order value, and whatever the matrix methods measure: a weight, a quantity or a named product attribute — and this comes back with the methods that may be offered and what each of them costs, free-above thresholds, country restrictions, the carrier's delivery promise and tax already applied. A method that does not apply is never an error: it moves to `excluded` with a reason. So is a tax rate that cannot be resolved — `tax.resolved: false` means the rates are UNKNOWN, not untaxed.\n *\n * @param {string} at - The instant to evaluate the delivery estimate at (ISO 8601). Omitted: now. Lets a storefront compute the cut-off in its own timezone.\n * @param {object} attributes - Measure values for attribute matrices, keyed by attribute NAME — the key a matrix method names in its matrix_attribute, and the value the number its tiers are matched against. Summed over the basket by the caller, not by this app. Only the key a method asks for is read; anything else in the map is carried along and ignored, and a value that is not a finite number excludes that method with a reason rather than failing the quote.\n * @param {string} country - Destination ISO 3166-1 alpha-2 code — compared upper-cased against method and carrier country restrictions. Omitted or null: every method that restricts by country is excluded, with a reason.\n * @param {string} currency - ISO 4217 code, echoed into the rates (default 'EUR'). Echoed, not converted: this app prices in the currency the method carries.\n * @param {string} marketId - Buyer market for tax resolution. Omitted: the market matching `country`, else the tenant's sole market — never an arbitrary one.\n * @param {number} orderValue - Order value (default 0) — drives order_value matrices, and free-above thresholds when no sided value is sent. Read on the basis the tenant's free_above_compares setting declares.\n * @param {number} orderValueGross - Order value including tax. Compared against free-above thresholds when free_above_compares is 'gross'.\n * @param {number} orderValueNet - Order value excluding tax. Compared against free-above thresholds when free_above_compares is 'net'.\n * @param {number} quantity - Total quantity — measure for quantity matrices.\n * @param {number} weight - Total weight — measure for weight matrices. Read in weight_unit and converted to the unit the tiers are keyed in.\n * @param {string} weightUnit - The unit `weight` is expressed in, as a CODE into the tenant's own weight units (GET /shipping/weight-units). Omitted, it is the unit this market quotes in. A unit the tenant does not keep is a 400 — a mis-read weight prices the wrong bracket silently, and guessing is worse than refusing.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingRates(at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string): Promise<{}>;\n shippingRates(\n paramsOrFirst?: { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string } | string,\n ...rest: [(object)?, (string)?, (string)?, (string)?, (number)?, (number)?, (number)?, (number)?, (number)?, (string)?] \n ): Promise<{}> {\n let params: { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { at?: string, attributes?: object, country?: string, currency?: string, marketId?: string, orderValue?: number, orderValueGross?: number, orderValueNet?: number, quantity?: number, weight?: number, weightUnit?: string };\n } else {\n params = {\n at: paramsOrFirst as string,\n attributes: rest[0] as object,\n country: rest[1] as string,\n currency: rest[2] as string,\n marketId: rest[3] as string,\n orderValue: rest[4] as number,\n orderValueGross: rest[5] as number,\n orderValueNet: rest[6] as number,\n quantity: rest[7] as number,\n weight: rest[8] as number,\n weightUnit: rest[9] as string \n };\n }\n \n const at = params.at;\n const attributes = params.attributes;\n const country = params.country;\n const currency = params.currency;\n const marketId = params.marketId;\n const orderValue = params.orderValue;\n const orderValueGross = params.orderValueGross;\n const orderValueNet = params.orderValueNet;\n const quantity = params.quantity;\n const weight = params.weight;\n const weightUnit = params.weightUnit;\n\n\n const apiPath = '/v1/shipping/rates';\n const apiPayload: Payload = {};\n if (typeof at !== 'undefined') {\n apiPayload['at'] = at;\n }\n if (typeof attributes !== 'undefined') {\n apiPayload['attributes'] = attributes;\n }\n if (typeof country !== 'undefined') {\n apiPayload['country'] = country;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof marketId !== 'undefined') {\n apiPayload['market_id'] = marketId;\n }\n if (typeof orderValue !== 'undefined') {\n apiPayload['order_value'] = orderValue;\n }\n if (typeof orderValueGross !== 'undefined') {\n apiPayload['order_value_gross'] = orderValueGross;\n }\n if (typeof orderValueNet !== 'undefined') {\n apiPayload['order_value_net'] = orderValueNet;\n }\n if (typeof quantity !== 'undefined') {\n apiPayload['quantity'] = quantity;\n }\n if (typeof weight !== 'undefined') {\n apiPayload['weight'] = weight;\n }\n if (typeof weightUnit !== 'undefined') {\n apiPayload['weight_unit'] = weightUnit;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * markets.tax_classes is the source of record for the rate and this app points at it by CODE from two places: a method's own tax_class and the tenant's shipping_tax_class fallback. Neither is a foreign key and neither could be — a cross-app FK is what ADR-0055 forbids — so integrity is a question one app asks the other, and this is the answering half. It is asked before a destructive edit: markets calls it when an operator tries to delete a tax class, and a count above zero is what stops the delete rather than leaving these methods pointing at a code nobody serves. Matched as a CODE, not a row: a tax class is unique per market, so 'reduced' may exist in several and a method naming it does not say which one it meant. Reports at most 500 methods and names the first 20. Every code answers, used or not — a code nobody points at is `in_use: false`, never a 404.\n *\n * @param {string} params.code - The tax-class CODE, as markets spells it — not a row id. Matched against every shipping method's `tax_class` and against this market's `shipping_tax_class` setting.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingTaxClassUsage>}\n */\n shippingTaxClassesUsage(params: { code: string }): Promise<Models.ShippingTaxClassUsage>;\n /**\n * markets.tax_classes is the source of record for the rate and this app points at it by CODE from two places: a method's own tax_class and the tenant's shipping_tax_class fallback. Neither is a foreign key and neither could be — a cross-app FK is what ADR-0055 forbids — so integrity is a question one app asks the other, and this is the answering half. It is asked before a destructive edit: markets calls it when an operator tries to delete a tax class, and a count above zero is what stops the delete rather than leaving these methods pointing at a code nobody serves. Matched as a CODE, not a row: a tax class is unique per market, so 'reduced' may exist in several and a method naming it does not say which one it meant. Reports at most 500 methods and names the first 20. Every code answers, used or not — a code nobody points at is `in_use: false`, never a 404.\n *\n * @param {string} code - The tax-class CODE, as markets spells it — not a row id. Matched against every shipping method's `tax_class` and against this market's `shipping_tax_class` setting.\n * @throws {RevenexxException}\n * @returns {Promise<Models.ShippingTaxClassUsage>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n shippingTaxClassesUsage(code: string): Promise<Models.ShippingTaxClassUsage>;\n shippingTaxClassesUsage(\n paramsOrFirst: { code: string } | string \n ): Promise<Models.ShippingTaxClassUsage> {\n let params: { code: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { code: string };\n } else {\n params = {\n code: paramsOrFirst as string \n };\n }\n \n const code = params.code;\n\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n\n const apiPath = '/v1/shipping/tax-classes/{code}/usage'.replace('{code}', code);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
|