@sixtyninecommerce/admin 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +5772 -118
  2. package/dist/auth/index.d.ts +7 -1
  3. package/dist/auth/index.js +8 -1
  4. package/dist/catalog/assets.d.ts +120 -8
  5. package/dist/catalog/assets.js +98 -12
  6. package/dist/catalog/collections.d.ts +279 -14
  7. package/dist/catalog/collections.js +246 -15
  8. package/dist/catalog/documents.d.ts +142 -0
  9. package/dist/catalog/documents.js +114 -0
  10. package/dist/catalog/index.d.ts +54 -6
  11. package/dist/catalog/index.js +10 -1
  12. package/dist/catalog/metadata.d.ts +244 -0
  13. package/dist/catalog/metadata.js +220 -0
  14. package/dist/catalog/products.d.ts +159 -19
  15. package/dist/catalog/products.js +88 -13
  16. package/dist/catalog/properties.d.ts +140 -14
  17. package/dist/catalog/properties.js +65 -1
  18. package/dist/catalog/recommendations.d.ts +288 -0
  19. package/dist/catalog/recommendations.js +237 -0
  20. package/dist/catalog/reviews.d.ts +381 -0
  21. package/dist/catalog/reviews.js +325 -0
  22. package/dist/catalog/types.d.ts +17 -1
  23. package/dist/catalog/types.js +10 -0
  24. package/dist/catalog/variant-find.d.ts +136 -0
  25. package/dist/catalog/variant-find.js +239 -0
  26. package/dist/catalog/variants.d.ts +293 -26
  27. package/dist/catalog/variants.js +164 -7
  28. package/dist/catalog/visibility.d.ts +38 -7
  29. package/dist/catalog/visibility.js +19 -1
  30. package/dist/client.d.ts +121 -9
  31. package/dist/client.js +53 -14
  32. package/dist/content/assets.d.ts +285 -0
  33. package/dist/content/assets.js +181 -0
  34. package/dist/content/forms.d.ts +332 -1
  35. package/dist/content/forms.js +140 -4
  36. package/dist/content/items.d.ts +292 -0
  37. package/dist/content/items.js +170 -0
  38. package/dist/content/menus.d.ts +254 -0
  39. package/dist/content/menus.js +70 -0
  40. package/dist/content/strings.d.ts +137 -0
  41. package/dist/content/strings.js +82 -0
  42. package/dist/content/types.d.ts +282 -0
  43. package/dist/content/types.js +100 -0
  44. package/dist/customers/age-verification.d.ts +66 -0
  45. package/dist/customers/age-verification.js +79 -0
  46. package/dist/customers/credit.d.ts +263 -0
  47. package/dist/customers/credit.js +244 -0
  48. package/dist/customers/delivery-preferences.d.ts +120 -0
  49. package/dist/customers/delivery-preferences.js +97 -0
  50. package/dist/customers/delivery-terms.d.ts +44 -0
  51. package/dist/customers/delivery-terms.js +32 -0
  52. package/dist/customers/groups.d.ts +207 -0
  53. package/dist/customers/groups.js +438 -0
  54. package/dist/customers/index.d.ts +462 -37
  55. package/dist/customers/index.js +317 -40
  56. package/dist/customers/invitation-status.d.ts +57 -0
  57. package/dist/customers/invitation-status.js +21 -0
  58. package/dist/customers/notes.d.ts +67 -0
  59. package/dist/customers/notes.js +51 -0
  60. package/dist/customers/notification-recipients.d.ts +97 -0
  61. package/dist/customers/notification-recipients.js +84 -0
  62. package/dist/customers/saved-lists.d.ts +42 -0
  63. package/dist/customers/saved-lists.js +61 -0
  64. package/dist/customers/vat.d.ts +83 -0
  65. package/dist/customers/vat.js +46 -0
  66. package/dist/customers/wire.d.ts +20 -0
  67. package/dist/customers/wire.js +35 -0
  68. package/dist/documents/ar.d.ts +307 -0
  69. package/dist/documents/ar.js +254 -0
  70. package/dist/documents/emails.d.ts +150 -0
  71. package/dist/documents/emails.js +220 -0
  72. package/dist/documents/index.d.ts +744 -21
  73. package/dist/documents/index.js +438 -24
  74. package/dist/documents/pdf.d.ts +2 -0
  75. package/dist/documents/pdf.js +11 -0
  76. package/dist/fulfillments/create.d.ts +167 -0
  77. package/dist/fulfillments/create.js +216 -0
  78. package/dist/fulfillments/index.d.ts +163 -11
  79. package/dist/fulfillments/index.js +135 -6
  80. package/dist/fulfillments/payment-policy.d.ts +64 -0
  81. package/dist/fulfillments/payment-policy.js +140 -0
  82. package/dist/fulfillments/warehouse.d.ts +724 -0
  83. package/dist/fulfillments/warehouse.js +914 -0
  84. package/dist/geo/index.d.ts +119 -0
  85. package/dist/geo/index.js +107 -0
  86. package/dist/index.d.ts +147 -39
  87. package/dist/index.js +51 -12
  88. package/dist/integrations/afas-actions.d.ts +234 -0
  89. package/dist/integrations/afas-actions.js +310 -0
  90. package/dist/integrations/afas-types.d.ts +483 -0
  91. package/dist/integrations/afas-types.js +5 -0
  92. package/dist/integrations/afas.d.ts +234 -0
  93. package/dist/integrations/afas.js +290 -0
  94. package/dist/integrations/connections.d.ts +103 -0
  95. package/dist/integrations/connections.js +55 -0
  96. package/dist/integrations/esp.d.ts +313 -0
  97. package/dist/integrations/esp.js +169 -0
  98. package/dist/integrations/exact-online-types.d.ts +965 -0
  99. package/dist/integrations/exact-online-types.js +6 -0
  100. package/dist/integrations/exact-online.d.ts +784 -0
  101. package/dist/integrations/exact-online.js +1089 -0
  102. package/dist/integrations/index.d.ts +44 -3
  103. package/dist/integrations/index.js +23 -3
  104. package/dist/integrations/pipeline-discoveries.d.ts +65 -0
  105. package/dist/integrations/pipeline-discoveries.js +65 -0
  106. package/dist/integrations/pipeline-keys.d.ts +13 -0
  107. package/dist/integrations/pipeline-keys.js +22 -0
  108. package/dist/integrations/pipeline-runs.d.ts +119 -0
  109. package/dist/integrations/pipeline-runs.js +87 -0
  110. package/dist/integrations/pipelines.d.ts +87 -15
  111. package/dist/integrations/pipelines.js +41 -22
  112. package/dist/integrations/price-import.d.ts +223 -0
  113. package/dist/integrations/price-import.js +124 -0
  114. package/dist/integrations/types.d.ts +367 -3
  115. package/dist/integrations/types.js +4 -3
  116. package/dist/locations/index.d.ts +66 -0
  117. package/dist/locations/index.js +31 -0
  118. package/dist/meta/index.d.ts +172 -0
  119. package/dist/metafields/index.d.ts +8 -1
  120. package/dist/metafields/index.js +10 -0
  121. package/dist/orders/cancel-with-money.d.ts +237 -0
  122. package/dist/orders/cancel-with-money.js +155 -0
  123. package/dist/orders/commit-edit.d.ts +23 -1
  124. package/dist/orders/commit-edit.js +19 -2
  125. package/dist/orders/deposit-policy.d.ts +3 -1
  126. package/dist/orders/drafts.d.ts +800 -0
  127. package/dist/orders/drafts.js +771 -0
  128. package/dist/orders/fields.d.ts +245 -0
  129. package/dist/orders/fields.js +188 -0
  130. package/dist/orders/get.d.ts +29 -19
  131. package/dist/orders/get.js +17 -8
  132. package/dist/orders/index.d.ts +66 -15
  133. package/dist/orders/index.js +25 -2
  134. package/dist/orders/lifecycle.d.ts +128 -0
  135. package/dist/orders/lifecycle.js +158 -0
  136. package/dist/orders/line-price-preview.d.ts +7 -2
  137. package/dist/orders/list.d.ts +243 -0
  138. package/dist/orders/list.js +487 -0
  139. package/dist/orders/manual-discounts.d.ts +13 -5
  140. package/dist/orders/manual-pricing.d.ts +5 -0
  141. package/dist/orders/money-view.d.ts +149 -0
  142. package/dist/orders/money-view.js +99 -0
  143. package/dist/orders/order-entry.d.ts +20 -7
  144. package/dist/orders/plan-edit.d.ts +34 -2
  145. package/dist/orders/plan-edit.js +112 -11
  146. package/dist/orders/settings.d.ts +201 -0
  147. package/dist/orders/settings.js +325 -0
  148. package/dist/orders/status.d.ts +159 -13
  149. package/dist/orders/status.js +21 -0
  150. package/dist/orders/surcharges.d.ts +20 -1
  151. package/dist/orders/surcharges.js +37 -11
  152. package/dist/payments/account-credit.d.ts +46 -0
  153. package/dist/payments/account-credit.js +42 -0
  154. package/dist/payments/ar.d.ts +292 -0
  155. package/dist/payments/ar.js +223 -0
  156. package/dist/payments/connected-account.d.ts +47 -0
  157. package/dist/payments/connected-account.js +61 -0
  158. package/dist/payments/credit-noted-fields.d.ts +19 -0
  159. package/dist/payments/credit-noted-fields.js +69 -0
  160. package/dist/payments/customer-consent.d.ts +30 -0
  161. package/dist/payments/customer-consent.js +49 -0
  162. package/dist/payments/index.d.ts +340 -19
  163. package/dist/payments/index.js +151 -1
  164. package/dist/payments/methods.d.ts +303 -8
  165. package/dist/payments/methods.js +337 -7
  166. package/dist/payments/mollie-methods.d.ts +159 -0
  167. package/dist/payments/mollie-methods.js +141 -0
  168. package/dist/payments/payment-links.d.ts +180 -0
  169. package/dist/payments/payment-links.js +97 -0
  170. package/dist/payments/provider-keys.d.ts +150 -0
  171. package/dist/payments/provider-keys.js +118 -0
  172. package/dist/payments/providers.d.ts +86 -11
  173. package/dist/payments/providers.js +29 -0
  174. package/dist/payments/requests.d.ts +147 -0
  175. package/dist/payments/requests.js +93 -0
  176. package/dist/payments/store-credit-fields.d.ts +15 -0
  177. package/dist/payments/store-credit-fields.js +51 -0
  178. package/dist/pickups/index.d.ts +106 -0
  179. package/dist/pickups/index.js +108 -0
  180. package/dist/platform/channels.d.ts +132 -0
  181. package/dist/platform/channels.js +128 -0
  182. package/dist/platform/email-gateways.d.ts +165 -0
  183. package/dist/platform/email-gateways.js +78 -0
  184. package/dist/platform/geo.d.ts +123 -0
  185. package/dist/platform/geo.js +144 -0
  186. package/dist/platform/tax.d.ts +162 -0
  187. package/dist/platform/tax.js +169 -0
  188. package/dist/pos/anomalies.d.ts +158 -0
  189. package/dist/pos/anomalies.js +64 -0
  190. package/dist/pos/assisted-selling.d.ts +79 -0
  191. package/dist/pos/assisted-selling.js +38 -0
  192. package/dist/pos/exchanges.d.ts +108 -0
  193. package/dist/pos/exchanges.js +22 -0
  194. package/dist/pos/gift-cards.d.ts +135 -0
  195. package/dist/pos/gift-cards.js +47 -0
  196. package/dist/pos/index.d.ts +2370 -58
  197. package/dist/pos/index.js +854 -7
  198. package/dist/pos/no-receipt.d.ts +94 -0
  199. package/dist/pos/no-receipt.js +25 -0
  200. package/dist/pos/offline-sales.d.ts +228 -0
  201. package/dist/pos/offline-sales.js +170 -0
  202. package/dist/pos/pay-by-link.d.ts +143 -0
  203. package/dist/pos/pay-by-link.js +57 -0
  204. package/dist/pos/quick-keys.d.ts +103 -0
  205. package/dist/pos/quick-keys.js +45 -0
  206. package/dist/pos/reports.d.ts +360 -0
  207. package/dist/pos/reports.js +62 -0
  208. package/dist/pos/returns.d.ts +244 -0
  209. package/dist/pos/returns.js +83 -0
  210. package/dist/pricing/bulk-coupons.d.ts +139 -0
  211. package/dist/pricing/bulk-coupons.js +112 -0
  212. package/dist/pricing/index.d.ts +174 -4
  213. package/dist/pricing/index.js +174 -1
  214. package/dist/pricing/price-lists.d.ts +606 -0
  215. package/dist/pricing/price-lists.js +600 -0
  216. package/dist/purchasing/alerts.d.ts +104 -0
  217. package/dist/purchasing/alerts.js +88 -0
  218. package/dist/purchasing/backorders.d.ts +61 -0
  219. package/dist/purchasing/backorders.js +92 -0
  220. package/dist/purchasing/cost.d.ts +110 -0
  221. package/dist/purchasing/cost.js +86 -0
  222. package/dist/purchasing/index.d.ts +54 -0
  223. package/dist/purchasing/index.js +24 -0
  224. package/dist/purchasing/links.d.ts +263 -0
  225. package/dist/purchasing/links.js +192 -0
  226. package/dist/purchasing/purchase-orders.d.ts +551 -0
  227. package/dist/purchasing/purchase-orders.js +491 -0
  228. package/dist/purchasing/receipts.d.ts +396 -0
  229. package/dist/purchasing/receipts.js +287 -0
  230. package/dist/purchasing/replenishment.d.ts +281 -0
  231. package/dist/purchasing/replenishment.js +240 -0
  232. package/dist/purchasing/returns.d.ts +273 -0
  233. package/dist/purchasing/returns.js +229 -0
  234. package/dist/purchasing/settings.d.ts +152 -0
  235. package/dist/purchasing/settings.js +181 -0
  236. package/dist/purchasing/suppliers.d.ts +476 -0
  237. package/dist/purchasing/suppliers.js +438 -0
  238. package/dist/quotes/index.d.ts +518 -0
  239. package/dist/quotes/index.js +439 -0
  240. package/dist/reports/index.d.ts +71 -8
  241. package/dist/reports/index.js +74 -11
  242. package/dist/returns/index.d.ts +675 -21
  243. package/dist/returns/index.js +756 -11
  244. package/dist/search/index.d.ts +76 -1
  245. package/dist/search/index.js +63 -0
  246. package/dist/seo/config.d.ts +128 -0
  247. package/dist/seo/config.js +95 -0
  248. package/dist/seo/redirects.d.ts +125 -0
  249. package/dist/seo/redirects.js +60 -1
  250. package/dist/seo/settings.d.ts +147 -0
  251. package/dist/seo/settings.js +209 -0
  252. package/dist/shipping/definitions.d.ts +29 -0
  253. package/dist/shipping/definitions.js +47 -0
  254. package/dist/shipping/fulfillment-profiles.d.ts +174 -0
  255. package/dist/shipping/fulfillment-profiles.js +104 -0
  256. package/dist/shipping/hendriks.d.ts +97 -0
  257. package/dist/shipping/hendriks.js +50 -0
  258. package/dist/shipping/index.d.ts +54 -0
  259. package/dist/shipping/index.js +27 -0
  260. package/dist/shipping/methods.d.ts +205 -0
  261. package/dist/shipping/methods.js +240 -0
  262. package/dist/shipping/myparcel.d.ts +668 -0
  263. package/dist/shipping/myparcel.js +466 -0
  264. package/dist/shipping/parcel-count-suggestion.d.ts +2 -0
  265. package/dist/shipping/parcel-rule.d.ts +6 -5
  266. package/dist/shipping/parcel-rule.js +21 -23
  267. package/dist/shipping/rate-tables.d.ts +324 -0
  268. package/dist/shipping/rate-tables.js +390 -0
  269. package/dist/shipping/ship-to-countries.d.ts +75 -0
  270. package/dist/shipping/ship-to-countries.js +47 -0
  271. package/dist/stock/by-location.d.ts +86 -0
  272. package/dist/stock/by-location.js +94 -0
  273. package/dist/stock/index.d.ts +18 -4
  274. package/dist/stock/index.js +7 -0
  275. package/dist/stock/locations.d.ts +144 -0
  276. package/dist/stock/locations.js +168 -0
  277. package/dist/stock/settings.d.ts +106 -0
  278. package/dist/stock/settings.js +103 -0
  279. package/dist/stock/transfers.d.ts +386 -52
  280. package/dist/stock/transfers.js +222 -17
  281. package/dist/stored-value/index.d.ts +312 -11
  282. package/dist/stored-value/index.js +223 -4
  283. package/dist/subscriptions/index.d.ts +682 -0
  284. package/dist/subscriptions/index.js +815 -0
  285. package/dist/tax/display-policy.d.ts +105 -0
  286. package/dist/tax/display-policy.js +84 -0
  287. package/dist/tax/index.d.ts +79 -1
  288. package/dist/tax/index.js +52 -0
  289. package/dist/tenant/email-style.d.ts +102 -0
  290. package/dist/tenant/email-style.js +72 -0
  291. package/dist/tenant/email-templates.d.ts +287 -0
  292. package/dist/tenant/email-templates.js +271 -0
  293. package/dist/tenant/notifications.d.ts +23 -17
  294. package/dist/tenant/settings-sources.d.ts +1 -1
  295. package/dist/tenant/time-zone.d.ts +17 -0
  296. package/dist/tenant/time-zone.js +11 -0
  297. package/dist/types.d.ts +50 -3
  298. package/dist/users/index.d.ts +3 -0
  299. package/dist/users/index.js +2 -0
  300. package/dist/users/warehouses.d.ts +50 -0
  301. package/dist/users/warehouses.js +51 -0
  302. package/package.json +2 -2
