platform-types 1.10.865 → 1.10.867

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.
@@ -34,7 +34,7 @@
34
34
  * A cancelled order can still have the device on the shelf.
35
35
  */
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.SERVICE_ORDER_ERROR_CODES = exports.MAX_SERVICE_PICTURES = exports.SERVICE_CUSTODIES = exports.SERVICE_CUSTODY_TRANSITIONS = exports.SERVICE_TERMINAL_STATUSES = exports.SERVICE_STATUSES = exports.SERVICE_ORDER_DOCUMENTS = exports.SERVICE_TRANSITIONS = void 0;
37
+ exports.SERVICE_ORDER_ERROR_CODES = exports.SERVICE_QUOTE_COMPLETION_DAYS_MAX = exports.SERVICE_QUOTE_COMPLETION_DAYS_MIN = exports.MAX_SERVICE_PICTURES = exports.SERVICE_CUSTODIES = exports.SERVICE_CUSTODY_TRANSITIONS = exports.SERVICE_TERMINAL_STATUSES = exports.SERVICE_STATUSES = exports.SERVICE_ORDER_DOCUMENTS = exports.SERVICE_TRANSITIONS = void 0;
38
38
  /**
39
39
  * The legal moves on a service order. Exhaustive over `ServiceStatus` by
40
40
  * construction — adding a status to the union without a row here is a typecheck
@@ -167,6 +167,13 @@ exports.SERVICE_CUSTODIES = Object.keys(exports.SERVICE_CUSTODY_TRANSITIONS);
167
167
  * separately by {@link MAX_IMAGE_BASE64_CHARS}.
168
168
  */
169
169
  exports.MAX_SERVICE_PICTURES = 20;
170
+ /**
171
+ * The bounds of `ServiceQuote.completionDays` (art. 21(e), calendar days from
172
+ * approval). `POST /services { mode: 'quote', action: 'create' }` refuses a
173
+ * value outside them, or a fraction, with `400 VALIDATION_FAILED`.
174
+ */
175
+ exports.SERVICE_QUOTE_COMPLETION_DAYS_MIN = 1;
176
+ exports.SERVICE_QUOTE_COMPLETION_DAYS_MAX = 365;
170
177
  /**
171
178
  * `body.error` codes `/services` refuses with — every mode of `POST /services`
172
179
  * and every `GET /services` read (list, `?mode=unclaimed`, by id, `?mode=pdf`).
@@ -380,6 +387,8 @@ exports.SERVICE_ORDER_ERROR_CODES = [
380
387
  'SERVICE_QUOTE_CHANNEL_RESERVED',
381
388
  'SERVICE_QUOTE_CHANNEL_NOT_APPLICABLE',
382
389
  'SERVICE_QUOTE_REASON_NOT_APPLICABLE',
390
+ // The customer's online approval of a version that states no term (art. 21(e))
391
+ 'SERVICE_QUOTE_TERM_REQUIRED',
383
392
  'SERVICE_ORDER_QUOTE_CHANGED',
384
393
  // Renotify
385
394
  'SERVICE_ORDER_NOT_READY',
@@ -23,7 +23,7 @@
23
23
  * link minted earlier keeps reading (STORE_MODULES rule 4).
24
24
  */
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.SERVICE_TRACKING_HANDLE_RE = exports.SERVICE_TRACKING_PATH_PREFIX = exports.SERVICE_TRACKING_LINK_ACTIONS = exports.SERVICE_TRACKING_CODE_RE = exports.SERVICE_TRACKING_CHALLENGE_HANDLE_RE = exports.SERVICE_TRACKING_QUOTE_DECISIONS = exports.SERVICE_TRACKING_CODE_VIAS = exports.SERVICE_TRACKING_DECISION_ERROR_CODES = exports.SERVICE_TRACKING_OPERATOR_ERROR_CODES = exports.SERVICE_TRACKING_ACCOUNT_ERROR_CODES = exports.SERVICE_TRACKING_ERROR_CODES = void 0;
26
+ exports.SERVICE_TRACKING_HANDLE_RE = exports.SERVICE_TRACKING_PATH_PREFIX = exports.SERVICE_TRACKING_LINK_ACTIONS = exports.SERVICE_TRACKING_CODE_RE = exports.SERVICE_TRACKING_CHALLENGE_HANDLE_RE = exports.SERVICE_TRACKING_QUOTE_DECISIONS = exports.SERVICE_TRACKING_APPROVE_BLOCKS = exports.SERVICE_TRACKING_CODE_VIAS = exports.SERVICE_TRACKING_DECISION_ERROR_CODES = exports.SERVICE_TRACKING_OPERATOR_ERROR_CODES = exports.SERVICE_TRACKING_ACCOUNT_ERROR_CODES = exports.SERVICE_TRACKING_ERROR_CODES = void 0;
27
27
  /**
28
28
  * The refusals the PUBLIC tracking routes answer themselves.
29
29
  *
@@ -81,6 +81,11 @@ exports.SERVICE_TRACKING_OPERATOR_ERROR_CODES = [
81
81
  * (the same decision again answers 200 with the current view and writes nothing).
82
82
  * - SERVICE_QUOTE_LAPSED (409, approve only): past `expiresAt`. A rejection is
83
83
  * still accepted.
84
+ * - SERVICE_QUOTE_TERM_REQUIRED (409, approve only): the version states no term
85
+ * (Ley 24.240 art. 21(e)) — neither `completionDays` nor a FUTURE
86
+ * `promisedAt`. Checked before the code, so it spends no attempt. A rejection
87
+ * is still accepted; the shop re-quotes with a term or sets a future
88
+ * `promisedAt`.
84
89
  * - SERVICE_ORDER_QUOTE_CHANGED (409): the order moved under the decision — retry.
85
90
  * - SERVICE_ORDER_TERMINAL / SERVICE_ORDER_DISABLED (409): the ticket is closed
86
91
  * or deleted.
@@ -96,6 +101,7 @@ exports.SERVICE_TRACKING_DECISION_ERROR_CODES = [
96
101
  'SERVICE_QUOTE_SUPERSEDED',
97
102
  'SERVICE_QUOTE_ALREADY_RESOLVED',
98
103
  'SERVICE_QUOTE_LAPSED',
104
+ 'SERVICE_QUOTE_TERM_REQUIRED',
99
105
  'SERVICE_ORDER_QUOTE_CHANGED',
100
106
  'SERVICE_ORDER_TERMINAL',
101
107
  'SERVICE_ORDER_DISABLED',
@@ -103,6 +109,12 @@ exports.SERVICE_TRACKING_DECISION_ERROR_CODES = [
103
109
  ];
104
110
  /** Where the 6-digit decision code is sent: the phone or the email on file. */
