@sixtyninecommerce/admin 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2445 -17
- package/dist/api-tokens/index.d.ts +15 -5
- package/dist/api-tokens/index.js +1 -0
- package/dist/apps/event-subscription.d.ts +59 -0
- package/dist/apps/event-subscription.js +32 -0
- package/dist/apps/hook-secret.d.ts +22 -0
- package/dist/apps/hook-secret.js +36 -0
- package/dist/apps/index.d.ts +54 -3
- package/dist/apps/index.js +17 -0
- package/dist/audit/index.d.ts +7 -0
- package/dist/auth/queries.d.ts +5 -1
- package/dist/auth/queries.js +6 -0
- package/dist/bulk/index.d.ts +323 -0
- package/dist/bulk/index.js +162 -0
- package/dist/catalog/assets.d.ts +147 -0
- package/dist/catalog/assets.js +164 -0
- package/dist/catalog/collections.d.ts +109 -0
- package/dist/catalog/collections.js +91 -0
- package/dist/catalog/facets.d.ts +103 -0
- package/dist/catalog/facets.js +100 -0
- package/dist/catalog/index.d.ts +115 -0
- package/dist/catalog/index.js +21 -0
- package/dist/catalog/options.d.ts +89 -0
- package/dist/catalog/options.js +88 -0
- package/dist/catalog/products-bulk.d.ts +21 -0
- package/dist/catalog/products-bulk.js +58 -0
- package/dist/catalog/products.d.ts +489 -0
- package/dist/catalog/products.js +365 -0
- package/dist/catalog/properties.d.ts +234 -0
- package/dist/catalog/properties.js +158 -0
- package/dist/catalog/types.d.ts +174 -0
- package/dist/catalog/types.js +141 -0
- package/dist/catalog/variants.d.ts +274 -0
- package/dist/catalog/variants.js +258 -0
- package/dist/catalog/visibility.d.ts +57 -0
- package/dist/catalog/visibility.js +59 -0
- package/dist/client.d.ts +171 -3
- package/dist/client.js +81 -12
- package/dist/compliance/index.d.ts +88 -0
- package/dist/compliance/index.js +88 -0
- package/dist/customer-data-redaction.d.ts +14 -0
- package/dist/customer-data-redaction.js +22 -0
- package/dist/customers/index.d.ts +428 -17
- package/dist/customers/index.js +322 -15
- package/dist/documents/index.d.ts +513 -16
- package/dist/documents/index.js +229 -3
- package/dist/events/index.d.ts +259 -0
- package/dist/events/index.js +147 -0
- package/dist/feeds/ai.d.ts +46 -0
- package/dist/feeds/ai.js +43 -0
- package/dist/feeds/categories.d.ts +50 -0
- package/dist/feeds/categories.js +56 -0
- package/dist/feeds/configs.d.ts +54 -0
- package/dist/feeds/configs.js +85 -0
- package/dist/feeds/identifier-fields.d.ts +25 -0
- package/dist/feeds/identifier-fields.js +29 -0
- package/dist/feeds/index.d.ts +54 -0
- package/dist/feeds/index.js +46 -0
- package/dist/feeds/preserve.d.ts +38 -0
- package/dist/feeds/preserve.js +74 -0
- package/dist/feeds/rules.d.ts +42 -0
- package/dist/feeds/rules.js +56 -0
- package/dist/feeds/types.d.ts +654 -0
- package/dist/feeds/types.js +135 -0
- package/dist/fulfillments/index.d.ts +360 -0
- package/dist/fulfillments/index.js +425 -0
- package/dist/heads/index.d.ts +60 -0
- package/dist/heads/index.js +45 -0
- package/dist/hooks/assignments.d.ts +90 -0
- package/dist/hooks/assignments.js +53 -0
- package/dist/hooks/index.d.ts +97 -0
- package/dist/hooks/index.js +76 -0
- package/dist/index.d.ts +84 -9
- package/dist/index.js +16 -1
- package/dist/jobs/bulk-action-run.d.ts +65 -0
- package/dist/jobs/bulk-action-run.js +70 -0
- package/dist/locations/index.d.ts +6 -2
- package/dist/meta/index.d.ts +32 -0
- package/dist/orders/commit-edit.d.ts +123 -0
- package/dist/orders/commit-edit.js +142 -0
- package/dist/orders/get.d.ts +722 -0
- package/dist/orders/get.js +530 -0
- package/dist/orders/index.d.ts +105 -20
- package/dist/orders/index.js +44 -0
- package/dist/orders/line-price-preview.d.ts +297 -0
- package/dist/orders/line-price-preview.js +50 -0
- package/dist/orders/manual-discounts.d.ts +132 -0
- package/dist/orders/manual-discounts.js +95 -0
- package/dist/orders/manual-pricing.d.ts +192 -0
- package/dist/orders/manual-pricing.js +72 -0
- package/dist/orders/order-entry.d.ts +566 -0
- package/dist/orders/order-entry.js +129 -0
- package/dist/orders/parcel-charge.d.ts +45 -0
- package/dist/orders/parcel-charge.js +55 -0
- package/dist/orders/plan-edit.d.ts +489 -0
- package/dist/orders/plan-edit.js +93 -0
- package/dist/orders/status.d.ts +235 -0
- package/dist/orders/status.js +96 -0
- package/dist/orders/surcharges.d.ts +75 -2
- package/dist/orders/surcharges.js +110 -4
- package/dist/payments/account-credit.d.ts +171 -0
- package/dist/payments/account-credit.js +107 -0
- package/dist/payments/index.d.ts +368 -2
- package/dist/payments/index.js +138 -0
- package/dist/platform/catalog.d.ts +148 -0
- package/dist/platform/catalog.js +74 -0
- package/dist/platform/entitlements.d.ts +111 -0
- package/dist/platform/entitlements.js +86 -0
- package/dist/platform/legal-entities.d.ts +139 -0
- package/dist/platform/legal-entities.js +126 -0
- package/dist/platform/legal-entity-numbering.d.ts +103 -0
- package/dist/platform/legal-entity-numbering.js +101 -0
- package/dist/platform/organization-membership.d.ts +80 -0
- package/dist/platform/organization-membership.js +71 -0
- package/dist/platform/organization-settings.d.ts +33 -0
- package/dist/platform/organization-settings.js +42 -0
- package/dist/platform/organization-sharing.d.ts +172 -0
- package/dist/platform/organization-sharing.js +120 -0
- package/dist/platform/organizations.d.ts +205 -0
- package/dist/platform/organizations.js +180 -0
- package/dist/platform/provision-store.d.ts +88 -8
- package/dist/platform/provision-store.js +12 -0
- package/dist/platform/reports.d.ts +46 -0
- package/dist/platform/reports.js +31 -0
- package/dist/platform/server-metrics.d.ts +58 -0
- package/dist/platform/server-metrics.js +11 -0
- package/dist/pos/index.d.ts +567 -0
- package/dist/pos/index.js +205 -0
- package/dist/pricing/index.d.ts +405 -0
- package/dist/pricing/index.js +351 -0
- package/dist/provenance/index.d.ts +93 -0
- package/dist/provenance/index.js +53 -0
- package/dist/reports/index.d.ts +199 -0
- package/dist/reports/index.js +154 -0
- package/dist/shipping/parcel-count-suggestion.d.ts +52 -0
- package/dist/shipping/parcel-count-suggestion.js +73 -0
- package/dist/shipping/parcel-rule.d.ts +48 -0
- package/dist/shipping/parcel-rule.js +91 -0
- package/dist/stock/index.d.ts +166 -0
- package/dist/stock/index.js +115 -0
- package/dist/stock/transfers.d.ts +520 -0
- package/dist/stock/transfers.js +437 -0
- package/dist/stored-value/index.d.ts +154 -0
- package/dist/stored-value/index.js +130 -0
- package/dist/tenant/capabilities.d.ts +10 -0
- package/dist/tenant/entitlements.d.ts +35 -0
- package/dist/tenant/entitlements.js +15 -0
- package/dist/tenant/field-groups.d.ts +64 -0
- package/dist/tenant/field-groups.js +34 -0
- package/dist/tenant/legal-entity.d.ts +32 -0
- package/dist/tenant/legal-entity.js +41 -0
- package/dist/tenant/notifications.d.ts +148 -0
- package/dist/tenant/notifications.js +79 -0
- package/dist/tenant/retention.d.ts +10 -4
- package/dist/tenant/settings-sources.d.ts +103 -0
- package/dist/tenant/settings-sources.js +92 -0
- package/dist/types.d.ts +86 -11
- package/dist/uploads/index.d.ts +11 -7
- package/dist/users/index.d.ts +104 -0
- package/dist/users/index.js +80 -0
- package/package.json +3 -2
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { type Transport } from '@sixtyninecommerce/core';
|
|
2
|
+
import type { Call } from '../types.js';
|
|
3
|
+
import type { OrderEditDiff, OrderEditPlan } from './plan-edit.js';
|
|
4
|
+
import type { OrderOverpaymentChoice } from './surcharges.js';
|
|
5
|
+
/** The order as a committed edit left it: what a head refreshes its view from. */
|
|
6
|
+
export interface OrderEditCommittedOrder {
|
|
7
|
+
id: string;
|
|
8
|
+
code: string;
|
|
9
|
+
/** The order's state: for an edit that raised a paid order's total online, `ArrangingAdditionalPayment`. */
|
|
10
|
+
state: string;
|
|
11
|
+
currencyCode: string;
|
|
12
|
+
/** Minor units. */
|
|
13
|
+
totalWithTax: number;
|
|
14
|
+
}
|
|
15
|
+
/** The refund an edit ended with. */
|
|
16
|
+
export interface OrderEditCommittedRefund {
|
|
17
|
+
id: string;
|
|
18
|
+
/**
|
|
19
|
+
* The payment provider's answer: `Pending` until a gateway confirms it, `Settled` for money
|
|
20
|
+
* returned by hand (an offline method). `Failed` is never answered here: a refusal throws.
|
|
21
|
+
*/
|
|
22
|
+
state: string;
|
|
23
|
+
/** Minor units, as the refund row records it. */
|
|
24
|
+
total: number;
|
|
25
|
+
paymentId: string;
|
|
26
|
+
}
|
|
27
|
+
/** How the edit settled its plan's `overpayment`. */
|
|
28
|
+
export interface OrderEditOverpaymentSettlement {
|
|
29
|
+
choice: OrderOverpaymentChoice;
|
|
30
|
+
/** Minor units the choice settled: the plan's `overpayment.amount`. */
|
|
31
|
+
amount: number;
|
|
32
|
+
currencyCode: string;
|
|
33
|
+
/** For `ACCOUNT_CREDIT`: the receipts on the customer's account, one per payment it came from. */
|
|
34
|
+
unappliedCashIds: string[];
|
|
35
|
+
}
|
|
36
|
+
export interface OrderEditCommit {
|
|
37
|
+
order: OrderEditCommittedOrder;
|
|
38
|
+
/**
|
|
39
|
+
* The plan that was carried out, as `planEdit` answered it. A repeat under the same
|
|
40
|
+
* `idempotencyKey` answers the plan as it was, and the order and refund as they are now.
|
|
41
|
+
*/
|
|
42
|
+
plan: OrderEditPlan;
|
|
43
|
+
/**
|
|
44
|
+
* The ONE refund the edit ended with, made last, or `null`: the plan's `refund`, or with
|
|
45
|
+
* `overpaymentChoice: 'REFUND'` its `overpayment.refundWhenChosen`.
|
|
46
|
+
*/
|
|
47
|
+
refund: OrderEditCommittedRefund | null;
|
|
48
|
+
/** How the plan's `overpayment` was settled; `null` when it had none. */
|
|
49
|
+
overpayment: OrderEditOverpaymentSettlement | null;
|
|
50
|
+
}
|
|
51
|
+
export interface CommitOrderEditCall extends Call {
|
|
52
|
+
/** The `planHash` of the plan the merchant saw (`planEdit`). Required. */
|
|
53
|
+
expectedPlanHash: string;
|
|
54
|
+
/**
|
|
55
|
+
* One key per attempt to save, re-sent unchanged on a retry of THAT attempt. Pass your own:
|
|
56
|
+
* left out, one is made up (a UUIDv7) and returned as `idempotencyKey` on the result, but on a
|
|
57
|
+
* thrown error only as an untyped own property of the error. Never reuse a key for a
|
|
58
|
+
* different edit or a fresh attempt.
|
|
59
|
+
*/
|
|
60
|
+
idempotencyKey?: string;
|
|
61
|
+
/**
|
|
62
|
+
* How the merchant settles the plan's `overpayment` (a surcharge lowered or removed on a paid
|
|
63
|
+
* order): `REFUND` returns it to the customer's payment in the same one refund as the plan's
|
|
64
|
+
* `refund`; `ACCOUNT_CREDIT` credits it to the customer's account first, and the plan's
|
|
65
|
+
* `refund` follows. Required when the plan has an `overpayment`; ignored when it has none.
|
|
66
|
+
* Part of the request: a retry under the same key re-sends the same choice.
|
|
67
|
+
*/
|
|
68
|
+
overpaymentChoice?: OrderOverpaymentChoice;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Its own document on purpose: `commitOrderEdit` exists only on an engine with the order-edit
|
|
72
|
+
* commit, so on an older one this call alone fails validation and no other order call does.
|
|
73
|
+
*/
|
|
74
|
+
export declare const COMMIT_ORDER_EDIT_MUTATION = "\n mutation CommitOrderEdit(\n $orderId: ID!\n $diff: OrderEditDiffInput!\n $expectedPlanHash: String!\n $idempotencyKey: String!\n $overpaymentChoice: OrderOverpaymentChoice\n ) {\n commitOrderEdit(\n orderId: $orderId\n diff: $diff\n expectedPlanHash: $expectedPlanHash\n idempotencyKey: $idempotencyKey\n overpaymentChoice: $overpaymentChoice\n ) {\n order {\n id\n code\n state\n currencyCode\n totalWithTax\n }\n plan {\n orderId\n planHash\n orderVersion\n steps {\n kind\n input\n moneyEffect\n }\n refund {\n paymentId\n amount\n }\n overpayment {\n amount\n currencyCode\n surchargeIds\n refund {\n available\n code\n message\n }\n accountCredit {\n available\n code\n message\n }\n refundWhenChosen {\n paymentId\n amount\n }\n }\n returnState\n blockers {\n code\n message\n details\n }\n notices {\n code\n message\n details\n }\n payment {\n collected\n reason\n method\n }\n preview {\n currencyCode\n subTotal\n subTotalWithTax\n shipping\n shippingWithTax\n surcharges\n surchargesWithTax\n total\n totalWithTax\n taxSummary {\n description\n taxRate\n taxBase\n taxTotal\n }\n totalWithTaxBefore\n }\n }\n refund {\n id\n state\n total\n paymentId\n }\n overpayment {\n choice\n amount\n currencyCode\n unappliedCashIds\n }\n }\n }\n";
|
|
75
|
+
export interface OrderCommitEditModule {
|
|
76
|
+
/**
|
|
77
|
+
* Carry out an edit of a placed order as its plan (`planEdit`) states it, once. Needs
|
|
78
|
+
* `UpdateOrder`, and an engine that serves `commitOrderEdit`.
|
|
79
|
+
*
|
|
80
|
+
* Hand it the SAME `diff` you planned and the plan's `planHash` as `expectedPlanHash`. The
|
|
81
|
+
* engine runs the plan again inside one transaction and keeps that run only when its hash is
|
|
82
|
+
* yours and it has no blockers; otherwise nothing of the edit is saved. The plan's refund, if
|
|
83
|
+
* it has one, is made LAST, after every other step, through the platform's refund guard.
|
|
84
|
+
*
|
|
85
|
+
* When the plan has an `overpayment` (a surcharge lowered or removed on a paid order), pass the
|
|
86
|
+
* merchant's `overpaymentChoice`: `REFUND` makes the plan's `overpayment.refundWhenChosen`
|
|
87
|
+
* (one refund of both parts); `ACCOUNT_CREDIT` credits the share to the customer's account,
|
|
88
|
+
* then makes the plan's `refund`.
|
|
89
|
+
*
|
|
90
|
+
* `idempotencyKey`: one per attempt to save. A retry of that attempt (a timeout, a dropped
|
|
91
|
+
* connection) re-sends it and gets the first answer back, with nothing done twice. Left out,
|
|
92
|
+
* one is made up and returned as `idempotencyKey` on the result and on a thrown error.
|
|
93
|
+
*
|
|
94
|
+
* Refusals, with nothing saved:
|
|
95
|
+
* - `ORDER_EDIT_PLAN_CONFLICT` (`ConflictError`, 409): the order changed since the plan (another
|
|
96
|
+
* change landed, a price or tax answer moved). Plan again, show the merchant the new totals,
|
|
97
|
+
* and save under a NEW key.
|
|
98
|
+
* - `ORDER_EDIT_BLOCKED` (`BusinessRuleError`, 422): the plan has blockers; `error.details`
|
|
99
|
+
* lists them, `code` = the blocker's code.
|
|
100
|
+
* - `ORDER_BUSY` (`ConflictError`, 409): another change of the order was being applied. Retry
|
|
101
|
+
* under the same key.
|
|
102
|
+
* - `ORDER_EDIT_OVERPAYMENT_CHOICE_REQUIRED` (`BusinessRuleError`, 422): the plan has an
|
|
103
|
+
* `overpayment` and no `overpaymentChoice` was given. Ask the merchant, then save under a
|
|
104
|
+
* NEW key (the choice is part of the request).
|
|
105
|
+
* - A closed option chosen anyway: its own refusal (`REFUND_EXCEEDS_PAYMENT`,
|
|
106
|
+
* `REFUND_METHOD_UNAVAILABLE`, `AR_ACCOUNT_IN_ERP`, `AR_LEDGER_NOT_ENABLED`, …), as the
|
|
107
|
+
* plan's option names it.
|
|
108
|
+
* - `IDEMPOTENCY_CONFLICT` (409): the key was used for another request.
|
|
109
|
+
* - `planEdit`'s refusals of the call, and the refund guard's `REFUND_*` when the refund was
|
|
110
|
+
* refused before money moved.
|
|
111
|
+
*
|
|
112
|
+
* `IDEMPOTENCY_OUTCOME_UNKNOWN` (`error.outcomeUnknown`): the refund reached the payment
|
|
113
|
+
* provider and its answer never came. The edit is NOT saved; the refund attempt is recorded
|
|
114
|
+
* and reserved on the order, and this key answers the same until the provider's answer is
|
|
115
|
+
* recorded (`admin.payments.reconcileRefund`), which frees it. Until then an edit that gives
|
|
116
|
+
* money back is blocked (`ORDER_OVERPAYMENT_REFUND_UNRECONCILED`). Then plan and save again:
|
|
117
|
+
* a refund recorded as made is not made a second time.
|
|
118
|
+
*/
|
|
119
|
+
commitEdit(orderId: string, diff: OrderEditDiff, options: CommitOrderEditCall): Promise<OrderEditCommit & {
|
|
120
|
+
idempotencyKey: string;
|
|
121
|
+
}>;
|
|
122
|
+
}
|
|
123
|
+
export declare function createOrderCommitEditModule(transport: Transport): OrderCommitEditModule;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { idempotencyKey as mintIdempotencyKey } from '@sixtyninecommerce/core';
|
|
2
|
+
/**
|
|
3
|
+
* Its own document on purpose: `commitOrderEdit` exists only on an engine with the order-edit
|
|
4
|
+
* commit, so on an older one this call alone fails validation and no other order call does.
|
|
5
|
+
*/
|
|
6
|
+
export const COMMIT_ORDER_EDIT_MUTATION = /* GraphQL */ `
|
|
7
|
+
mutation CommitOrderEdit(
|
|
8
|
+
$orderId: ID!
|
|
9
|
+
$diff: OrderEditDiffInput!
|
|
10
|
+
$expectedPlanHash: String!
|
|
11
|
+
$idempotencyKey: String!
|
|
12
|
+
$overpaymentChoice: OrderOverpaymentChoice
|
|
13
|
+
) {
|
|
14
|
+
commitOrderEdit(
|
|
15
|
+
orderId: $orderId
|
|
16
|
+
diff: $diff
|
|
17
|
+
expectedPlanHash: $expectedPlanHash
|
|
18
|
+
idempotencyKey: $idempotencyKey
|
|
19
|
+
overpaymentChoice: $overpaymentChoice
|
|
20
|
+
) {
|
|
21
|
+
order {
|
|
22
|
+
id
|
|
23
|
+
code
|
|
24
|
+
state
|
|
25
|
+
currencyCode
|
|
26
|
+
totalWithTax
|
|
27
|
+
}
|
|
28
|
+
plan {
|
|
29
|
+
orderId
|
|
30
|
+
planHash
|
|
31
|
+
orderVersion
|
|
32
|
+
steps {
|
|
33
|
+
kind
|
|
34
|
+
input
|
|
35
|
+
moneyEffect
|
|
36
|
+
}
|
|
37
|
+
refund {
|
|
38
|
+
paymentId
|
|
39
|
+
amount
|
|
40
|
+
}
|
|
41
|
+
overpayment {
|
|
42
|
+
amount
|
|
43
|
+
currencyCode
|
|
44
|
+
surchargeIds
|
|
45
|
+
refund {
|
|
46
|
+
available
|
|
47
|
+
code
|
|
48
|
+
message
|
|
49
|
+
}
|
|
50
|
+
accountCredit {
|
|
51
|
+
available
|
|
52
|
+
code
|
|
53
|
+
message
|
|
54
|
+
}
|
|
55
|
+
refundWhenChosen {
|
|
56
|
+
paymentId
|
|
57
|
+
amount
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
returnState
|
|
61
|
+
blockers {
|
|
62
|
+
code
|
|
63
|
+
message
|
|
64
|
+
details
|
|
65
|
+
}
|
|
66
|
+
notices {
|
|
67
|
+
code
|
|
68
|
+
message
|
|
69
|
+
details
|
|
70
|
+
}
|
|
71
|
+
payment {
|
|
72
|
+
collected
|
|
73
|
+
reason
|
|
74
|
+
method
|
|
75
|
+
}
|
|
76
|
+
preview {
|
|
77
|
+
currencyCode
|
|
78
|
+
subTotal
|
|
79
|
+
subTotalWithTax
|
|
80
|
+
shipping
|
|
81
|
+
shippingWithTax
|
|
82
|
+
surcharges
|
|
83
|
+
surchargesWithTax
|
|
84
|
+
total
|
|
85
|
+
totalWithTax
|
|
86
|
+
taxSummary {
|
|
87
|
+
description
|
|
88
|
+
taxRate
|
|
89
|
+
taxBase
|
|
90
|
+
taxTotal
|
|
91
|
+
}
|
|
92
|
+
totalWithTaxBefore
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
refund {
|
|
96
|
+
id
|
|
97
|
+
state
|
|
98
|
+
total
|
|
99
|
+
paymentId
|
|
100
|
+
}
|
|
101
|
+
overpayment {
|
|
102
|
+
choice
|
|
103
|
+
amount
|
|
104
|
+
currencyCode
|
|
105
|
+
unappliedCashIds
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
`;
|
|
110
|
+
export function createOrderCommitEditModule(transport) {
|
|
111
|
+
return {
|
|
112
|
+
async commitEdit(orderId, diff, options) {
|
|
113
|
+
const key = options.idempotencyKey ?? mintIdempotencyKey();
|
|
114
|
+
try {
|
|
115
|
+
const data = await transport.graphql({
|
|
116
|
+
api: 'admin',
|
|
117
|
+
query: COMMIT_ORDER_EDIT_MUTATION,
|
|
118
|
+
// The diff goes out as given, never normalised (see `planEdit`): left out, `null` and
|
|
119
|
+
// a value are three different requests.
|
|
120
|
+
variables: {
|
|
121
|
+
orderId,
|
|
122
|
+
diff,
|
|
123
|
+
expectedPlanHash: options.expectedPlanHash,
|
|
124
|
+
idempotencyKey: key,
|
|
125
|
+
// Sent only when given: left out, the engine reads no choice.
|
|
126
|
+
...(options.overpaymentChoice !== undefined
|
|
127
|
+
? { overpaymentChoice: options.overpaymentChoice }
|
|
128
|
+
: {}),
|
|
129
|
+
},
|
|
130
|
+
}, { ...options, idempotencyKey: key });
|
|
131
|
+
return { ...data.commitOrderEdit, idempotencyKey: key };
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
// The key the caller retries under, when it did not choose one.
|
|
135
|
+
if (error !== null && typeof error === 'object' && !('idempotencyKey' in error)) {
|
|
136
|
+
Object.defineProperty(error, 'idempotencyKey', { value: key, enumerable: true });
|
|
137
|
+
}
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
}
|