@@ -1,3 +1,4 @@
1
+ import { isUnknownFieldRejection } from '../payments/store-credit-fields.js';
1
2
  const ACCOUNT_FIELDS = `
2
3
  id
3
4
  createdAt
@@ -34,7 +35,8 @@ export const STORED_VALUE_STATEMENT_QUERY = /* GraphQL */ `
34
35
  totalItems
35
36
  entries {
36
37
  id createdAt occurredAt entryType amount balanceAfter unit sourceType sourceId paymentId
37
- orderId locationId actorType actorId onBehalfOfRef deviceRef reason
38
+ orderId locationId actorType actorId onBehalfOfRef deviceRef reason origin originRef lotId
39
+ customerAgreed
38
40
  }
39
41
  }
40
42
  }
@@ -42,10 +44,28 @@ export const STORED_VALUE_STATEMENT_QUERY = /* GraphQL */ `
42
44
  export const STORED_VALUE_LIABILITY_QUERY = /* GraphQL */ `
43
45
  query StoredValueLiability($at: DateTime, $kind: String, $locationId: ID) {
44
46
  storedValueLiability(at: $at, kind: $kind, locationId: $locationId) {
45
- unit kind accounts issued redeemed reversed adjusted expired forfeited outstanding
47
+ unit kind accounts issued issuedGoodwill issuedFromOrders issuedFromReturns redeemed
48
+ reversed adjusted expired forfeited paidOut outstanding
46
49
  }
47
50
  }