105
111
  exports.SERVICE_TRACKING_CODE_VIAS = ['sms', 'email'];
112
+ /**
113
+ * Why `ServiceTrackingDecision.canApprove` is false while `canDecide` is true,
114
+ * in the order they are checked: `lapsed` (past `expiresAt`), then
115
+ * `term_required` (no `completionDays` and no future `promisedAt`).
116
+ */
117
+ exports.SERVICE_TRACKING_APPROVE_BLOCKS = ['lapsed', 'term_required'];
106
118
  /** The customer's two online answers to a presupuesto. */
107
119
  exports.SERVICE_TRACKING_QUOTE_DECISIONS = ['approve', 'reject'];
108
120
  /** A decision challenge handle: 16 random bytes, base64url (22 characters). */
@@ -65,6 +65,17 @@ exports.STOREFRONT_DESIGN_SETTINGS = {
65
65
  showCompareAt: toggle('showCompareAt', true, 'Mostrar precio anterior', 'Muestra en las tarjetas el precio anterior tachado, cuando el producto lo tiene.'),
66
66
  showStockBadge: toggle('showStockBadge', true, 'Mostrar avisos de stock', 'Oculta los avisos de stock en las tarjetas. Si la tienda oculta las cantidades, este ajuste no las muestra.'),
67
67
  showQuickAdd: toggle('showQuickAdd', true, 'Mostrar botón Agregar', 'Muestra el botón Agregar en las tarjetas. Las filas de productos siempre lo muestran.'),
68
+ /*
69
+ * How a catalogue card or row adds to the cesta: `stepper` adds one unit and turns into a
70
+ * − N + stepper in place; `dialog` opens the quantity dialog. The registry default stays
71
+ * `dialog`, today's behaviour, so a publication or draft that predates this key keeps no value
72
+ * and reads as `dialog`; republishing such a draft still reads `dialog`, and only the merchant
73
+ * choosing `stepper` changes it. New designs get `stepper` from the seed instead: the editor
74
+ * baseline (`stacks/services/storefrontDesignBaseline.ts`) writes it into the settings of every
75
+ * draft it creates, and no stored row is rewritten. Neither value is used by another setting,
76
+ * because the editor labels an option by its value alone.
77
+ */
78
+ addToCartStyle: choice('addToCartStyle', ['stepper', 'dialog'], 'dialog', 'Botón Agregar', 'Elegí si «Agregar» suma una unidad y muestra un contador, o abre un diálogo para elegir la cantidad.'),
68
79
  };
69
80
  const isStorefrontDesignSettingKey = (key) => Object.hasOwn(exports.STOREFRONT_DESIGN_SETTINGS, key);
70
81
  exports.isStorefrontDesignSettingKey = isStorefrontDesignSettingKey;
@@ -28,6 +28,19 @@ const storefrontDesignRegistry_ts_1 = require("./storefrontDesignRegistry.js");
28
28
  exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
29
29
  'ACCOUNT_CREDIT_AVAILABLE',
30
30
  'ACCOUNT_CREDIT_NONE',
31
+ 'ACTION_ADDED',
32
+ 'ACTION_APPLIED',
33
+ 'ACTION_BUSY',
34
+ 'ACTION_DONE',
35
+ 'ACTION_DOWNLOADED',
36
+ 'ACTION_NOT_ADDED',
37
+ 'ACTION_NOT_APPLIED',
38
+ 'ACTION_NOT_DOWNLOADED',
39
+ 'ACTION_NOT_SAVED',
40
+ 'ACTION_NOT_SENT',
41
+ 'ACTION_NO_CHANGES',
42
+ 'ACTION_SAVED',
43
+ 'ACTION_SENT',
31
44
  'ADDRESSES_ADD',
32
45
  'ADDRESSES_CUSTOMER_UNAVAILABLE',
33
46
  'ADDRESSES_DEFAULT_BADGE',
@@ -299,11 +312,11 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
299
312
  'AUTH_SOCIAL_REGISTER_MODE',
300
313
  'AUTH_SOCIAL_REGISTER_USE_PASSWORD',
301
314
  'AUTH_SOCIAL_REGISTER_WITH',
302
- 'BASKET_ADDED_CONFIRMATION',
303
315
  'BASKET_ADDED_PARTIAL_STOCK_HIDDEN',
304
316
  'BASKET_ADD_BUTTON_ADD',
305
317
  'BASKET_ADD_BUTTON_DELETE',
306
318
  'BASKET_ADD_BUTTON_MODIFY',
319
+ 'BASKET_ADD_HELD',
307
320
  'BASKET_ADD_LOGIN_REQUIRED_LINK',
308
321
  'BASKET_ADD_LOGIN_REQUIRED_PREFIX',
309
322
  'BASKET_ADD_LOGIN_REQUIRED_SUFFIX',
@@ -340,7 +353,6 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
340
353
  'BASKET_GUEST_CAP_LIMIT_REACHED',
341
354
  'BASKET_GUEST_CART_NOTICE',
342
355
  'BASKET_GUEST_CHECKOUT_CTA',
343
- 'BASKET_GUEST_HINT',
344
356
  'BASKET_GUEST_LOGIN_CTA',
345
357
  'BASKET_GUEST_MERGED_OK',
346
358
  'BASKET_GUEST_MERGED_REPRICED',
@@ -383,7 +395,6 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
383
395
  'BASKET_TITLE',
384
396
  'BASKET_TOTAL',
385
397
  'BASKET_UNDO_ACTION',
386
- 'BASKET_UPDATED_CONFIRMATION',
387
398
  'BASKET_VIEW_BASKET_ACTION',
388
399
  'BRANDS_DIRECTORY_EMPTY',
389
400
  'BRANDS_ERR_LOAD',
@@ -426,7 +437,6 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
426
437
  'CHECKOUT_CONTINUE_SHOPPING',
427
438
  'CHECKOUT_COUPON_APPLIED',
428
439
  'CHECKOUT_COUPON_APPLY',
429
- 'CHECKOUT_COUPON_APPLYING',
430
440
  'CHECKOUT_COUPON_DROPPED_GENERIC',
431
441
  'CHECKOUT_COUPON_DROPPED_MIN_SUBTOTAL',
432
442
  'CHECKOUT_COUPON_ERROR_BUDGET_EXHAUSTED',
@@ -521,6 +531,7 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
521
531
  'CHECKOUT_PAYMENT_METHOD_UNAVAILABLE',
522
532
  'CHECKOUT_PRICES_CHANGED',