48
51
  `;
52
+ /**
53
+ * The statement's and the liability's fields from incentives sprint 8 (the wallet's origins and
54
+ * split, PR 1; the payout's `lotId` and `paidOut`, PR 5; the customer's consent, PR 6a). An engine
55
+ * before them refuses a document naming one as a whole, before it runs; the same document without
56
+ * them reads as it did then.
57
+ */
58
+ const WALLET_FIELDS = /\b(?:origin|originRef|lotId|customerAgreed|issuedGoodwill|issuedFromOrders|issuedFromReturns|paidOut)\b/g;
59
+ /** `document` without the fields above: what an engine before them accepts. */
60
+ export function withoutWalletFields(document) {
61
+ return document.replace(WALLET_FIELDS, '');
62
+ }
63
+ /** The newest of them, the customer's consent (PR 6a): an engine with the others lacks only it. */
64
+ const CONSENT_FIELD = /\bcustomerAgreed\b/g;
65
+ /** `document` without the consent field: what an engine of sprint 8 before PR 6a accepts. */
66
+ export function withoutConsentField(document) {
67
+ return document.replace(CONSENT_FIELD, '');
68
+ }
49
69
  export const ISSUE_STORED_VALUE_MUTATION = /* GraphQL */ `
50
70
  mutation IssueStoredValue($input: IssueStoredValueInput!, $idempotencyKey: String) {
51
71
  issueStoredValue(input: $input, idempotencyKey: $idempotencyKey) { ${ACCOUNT_FIELDS} }
@@ -81,6 +101,18 @@ export const SET_STORED_VALUE_EXPIRY_MUTATION = /* GraphQL */ `
81
101
  ) { ${ACCOUNT_FIELDS} }
82
102
  }
83
103
  `;
104
+ export const PAY_OUT_STORE_CREDIT_MUTATION = /* GraphQL */ `
105
+ mutation PayOutStoreCredit($input: PayOutStoreCreditInput!, $idempotencyKey: String) {
106
+ payOutStoreCredit(input: $input, idempotencyKey: $idempotencyKey) {
107
+ id
108
+ total
109
+ state
110
+ method
111
+ transactionId
112
+ reason
113
+ }
114
+ }
115
+ `;
84
116
  export const REDEEM_STORED_VALUE_MUTATION = /* GraphQL */ `
85
117
  mutation RedeemStoredValue($input: RedeemStoredValueInput!, $idempotencyKey: String) {
86
118
  redeemStoredValue(input: $input, idempotencyKey: $idempotencyKey) {
@@ -91,8 +123,132 @@ export const REDEEM_STORED_VALUE_MUTATION = /* GraphQL */ `
91
123
  }
92
124
  }
93
125
  `;
126
+ const STORE_CREDIT_SETTINGS_FIELDS = `
127
+ refundToCredit
128
+ book
129
+ available
130
+ code
131
+ message
132
+ `;
133
+ export const STORE_CREDIT_SETTINGS_QUERY = /* GraphQL */ `
134
+ query StoreCreditSettings {
135
+ storeCreditSettings { ${STORE_CREDIT_SETTINGS_FIELDS} }
136
+ }
137
+ `;
138
+ export const UPDATE_STORE_CREDIT_SETTINGS_MUTATION = /* GraphQL */ `
139
+ mutation UpdateStoreCreditSettings($input: UpdateStoreCreditSettingsInput!) {
140
+ updateStoreCreditSettings(input: $input) { ${STORE_CREDIT_SETTINGS_FIELDS} }
141
+ }
142
+ `;
143
+ const GIFT_CARD_FIELDS = `
144
+ id
145
+ createdAt
146
+ account { ${ACCOUNT_FIELDS} }
147
+ origin
148
+ orderId
149
+ orderLineId
150
+ unitIndex
151
+ productVariantId
152
+ faceValue
153
+ maskedCode
154
+ voided
155
+ `;
156
+ export const GIFT_CARDS_QUERY = /* GraphQL */ `
157
+ query GiftCards($orderId: ID, $origin: String, $take: Int, $skip: Int) {
158
+ giftCards(orderId: $orderId, origin: $origin, take: $take, skip: $skip) {
159
+ items { ${GIFT_CARD_FIELDS} }
160
+ totalItems
161
+ }
162
+ }
163
+ `;
164
+ export const GIFT_CARD_QUERY = /* GraphQL */ `
165
+ query GiftCard($id: ID!) {
166
+ giftCard(id: $id) { ${GIFT_CARD_FIELDS} }
167
+ }
168
+ `;
169
+ export const GIFT_CARD_BY_CODE_QUERY = /* GraphQL */ `
170
+ query GiftCardByCode($code: String!) {
171
+ giftCardByCode(code: $code) { ${GIFT_CARD_FIELDS} }
172
+ }
173
+ `;
174
+ export const GIFT_CARD_VARIANTS_QUERY = /* GraphQL */ `
175
+ query GiftCardVariants($productVariantIds: [ID!]!) {
176
+ giftCardVariants(productVariantIds: $productVariantIds) {
177
+ productVariantId
178
+ validityMonths
179
+ createdAt
180
+ }
181
+ }
182
+ `;
183
+ export const GIFT_CARD_VARIANT_UNPAID_ORDERS_QUERY = /* GraphQL */ `
184
+ query GiftCardVariantUnpaidOrders($productVariantIds: [ID!]!) {
185
+ giftCardVariants(productVariantIds: $productVariantIds) {
186
+ productVariantId
187
+ unpaidOrders
188
+ }
189
+ }
190
+ `;
191
+ export const SET_GIFT_CARD_VARIANT_MUTATION = /* GraphQL */ `
192
+ mutation SetGiftCardVariant($productVariantId: ID!, $enabled: Boolean!, $validityMonths: Int) {
193
+ setGiftCardVariant(
194
+ productVariantId: $productVariantId
195
+ enabled: $enabled
196
+ validityMonths: $validityMonths
197
+ ) {
198
+ productVariantId
199
+ validityMonths
200
+ createdAt
201
+ }
202
+ }
203
+ `;
204
+ export const VOID_GIFT_CARD_MUTATION = /* GraphQL */ `
205
+ mutation VoidGiftCard($id: ID!, $reason: String!, $idempotencyKey: String) {
206
+ voidGiftCard(id: $id, reason: $reason, idempotencyKey: $idempotencyKey) { ${GIFT_CARD_FIELDS} }
207
+ }
208
+ `;
209
+ export const REISSUE_GIFT_CARD_CODE_MUTATION = /* GraphQL */ `
210
+ mutation ReissueGiftCardCode(
211
+ $id: ID!
212
+ $reason: String!
213
+ $notify: Boolean!
214
+ $idempotencyKey: String
215
+ ) {
216
+ reissueGiftCardCode(
217
+ id: $id
218
+ reason: $reason
219
+ notify: $notify
220
+ idempotencyKey: $idempotencyKey
221
+ ) {
222
+ giftCard { ${GIFT_CARD_FIELDS} }
223
+ code
224
+ }
225
+ }
226
+ `;
227
+ export const ISSUE_GIFT_CARD_MUTATION = /* GraphQL */ `
228
+ mutation IssueGiftCard($input: IssueGiftCardInput!, $idempotencyKey: String) {
229
+ issueGiftCard(input: $input, idempotencyKey: $idempotencyKey) {
230
+ giftCard { ${GIFT_CARD_FIELDS} }
231
+ code
232
+ }
233
+ }
234
+ `;
94
235
  export function createStoredValueModule(transport) {
95
236
  const read = async (query, variables, options) => transport.graphql({ api: 'admin', query, variables }, options);
237
+ // A read naming the sprint-8 fields, sent again to an engine that refuses one as unknown: first
238
+ // without the consent field alone (an engine with the rest of sprint 8), then without any of them.
239
+ const readWallet = async (query, variables, options) => {
240
+ const documents = [...new Set([query, withoutConsentField(query), withoutWalletFields(query)])];
241
+ for (const [index, document] of documents.entries()) {
242
+ try {
243
+ return await read(document, variables, options);
244
+ }
245
+ catch (error) {
246
+ if (index === documents.length - 1 || !isUnknownFieldRejection(error))
247
+ throw error;
248
+ }
249
+ }
250
+ throw new Error('unreachable: the last document either answers or throws');
251
+ };
96
252
  // The key is an ARGUMENT on the Admin API; `undefined` keeps an omitted key off the wire.
97
253
  const write = async (query, variables, options) => transport.graphql({ api: 'admin', query, variables: { ...variables, idempotencyKey: options?.idempotencyKey } }, options);
98
254
  return {
@@ -103,10 +259,27 @@ export function createStoredValueModule(transport) {
103
259
  return (await read(STORED_VALUE_ACCOUNT_QUERY, { id }, options)).storedValueAccount;
104
260
  },
105
261
  async statement(accountId, window = {}, options) {
106
- return (await read(STORED_VALUE_STATEMENT_QUERY, { accountId, ...window }, options)).storedValueStatement;
262
+ const statement = (await readWallet(STORED_VALUE_STATEMENT_QUERY, { accountId, ...window }, options)).storedValueStatement;
263
+ return {
264
+ ...statement,
265
+ entries: statement.entries.map((entry) => ({
266
+ ...entry,
267
+ origin: entry.origin ?? null,
268
+ originRef: entry.originRef ?? null,
269
+ lotId: entry.lotId ?? null,
270
+ customerAgreed: entry.customerAgreed ?? null,
271
+ })),
272
+ };
107
273
  },
108
274
  async liability(filter = {}, options) {
109
- return (await read(STORED_VALUE_LIABILITY_QUERY, filter, options)).storedValueLiability;
275
+ const rows = (await readWallet(STORED_VALUE_LIABILITY_QUERY, filter, options)).storedValueLiability;
276
+ return rows.map((row) => ({
277
+ ...row,
278
+ issuedGoodwill: row.issuedGoodwill ?? null,
279
+ issuedFromOrders: row.issuedFromOrders ?? null,
280
+ issuedFromReturns: row.issuedFromReturns ?? null,
281
+ paidOut: row.paidOut ?? null,
282
+ }));
110
283
  },
111
284
  async issue(input, options) {
112
285
  return (await write(ISSUE_STORED_VALUE_MUTATION, { input }, options)).issueStoredValue;
@@ -126,5 +299,51 @@ export function createStoredValueModule(transport) {
126
299
  async redeem(input, options) {
127
300
  return (await write(REDEEM_STORED_VALUE_MUTATION, { input }, options)).redeemStoredValue;
128
301
  },
302
+ async payOut(input, options) {
303
+ return (await write(PAY_OUT_STORE_CREDIT_MUTATION, { input }, options)).payOutStoreCredit;
304
+ },
305
+ async storeCreditSettings(options) {
306
+ return (await read(STORE_CREDIT_SETTINGS_QUERY, {}, options)).storeCreditSettings;
307
+ },
308
+ async updateStoreCreditSettings(input, options) {
309
+ return (await read(UPDATE_STORE_CREDIT_SETTINGS_MUTATION, { input: { refundToCredit: input.refundToCredit } }, options)).updateStoreCreditSettings;
310
+ },
311
+ giftCards: {
312
+ async list(filter = {}, options) {
313
+ return (await read(GIFT_CARDS_QUERY, filter, options)).giftCards;
314
+ },
315
+ async get(id, options) {
316
+ return (await read(GIFT_CARD_QUERY, { id }, options))
317
+ .giftCard;
318
+ },
319
+ // A GraphQL call is always a POST body: the code never reaches a URL (the engine refuses a
320
+ // GET lookup, `STORED_VALUE_GIFT_CARD_LOOKUP_POST_ONLY`).
321
+ async byCode(code, options) {
322
+ return (await read(GIFT_CARD_BY_CODE_QUERY, { code }, options)).giftCardByCode;
323
+ },
324
+ async variants(productVariantIds, options) {
325
+ return (await read(GIFT_CARD_VARIANTS_QUERY, { productVariantIds }, options)).giftCardVariants;
326
+ },
327
+ async variantUnpaidOrders(productVariantId, options) {
328
+ const [variant] = (await read(GIFT_CARD_VARIANT_UNPAID_ORDERS_QUERY, { productVariantIds: [productVariantId] }, options)).giftCardVariants;
329
+ return variant ? variant.unpaidOrders : null;
330
+ },
331
+ async setVariant(productVariantId, enabled, validityMonths, options) {
332
+ return (await read(SET_GIFT_CARD_VARIANT_MUTATION, {
333
+ productVariantId,
334
+ enabled,
335
+ ...(validityMonths === undefined ? {} : { validityMonths }),
336
+ }, options)).setGiftCardVariant;
337
+ },
338
+ async void(id, reason, options) {
339
+ return (await write(VOID_GIFT_CARD_MUTATION, { id, reason }, options)).voidGiftCard;
340
+ },
341
+ async reissueCode(id, input, options) {
342
+ return (await write(REISSUE_GIFT_CARD_CODE_MUTATION, { id, reason: input.reason, notify: input.notify }, options)).reissueGiftCardCode;
343
+ },
344
+ async issue(input, options) {
345
+ return (await write(ISSUE_GIFT_CARD_MUTATION, { input }, options)).issueGiftCard;
346
+ },
347
+ },
129
348
  };
130
349
  }