523
533
  'CHECKOUT_PROMOTION_APPLIED',
534
+ 'CHECKOUT_PROMOTION_APPLIED_NAMED',
524
535
  'CHECKOUT_PROMOTION_APPLY',
525
536
  'CHECKOUT_PROMOTION_APPLYING',
526
537
  'CHECKOUT_PROMOTION_APPLY_ARIA',
@@ -650,6 +661,7 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
650
661
  'EMAIL_VERIFY_ERR_SUPPRESSED',
651
662
  'EMAIL_VERIFY_ERR_WRONG_CODE_LAST',
652
663
  'EMAIL_VERIFY_ERR_WRONG_CODE_PLAIN',
664
+ 'EMAIL_VERIFY_NOT_VERIFIED',
653
665
  'EMAIL_VERIFY_RESEND',
654
666
  'EMAIL_VERIFY_RESEND_IN',
655
667
  'EMAIL_VERIFY_SENDING',
@@ -1206,6 +1218,7 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
1206
1218
  'PAYMENTS_BALANCE_PAY_ORDER_LATER_REASON',
1207
1219
  'PAYMENTS_BALANCE_PAY_ORDER_ONLY_REASON',
1208
1220
  'PAYMENTS_BALANCE_PAY_ORDER_REFUSED',
1221
+ 'PAYMENTS_BALANCE_PAY_OTHER_MOVEMENTS',
1209
1222
  'PAYMENTS_BALANCE_PAY_PROVIDER_UNAVAILABLE',
1210
1223
  'PAYMENTS_BALANCE_PAY_REDIRECTING',
1211
1224
  'PAYMENTS_BALANCE_PAY_SELECTION_TOTAL',
@@ -1455,6 +1468,7 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
1455
1468
  'PROFILE_PHONE_ERR_QUOTA',
1456
1469
  'PROFILE_PHONE_ERR_UNAVAILABLE',
1457
1470
  'PROFILE_PHONE_ERR_VALIDATION_UNAVAILABLE',
1471
+ 'PROFILE_PHONE_NOT_VERIFIED',
1458
1472
  'PROFILE_PHONE_RESEND',
1459
1473
  'PROFILE_PHONE_RESEND_IN',
1460
1474
  'PROFILE_PHONE_SENT',
@@ -1665,10 +1679,7 @@ exports.STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
1665
1679
  'SESSIONS_UNKNOWN_IP',
1666
1680
  'SETTINGS_CUIT',
1667
1681
  'SETTINGS_CURRENCY',
1668
- 'SETTINGS_ERROR_MESSAGE',
1669
1682
  'SETTINGS_SAVE_CHANGES',
1670
- 'SETTINGS_SAVING',
1671
- 'SETTINGS_SUCCESS_MESSAGE',
1672
1683
  'SETTINGS_THEME_DARK',
1673
1684
  'SETTINGS_TITLE',
1674
1685
  'SKIP_TO_CONTENT',
@@ -484,6 +484,16 @@ declare global {
484
484
  quotedAt?: number;
485
485
  /** Unix ms the offer lapses (Ley 24.240 art. 21(g)). */
486
486
  expiresAt?: number;
487
+ /**
488
+ * Art. 21(e): calendar days the work takes, counted from approval. Integer
489
+ * {@link SERVICE_QUOTE_COMPLETION_DAYS_MIN}–{@link SERVICE_QUOTE_COMPLETION_DAYS_MAX}.
490
+ * Set on create only; absent when the version states none.
491
+ *
492
+ * An ONLINE approval needs a stated term: this, or a future
493
+ * `ServiceOrder.promisedAt` (`409 SERVICE_QUOTE_TERM_REQUIRED` otherwise).
494
+ * A staff resolve does not.
495
+ */
496
+ completionDays?: number;
487
497
  approval?: ServiceQuoteApproval;
488
498
  /**
489
499
  * Set when `status` is `rejected`. ⚠️ NOT set on `expired`: a lapse is
@@ -1444,6 +1454,13 @@ export declare const SERVICE_CUSTODIES: [ServiceCustody, ...ServiceCustody[]];
1444
1454
  * separately by {@link MAX_IMAGE_BASE64_CHARS}.
1445
1455
  */
1446
1456
  export declare const MAX_SERVICE_PICTURES = 20;
1457
+ /**
1458
+ * The bounds of `ServiceQuote.completionDays` (art. 21(e), calendar days from
1459
+ * approval). `POST /services { mode: 'quote', action: 'create' }` refuses a
1460
+ * value outside them, or a fraction, with `400 VALIDATION_FAILED`.
1461
+ */
1462
+ export declare const SERVICE_QUOTE_COMPLETION_DAYS_MIN = 1;
1463
+ export declare const SERVICE_QUOTE_COMPLETION_DAYS_MAX = 365;
1447
1464
  /**
1448
1465
  * `body.error` codes `/services` refuses with — every mode of `POST /services`
1449
1466
  * and every `GET /services` read (list, `?mode=unclaimed`, by id, `?mode=pdf`).
@@ -1552,6 +1569,6 @@ export declare const MAX_SERVICE_PICTURES = 20;
1552
1569
  * check `GATING_ERROR_CODES` in addition. The deposit's opt-in idempotency
1553
1570
  * refusals are included here.
1554
1571
  */
1555
- export declare const SERVICE_ORDER_ERROR_CODES: readonly ["UNIT_QUANTITY_NOT_WHOLE", "UNIT_REVISION_STALE", "ROLE_FORBIDDEN", "PARENT_FILTER_CONFLICT", "VALIDATION_FAILED", "INVALID_CURSOR", "INVALID_FROM_DATE", "INVALID_TO_DATE", "INVALID_DATE_RANGE", "REWORK_INDEX_UNAVAILABLE", "STORE_NOT_FOUND", "SERVICE_ORDER_NOT_FOUND", "PRINT_JOB_DOCUMENT_NOT_FOUND", "CUSTOMER_NOT_FOUND", "PARENT_SERVICE_ORDER_NOT_FOUND", "SERVICE_TEMPLATE_NOT_FOUND", "SERVICE_TYPE_REQUIRED", "INVALID_IMAGE_REFERENCE", "MISSING_STORE_CONTEXT", "WARRANTY_BELOW_LEGAL_MINIMUM", "TECHNICIAN_NOT_FOUND", "TECHNICIAN_NOT_ELIGIBLE", "SERVICE_TRACKING_DISABLED", "SERVICE_TRACKING_NO_ADDRESS", "SERVICE_TRACKING_LINK_LAPSED", "SERVICE_TRACKING_VERIFICATION_FAILED", "SERVICE_TRACKING_TOKEN_INVALID", "ADMIN_REQUIRED", "CUSTODY_ILLEGAL_TRANSITION", "SERVICE_ORDER_BILLABLE_FROZEN", "SERVICE_ORDER_EDIT_CHANGED", "SERVICE_ORDER_DISABLED_STATE_UNCHANGED", "APPOINTMENT_NOT_FOUND", "APPOINTMENT_NOT_LINKABLE", "APPOINTMENT_NOT_OPEN", "APPOINTMENT_CUSTOMER_MISMATCH", "APPOINTMENT_VERSION_CONFLICT", "SERVICE_ORDER_TERMINAL", "SERVICE_ORDER_DISABLED", "SERVICE_ORDER_ILLEGAL_TRANSITION", "SERVICE_ORDER_STATUS_CHANGED", "SERVICE_ORDER_OUTCOME_REQUIRED", "SERVICE_ORDER_OUTCOME_NOT_ALLOWED", "SERVICE_ORDER_CUSTODY_NOT_RECEIVED", "SERVICE_ORDER_BILLABLE_NOT_AT_THIS_TRANSITION", "PAYMENT_METHODS_NOT_CONFIGURED", "PAYMENT_METHOD_NOT_FOUND", "SERVICE_ORDER_DEPOSIT_CHANGED", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSE", "IDEMPOTENCY_IN_PROGRESS", "IDEMPOTENCY_KEY_FAILED", "IDEMPOTENCY_LOCK_CONTENTION", "SERVICE_DEPOSIT_CURRENCY_MISMATCH", "SERVICE_DEPOSIT_INVALID", "INVALID_AMOUNT", "DEFAULT_DRAWER_UNAVAILABLE", "CURRENCY_MISMATCH", "SHIFT_NOT_OPEN", "SERVICE_BILLING_PRODUCTS_UNAVAILABLE", "CATEGORY_NOT_FOUND", "CATEGORY_DISABLED", "CATEGORY_DISABLE_IN_PROGRESS", "SERVICE_BILLING_PRODUCT_IN_BASKET", "SERVICE_DELIVERY_BASKET_DECISION_REQUIRED", "SERVICE_DELIVERY_BASKET_CURRENCY_MISMATCH", "PRODUCT_NOT_AVAILABLE", "PRODUCT_SALE_LIMIT_EXCEEDED", "PRODUCT_SALE_LIMIT_INVALID", "FX_CONVERSION_UNAVAILABLE", "TRANSACT_ITEMS_LIMIT_EXCEEDED", "SERVICE_LINE_PRICE_TOO_LARGE", "SERVICE_PARTS_RESTORE_EXCEEDS_CONSUMED", "SERVICE_PARTS_RESTORE_EXCEEDS_AMOUNT", "SERVICE_PARTS_STOCK_INSUFFICIENT", "SERVICE_PARTS_PRODUCT_NOT_FOUND", "SERVICE_PARTS_LEDGER_FULL", "SERVICE_PARTS_TOO_MANY", "SERVICE_ORDER_PARTS_CHANGED", "SERVICE_QUOTE_NOT_FOUND", "SERVICE_QUOTE_NOT_OFFERABLE", "SERVICE_QUOTE_HOLDS_TOO_MANY", "SERVICE_QUOTE_SUPERSEDED", "SERVICE_QUOTE_ALREADY_RESOLVED", "SERVICE_QUOTE_LAPSED", "SERVICE_QUOTE_CHANNEL_RESERVED", "SERVICE_QUOTE_CHANNEL_NOT_APPLICABLE", "SERVICE_QUOTE_REASON_NOT_APPLICABLE", "SERVICE_ORDER_QUOTE_CHANGED", "SERVICE_ORDER_NOT_READY", "SERVICE_RENOTIFY_IMPERSONATED", "SERVICE_RENOTIFY_TOO_SOON", "SERVICE_RENOTIFY_CONFLICT", "SERVICE_RENOTIFY_NOT_RECORDED", "SERVICE_RENOTIFY_LEDGER_UNREADABLE", "SERVICE_RENOTIFY_NOT_DISPATCHED", "SERVICE_TIMER_ALREADY_RUNNING", "SERVICE_TIMER_NOT_RUNNING", "SERVICE_TIMER_STOP_CONFLICT", "TECHNICIAN_NOT_CLOCKED_IN", "SERVICE_ORDER_GONE", "SERVICE_WORKLOG_NOT_FOUND", "SERVICE_WORKLOG_NOT_REVERSIBLE", "SERVICE_WORKLOG_ALREADY_REVERSED", "SERVICE_ORDER_WORKLOG_CHANGED", "CART_PROMOTION_UNAVAILABLE", "COUPON_NOT_FOUND", "COUPON_NOT_ACTIVE", "COUPON_EXPIRED", "COUPON_EXHAUSTED", "COUPON_EXHAUSTED_AT_CHECKOUT", "COUPON_MIN_SUBTOTAL", "COUPON_REQUIRES_CUSTOMER", "COUPON_BUDGET_EXHAUSTED", "COUPON_CURRENCY_MISMATCH"];
1572
+ export declare const SERVICE_ORDER_ERROR_CODES: readonly ["UNIT_QUANTITY_NOT_WHOLE", "UNIT_REVISION_STALE", "ROLE_FORBIDDEN", "PARENT_FILTER_CONFLICT", "VALIDATION_FAILED", "INVALID_CURSOR", "INVALID_FROM_DATE", "INVALID_TO_DATE", "INVALID_DATE_RANGE", "REWORK_INDEX_UNAVAILABLE", "STORE_NOT_FOUND", "SERVICE_ORDER_NOT_FOUND", "PRINT_JOB_DOCUMENT_NOT_FOUND", "CUSTOMER_NOT_FOUND", "PARENT_SERVICE_ORDER_NOT_FOUND", "SERVICE_TEMPLATE_NOT_FOUND", "SERVICE_TYPE_REQUIRED", "INVALID_IMAGE_REFERENCE", "MISSING_STORE_CONTEXT", "WARRANTY_BELOW_LEGAL_MINIMUM", "TECHNICIAN_NOT_FOUND", "TECHNICIAN_NOT_ELIGIBLE", "SERVICE_TRACKING_DISABLED", "SERVICE_TRACKING_NO_ADDRESS", "SERVICE_TRACKING_LINK_LAPSED", "SERVICE_TRACKING_VERIFICATION_FAILED", "SERVICE_TRACKING_TOKEN_INVALID", "ADMIN_REQUIRED", "CUSTODY_ILLEGAL_TRANSITION", "SERVICE_ORDER_BILLABLE_FROZEN", "SERVICE_ORDER_EDIT_CHANGED", "SERVICE_ORDER_DISABLED_STATE_UNCHANGED", "APPOINTMENT_NOT_FOUND", "APPOINTMENT_NOT_LINKABLE", "APPOINTMENT_NOT_OPEN", "APPOINTMENT_CUSTOMER_MISMATCH", "APPOINTMENT_VERSION_CONFLICT", "SERVICE_ORDER_TERMINAL", "SERVICE_ORDER_DISABLED", "SERVICE_ORDER_ILLEGAL_TRANSITION", "SERVICE_ORDER_STATUS_CHANGED", "SERVICE_ORDER_OUTCOME_REQUIRED", "SERVICE_ORDER_OUTCOME_NOT_ALLOWED", "SERVICE_ORDER_CUSTODY_NOT_RECEIVED", "SERVICE_ORDER_BILLABLE_NOT_AT_THIS_TRANSITION", "PAYMENT_METHODS_NOT_CONFIGURED", "PAYMENT_METHOD_NOT_FOUND", "SERVICE_ORDER_DEPOSIT_CHANGED", "INVALID_IDEMPOTENCY_KEY", "IDEMPOTENCY_KEY_REUSE", "IDEMPOTENCY_IN_PROGRESS", "IDEMPOTENCY_KEY_FAILED", "IDEMPOTENCY_LOCK_CONTENTION", "SERVICE_DEPOSIT_CURRENCY_MISMATCH", "SERVICE_DEPOSIT_INVALID", "INVALID_AMOUNT", "DEFAULT_DRAWER_UNAVAILABLE", "CURRENCY_MISMATCH", "SHIFT_NOT_OPEN", "SERVICE_BILLING_PRODUCTS_UNAVAILABLE", "CATEGORY_NOT_FOUND", "CATEGORY_DISABLED", "CATEGORY_DISABLE_IN_PROGRESS", "SERVICE_BILLING_PRODUCT_IN_BASKET", "SERVICE_DELIVERY_BASKET_DECISION_REQUIRED", "SERVICE_DELIVERY_BASKET_CURRENCY_MISMATCH", "PRODUCT_NOT_AVAILABLE", "PRODUCT_SALE_LIMIT_EXCEEDED", "PRODUCT_SALE_LIMIT_INVALID", "FX_CONVERSION_UNAVAILABLE", "TRANSACT_ITEMS_LIMIT_EXCEEDED", "SERVICE_LINE_PRICE_TOO_LARGE", "SERVICE_PARTS_RESTORE_EXCEEDS_CONSUMED", "SERVICE_PARTS_RESTORE_EXCEEDS_AMOUNT", "SERVICE_PARTS_STOCK_INSUFFICIENT", "SERVICE_PARTS_PRODUCT_NOT_FOUND", "SERVICE_PARTS_LEDGER_FULL", "SERVICE_PARTS_TOO_MANY", "SERVICE_ORDER_PARTS_CHANGED", "SERVICE_QUOTE_NOT_FOUND", "SERVICE_QUOTE_NOT_OFFERABLE", "SERVICE_QUOTE_HOLDS_TOO_MANY", "SERVICE_QUOTE_SUPERSEDED", "SERVICE_QUOTE_ALREADY_RESOLVED", "SERVICE_QUOTE_LAPSED", "SERVICE_QUOTE_CHANNEL_RESERVED", "SERVICE_QUOTE_CHANNEL_NOT_APPLICABLE", "SERVICE_QUOTE_REASON_NOT_APPLICABLE", "SERVICE_QUOTE_TERM_REQUIRED", "SERVICE_ORDER_QUOTE_CHANGED", "SERVICE_ORDER_NOT_READY", "SERVICE_RENOTIFY_IMPERSONATED", "SERVICE_RENOTIFY_TOO_SOON", "SERVICE_RENOTIFY_CONFLICT", "SERVICE_RENOTIFY_NOT_RECORDED", "SERVICE_RENOTIFY_LEDGER_UNREADABLE", "SERVICE_RENOTIFY_NOT_DISPATCHED", "SERVICE_TIMER_ALREADY_RUNNING", "SERVICE_TIMER_NOT_RUNNING", "SERVICE_TIMER_STOP_CONFLICT", "TECHNICIAN_NOT_CLOCKED_IN", "SERVICE_ORDER_GONE", "SERVICE_WORKLOG_NOT_FOUND", "SERVICE_WORKLOG_NOT_REVERSIBLE", "SERVICE_WORKLOG_ALREADY_REVERSED", "SERVICE_ORDER_WORKLOG_CHANGED", "CART_PROMOTION_UNAVAILABLE", "COUPON_NOT_FOUND", "COUPON_NOT_ACTIVE", "COUPON_EXPIRED", "COUPON_EXHAUSTED", "COUPON_EXHAUSTED_AT_CHECKOUT", "COUPON_MIN_SUBTOTAL", "COUPON_REQUIRES_CUSTOMER", "COUPON_BUDGET_EXHAUSTED", "COUPON_CURRENCY_MISMATCH"];
1556
1573
  export type ServiceOrderErrorCode = (typeof SERVICE_ORDER_ERROR_CODES)[number];
1557
1574
  export {};
@@ -164,6 +164,13 @@ export const SERVICE_CUSTODIES = Object.keys(SERVICE_CUSTODY_TRANSITIONS);
164
164
  * separately by {@link MAX_IMAGE_BASE64_CHARS}.
165
165
  */
166
166
  export const MAX_SERVICE_PICTURES = 20;
167
+ /**
168
+ * The bounds of `ServiceQuote.completionDays` (art. 21(e), calendar days from
169
+ * approval). `POST /services { mode: 'quote', action: 'create' }` refuses a
170
+ * value outside them, or a fraction, with `400 VALIDATION_FAILED`.
171
+ */
172
+ export const SERVICE_QUOTE_COMPLETION_DAYS_MIN = 1;
173
+ export const SERVICE_QUOTE_COMPLETION_DAYS_MAX = 365;
167
174
  /**
168
175
  * `body.error` codes `/services` refuses with — every mode of `POST /services`
169
176
  * and every `GET /services` read (list, `?mode=unclaimed`, by id, `?mode=pdf`).
@@ -377,6 +384,8 @@ export const SERVICE_ORDER_ERROR_CODES = [
377
384
  'SERVICE_QUOTE_CHANNEL_RESERVED',
378
385
  'SERVICE_QUOTE_CHANNEL_NOT_APPLICABLE',
379
386
  'SERVICE_QUOTE_REASON_NOT_APPLICABLE',
387
+ // The customer's online approval of a version that states no term (art. 21(e))
388
+ 'SERVICE_QUOTE_TERM_REQUIRED',
380
389
  'SERVICE_ORDER_QUOTE_CHANGED',
381
390
  // Renotify
382
391
  'SERVICE_ORDER_NOT_READY',
@@ -76,16 +76,27 @@ export type ServiceTrackingOperatorErrorCode = (typeof SERVICE_TRACKING_OPERATOR
76
76
  * (the same decision again answers 200 with the current view and writes nothing).
77
77
  * - SERVICE_QUOTE_LAPSED (409, approve only): past `expiresAt`. A rejection is
78
78
  * still accepted.
79
+ * - SERVICE_QUOTE_TERM_REQUIRED (409, approve only): the version states no term
80
+ * (Ley 24.240 art. 21(e)) — neither `completionDays` nor a FUTURE
81
+ * `promisedAt`. Checked before the code, so it spends no attempt. A rejection
82
+ * is still accepted; the shop re-quotes with a term or sets a future
83
+ * `promisedAt`.
79
84
  * - SERVICE_ORDER_QUOTE_CHANGED (409): the order moved under the decision — retry.
80
85
  * - SERVICE_ORDER_TERMINAL / SERVICE_ORDER_DISABLED (409): the ticket is closed
81
86
  * or deleted.
82
87
  * - SERVICE_QUOTE_HOLDS_TOO_MANY (400, approve only): the version's parts cannot
83
88
  * be reserved in one write; the shop must re-quote.
84
89
  */
85
- export declare const SERVICE_TRACKING_DECISION_ERROR_CODES: readonly ["SERVICE_TRACKING_TOKEN_INVALID", "SERVICE_TRACKING_VERIFICATION_FAILED", "SERVICE_TRACKING_DISABLED", "SERVICE_ORDER_NOT_FOUND", "SERVICE_QUOTE_NOT_FOUND", "SERVICE_QUOTE_SUPERSEDED", "SERVICE_QUOTE_ALREADY_RESOLVED", "SERVICE_QUOTE_LAPSED", "SERVICE_ORDER_QUOTE_CHANGED", "SERVICE_ORDER_TERMINAL", "SERVICE_ORDER_DISABLED", "SERVICE_QUOTE_HOLDS_TOO_MANY"];
90
+ export declare const SERVICE_TRACKING_DECISION_ERROR_CODES: readonly ["SERVICE_TRACKING_TOKEN_INVALID", "SERVICE_TRACKING_VERIFICATION_FAILED", "SERVICE_TRACKING_DISABLED", "SERVICE_ORDER_NOT_FOUND", "SERVICE_QUOTE_NOT_FOUND", "SERVICE_QUOTE_SUPERSEDED", "SERVICE_QUOTE_ALREADY_RESOLVED", "SERVICE_QUOTE_LAPSED", "SERVICE_QUOTE_TERM_REQUIRED", "SERVICE_ORDER_QUOTE_CHANGED", "SERVICE_ORDER_TERMINAL", "SERVICE_ORDER_DISABLED", "SERVICE_QUOTE_HOLDS_TOO_MANY"];
86
91
  export type ServiceTrackingDecisionErrorCode = (typeof SERVICE_TRACKING_DECISION_ERROR_CODES)[number];
87
92
  /** Where the 6-digit decision code is sent: the phone or the email on file. */
88
93
  export declare const SERVICE_TRACKING_CODE_VIAS: readonly ["sms", "email"];
94
+ /**
95
+ * Why `ServiceTrackingDecision.canApprove` is false while `canDecide` is true,
96
+ * in the order they are checked: `lapsed` (past `expiresAt`), then
97
+ * `term_required` (no `completionDays` and no future `promisedAt`).
98
+ */
99
+ export declare const SERVICE_TRACKING_APPROVE_BLOCKS: readonly ["lapsed", "term_required"];
89
100
  /** The customer's two online answers to a presupuesto. */
90
101
  export declare const SERVICE_TRACKING_QUOTE_DECISIONS: readonly ["approve", "reject"];
91
102
  /** A decision challenge handle: 16 random bytes, base64url (22 characters). */
@@ -183,6 +194,8 @@ declare global {
183
194
  quotedAt?: number;
184
195
  /** Unix ms the offer lapses (Ley 24.240 art. 21(g)). */
185
196
  expiresAt?: number;
197
+ /** Art. 21(e): calendar days the work takes, counted from approval (`ServiceQuote.completionDays`). */
198
+ completionDays?: number;
186
199
  parts: ServiceTrackingQuotePart[];
187
200
  /** Unix ms of the approval or the rejection. */
188
201
  decidedAt?: number;
@@ -201,6 +214,14 @@ declare global {
201
214
  * `true` on the link, `false` signed in (the session is the proof).
202
215
  */
203
216
  approveNeedsCode: boolean;
217
+ /**
218
+ * `canDecide` && not lapsed && the quote states a term (`completionDays`,
219
+ * or a `promisedAt` later than now). False while `canDecide` is true means
220
+ * only a rejection is offered; the link sends no code then.
221
+ */
222
+ canApprove: boolean;
223
+ /** Present iff `canDecide && !canApprove`; `'lapsed'` is checked first. */
224
+ approveBlockedBy?: (typeof SERVICE_TRACKING_APPROVE_BLOCKS)[number];
204
225
  }
205
226
  type ServiceTrackingCodeVia = (typeof SERVICE_TRACKING_CODE_VIAS)[number];
206
227
  type ServiceTrackingQuoteDecision = (typeof SERVICE_TRACKING_QUOTE_DECISIONS)[number];
@@ -78,6 +78,11 @@ export const SERVICE_TRACKING_OPERATOR_ERROR_CODES = [
78
78
  * (the same decision again answers 200 with the current view and writes nothing).
79
79
  * - SERVICE_QUOTE_LAPSED (409, approve only): past `expiresAt`. A rejection is
80
80
  * still accepted.
81
+ * - SERVICE_QUOTE_TERM_REQUIRED (409, approve only): the version states no term
82
+ * (Ley 24.240 art. 21(e)) — neither `completionDays` nor a FUTURE
83
+ * `promisedAt`. Checked before the code, so it spends no attempt. A rejection
84
+ * is still accepted; the shop re-quotes with a term or sets a future
85
+ * `promisedAt`.
81
86
  * - SERVICE_ORDER_QUOTE_CHANGED (409): the order moved under the decision — retry.
82
87
  * - SERVICE_ORDER_TERMINAL / SERVICE_ORDER_DISABLED (409): the ticket is closed
83
88
  * or deleted.
@@ -93,6 +98,7 @@ export const SERVICE_TRACKING_DECISION_ERROR_CODES = [
93
98
  'SERVICE_QUOTE_SUPERSEDED',
94
99
  'SERVICE_QUOTE_ALREADY_RESOLVED',
95
100
  'SERVICE_QUOTE_LAPSED',
101
+ 'SERVICE_QUOTE_TERM_REQUIRED',
96
102
  'SERVICE_ORDER_QUOTE_CHANGED',
97
103
  'SERVICE_ORDER_TERMINAL',
98
104
  'SERVICE_ORDER_DISABLED',
@@ -100,6 +106,12 @@ export const SERVICE_TRACKING_DECISION_ERROR_CODES = [
100
106
  ];
101
107
  /** Where the 6-digit decision code is sent: the phone or the email on file. */
102
108
  export const SERVICE_TRACKING_CODE_VIAS = ['sms', 'email'];
109
+ /**
110
+ * Why `ServiceTrackingDecision.canApprove` is false while `canDecide` is true,
111
+ * in the order they are checked: `lapsed` (past `expiresAt`), then
112
+ * `term_required` (no `completionDays` and no future `promisedAt`).
113
+ */
114
+ export const SERVICE_TRACKING_APPROVE_BLOCKS = ['lapsed', 'term_required'];
103
115
  /** The customer's two online answers to a presupuesto. */
104
116
  export const SERVICE_TRACKING_QUOTE_DECISIONS = ['approve', 'reject'];
105
117
  /** A decision challenge handle: 16 random bytes, base64url (22 characters). */
@@ -506,6 +506,31 @@ export declare const STOREFRONT_DESIGN_SETTINGS: {
506
506
  };
507
507
  readonly ownership: "storefront-design";
508
508
  };
509
+ readonly addToCartStyle: {
510
+ readonly key: "addToCartStyle";
511
+ readonly defaultValue: "stepper" | "dialog";
512
+ readonly valueType: "string";
513
+ readonly allowedValues: readonly ["stepper", "dialog"];
514
+ readonly valueSchema: {
515
+ readonly type: "string";
516
+ readonly enum: readonly ["stepper", "dialog"];
517
+ };
518
+ readonly description: string;
519
+ readonly literal: {
520
+ readonly kind: "text";
521
+ readonly label: string;
522
+ readonly help: string;
523
+ };
524
+ readonly scope: "storefront";
525
+ readonly allowedLayers: readonly ["GLOBAL", "WEB", "WEB#store"];
526
+ readonly audience: "public";
527
+ readonly lifecycle: "release-owned";
528
+ readonly storage: {
529
+ readonly policy: "GLOBALS";
530
+ readonly override: "design.settings";
531
+ };
532
+ readonly ownership: "storefront-design";
533
+ };
509
534
  };
510
535
  type SettingValue<T> = T extends {
511
536
  valueSchema: {
@@ -1006,6 +1031,31 @@ export declare const STOREFRONT_DESIGN_REGISTRY: {
1006
1031
  };
1007
1032
  readonly ownership: "storefront-design";
1008
1033
  };
1034
+ readonly addToCartStyle: {
1035
+ readonly key: "addToCartStyle";
1036
+ readonly defaultValue: "stepper" | "dialog";
1037
+ readonly valueType: "string";
1038
+ readonly allowedValues: readonly ["stepper", "dialog"];
1039
+ readonly valueSchema: {
1040
+ readonly type: "string";
1041
+ readonly enum: readonly ["stepper", "dialog"];
1042
+ };
1043
+ readonly description: string;
1044
+ readonly literal: {
1045
+ readonly kind: "text";
1046
+ readonly label: string;
1047
+ readonly help: string;
1048
+ };
1049
+ readonly scope: "storefront";
1050
+ readonly allowedLayers: readonly ["GLOBAL", "WEB", "WEB#store"];
1051
+ readonly audience: "public";
1052
+ readonly lifecycle: "release-owned";
1053
+ readonly storage: {
1054
+ readonly policy: "GLOBALS";
1055
+ readonly override: "design.settings";
1056
+ };
1057
+ readonly ownership: "storefront-design";
1058
+ };
1009
1059
  };
1010
1060
  readonly content: {
1011
1061
  readonly schema: "StorefrontDesignV1";
@@ -62,6 +62,17 @@ export const STOREFRONT_DESIGN_SETTINGS = {
62
62
  showCompareAt: toggle('showCompareAt', true, 'Mostrar precio anterior', 'Muestra en las tarjetas el precio anterior tachado, cuando el producto lo tiene.'),
63
63
  showStockBadge: toggle('showStockBadge', true, 'Mostrar avisos de stock', 'Oculta los avisos de stock en las tarjetas. Si la tienda oculta las cantidades, este ajuste no las muestra.'),
64
64
  showQuickAdd: toggle('showQuickAdd', true, 'Mostrar botón Agregar', 'Muestra el botón Agregar en las tarjetas. Las filas de productos siempre lo muestran.'),
65
+ /*
66
+ * How a catalogue card or row adds to the cesta: `stepper` adds one unit and turns into a
67
+ * − N + stepper in place; `dialog` opens the quantity dialog. The registry default stays
68
+ * `dialog`, today's behaviour, so a publication or draft that predates this key keeps no value
69
+ * and reads as `dialog`; republishing such a draft still reads `dialog`, and only the merchant
70
+ * choosing `stepper` changes it. New designs get `stepper` from the seed instead: the editor
71
+ * baseline (`stacks/services/storefrontDesignBaseline.ts`) writes it into the settings of every
72
+ * draft it creates, and no stored row is rewritten. Neither value is used by another setting,
73
+ * because the editor labels an option by its value alone.
74
+ */
75
+ addToCartStyle: choice('addToCartStyle', ['stepper', 'dialog'], 'dialog', 'Botón Agregar', 'Elegí si «Agregar» suma una unidad y muestra un contador, o abre un diálogo para elegir la cantidad.'),
65
76
  };
66
77
  export const isStorefrontDesignSettingKey = (key) => Object.hasOwn(STOREFRONT_DESIGN_SETTINGS, key);
67
78
  export const validateStorefrontSettingValue = (schema, value) => {
@@ -25,6 +25,19 @@ import { STOREFRONT_DESIGN_LITERAL_MAX_CODE_POINTS } from "./storefrontDesignReg
25
25
  export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
26
26
  'ACCOUNT_CREDIT_AVAILABLE',
27
27
  'ACCOUNT_CREDIT_NONE',
28
+ 'ACTION_ADDED',
29
+ 'ACTION_APPLIED',
30
+ 'ACTION_BUSY',
31
+ 'ACTION_DONE',
32
+ 'ACTION_DOWNLOADED',
33
+ 'ACTION_NOT_ADDED',
34
+ 'ACTION_NOT_APPLIED',
35
+ 'ACTION_NOT_DOWNLOADED',
36
+ 'ACTION_NOT_SAVED',
37
+ 'ACTION_NOT_SENT',
38
+ 'ACTION_NO_CHANGES',
39
+ 'ACTION_SAVED',
40
+ 'ACTION_SENT',
28
41
  'ADDRESSES_ADD',
29
42
  'ADDRESSES_CUSTOMER_UNAVAILABLE',
30
43
  'ADDRESSES_DEFAULT_BADGE',
@@ -296,11 +309,11 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
296
309
  'AUTH_SOCIAL_REGISTER_MODE',
297
310
  'AUTH_SOCIAL_REGISTER_USE_PASSWORD',
298
311
  'AUTH_SOCIAL_REGISTER_WITH',
299
- 'BASKET_ADDED_CONFIRMATION',
300
312
  'BASKET_ADDED_PARTIAL_STOCK_HIDDEN',
301
313
  'BASKET_ADD_BUTTON_ADD',
302
314
  'BASKET_ADD_BUTTON_DELETE',
303
315
  'BASKET_ADD_BUTTON_MODIFY',
316
+ 'BASKET_ADD_HELD',
304
317
  'BASKET_ADD_LOGIN_REQUIRED_LINK',
305
318
  'BASKET_ADD_LOGIN_REQUIRED_PREFIX',
306
319
  'BASKET_ADD_LOGIN_REQUIRED_SUFFIX',
@@ -337,7 +350,6 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
337
350
  'BASKET_GUEST_CAP_LIMIT_REACHED',
338
351
  'BASKET_GUEST_CART_NOTICE',
339
352
  'BASKET_GUEST_CHECKOUT_CTA',
340
- 'BASKET_GUEST_HINT',
341
353
  'BASKET_GUEST_LOGIN_CTA',
342
354
  'BASKET_GUEST_MERGED_OK',
343
355
  'BASKET_GUEST_MERGED_REPRICED',
@@ -380,7 +392,6 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
380
392
  'BASKET_TITLE',
381
393
  'BASKET_TOTAL',
382
394
  'BASKET_UNDO_ACTION',
383
- 'BASKET_UPDATED_CONFIRMATION',
384
395
  'BASKET_VIEW_BASKET_ACTION',
385
396
  'BRANDS_DIRECTORY_EMPTY',
386
397
  'BRANDS_ERR_LOAD',
@@ -423,7 +434,6 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
423
434
  'CHECKOUT_CONTINUE_SHOPPING',
424
435
  'CHECKOUT_COUPON_APPLIED',
425
436
  'CHECKOUT_COUPON_APPLY',
426
- 'CHECKOUT_COUPON_APPLYING',
427
437
  'CHECKOUT_COUPON_DROPPED_GENERIC',
428
438
  'CHECKOUT_COUPON_DROPPED_MIN_SUBTOTAL',
429
439
  'CHECKOUT_COUPON_ERROR_BUDGET_EXHAUSTED',
@@ -518,6 +528,7 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
518
528
  'CHECKOUT_PAYMENT_METHOD_UNAVAILABLE',
519
529
  'CHECKOUT_PRICES_CHANGED',
520
530
  'CHECKOUT_PROMOTION_APPLIED',
531
+ 'CHECKOUT_PROMOTION_APPLIED_NAMED',
521
532
  'CHECKOUT_PROMOTION_APPLY',
522
533
  'CHECKOUT_PROMOTION_APPLYING',
523
534
  'CHECKOUT_PROMOTION_APPLY_ARIA',
@@ -647,6 +658,7 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
647
658
  'EMAIL_VERIFY_ERR_SUPPRESSED',
648
659
  'EMAIL_VERIFY_ERR_WRONG_CODE_LAST',
649
660
  'EMAIL_VERIFY_ERR_WRONG_CODE_PLAIN',
661
+ 'EMAIL_VERIFY_NOT_VERIFIED',
650
662
  'EMAIL_VERIFY_RESEND',
651
663
  'EMAIL_VERIFY_RESEND_IN',
652
664
  'EMAIL_VERIFY_SENDING',
@@ -1203,6 +1215,7 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
1203
1215
  'PAYMENTS_BALANCE_PAY_ORDER_LATER_REASON',
1204
1216
  'PAYMENTS_BALANCE_PAY_ORDER_ONLY_REASON',
1205
1217
  'PAYMENTS_BALANCE_PAY_ORDER_REFUSED',
1218
+ 'PAYMENTS_BALANCE_PAY_OTHER_MOVEMENTS',
1206
1219
  'PAYMENTS_BALANCE_PAY_PROVIDER_UNAVAILABLE',
1207
1220
  'PAYMENTS_BALANCE_PAY_REDIRECTING',
1208
1221
  'PAYMENTS_BALANCE_PAY_SELECTION_TOTAL',
@@ -1452,6 +1465,7 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
1452
1465
  'PROFILE_PHONE_ERR_QUOTA',
1453
1466
  'PROFILE_PHONE_ERR_UNAVAILABLE',
1454
1467
  'PROFILE_PHONE_ERR_VALIDATION_UNAVAILABLE',
1468
+ 'PROFILE_PHONE_NOT_VERIFIED',
1455
1469
  'PROFILE_PHONE_RESEND',
1456
1470
  'PROFILE_PHONE_RESEND_IN',
1457
1471
  'PROFILE_PHONE_SENT',
@@ -1662,10 +1676,7 @@ export const STOREFRONT_WEB_LITERAL_KEYS = Object.freeze([
1662
1676
  'SESSIONS_UNKNOWN_IP',
1663
1677
  'SETTINGS_CUIT',
1664
1678
  'SETTINGS_CURRENCY',
1665
- 'SETTINGS_ERROR_MESSAGE',
1666
1679
  'SETTINGS_SAVE_CHANGES',
1667
- 'SETTINGS_SAVING',
1668
- 'SETTINGS_SUCCESS_MESSAGE',
1669
1680
  'SETTINGS_THEME_DARK',
1670
1681
  'SETTINGS_TITLE',
1671
1682
  'SKIP_TO_CONTENT',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "platform-types",
3
- "version": "1.10.865",
3
+ "version": "1.10.867",
4
4
  "description": "Shared wire and entity contracts for the platform.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",