@shopify/ui-extensions 2026.10.0-rc.4 → 2026.10.0-rc.7

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 (35) hide show
  1. package/build/cjs/surfaces/point-of-sale/events.js +81 -2
  2. package/build/esm/surfaces/point-of-sale/events.mjs +81 -2
  3. package/build/esnext/surfaces/point-of-sale/events.esnext +81 -2
  4. package/build/ts/surfaces/point-of-sale/api/resolution-api/resolution-api.d.ts +23 -0
  5. package/build/ts/surfaces/point-of-sale/api/resolution-api/resolution-api.d.ts.map +1 -0
  6. package/build/ts/surfaces/point-of-sale/api.d.ts +1 -0
  7. package/build/ts/surfaces/point-of-sale/api.d.ts.map +1 -1
  8. package/build/ts/surfaces/point-of-sale/components/Button.d.ts +3 -2
  9. package/build/ts/surfaces/point-of-sale/components/Image.d.ts +26 -1
  10. package/build/ts/surfaces/point-of-sale/components/components-shared.d.ts +1 -1
  11. package/build/ts/surfaces/point-of-sale/components/targets/ResolutionComponents.d.ts +10 -0
  12. package/build/ts/surfaces/point-of-sale/components/targets/ResolutionComponents.d.ts.map +1 -0
  13. package/build/ts/surfaces/point-of-sale/events.d.ts +125 -15
  14. package/build/ts/surfaces/point-of-sale/events.d.ts.map +1 -1
  15. package/build/ts/surfaces/point-of-sale/extension-targets.d.ts +17 -3
  16. package/build/ts/surfaces/point-of-sale/extension-targets.d.ts.map +1 -1
  17. package/build/ts/surfaces/point-of-sale/globals.d.ts +1 -1
  18. package/build/ts/surfaces/point-of-sale/globals.d.ts.map +1 -1
  19. package/build/ts/surfaces/point-of-sale/targets/pos.cart.validations.resolution.render.d.ts +44 -0
  20. package/build/ts/surfaces/point-of-sale/targets/pos.payment.validations.resolution.render.d.ts +44 -0
  21. package/build/ts/surfaces/point-of-sale/types/storage.d.ts +1 -1
  22. package/build/ts/surfaces/point-of-sale/types/storage.d.ts.map +1 -1
  23. package/build/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +1 -1
  25. package/src/surfaces/point-of-sale/api/resolution-api/resolution-api.ts +24 -0
  26. package/src/surfaces/point-of-sale/api.ts +4 -0
  27. package/src/surfaces/point-of-sale/components/Button.d.ts +3 -2
  28. package/src/surfaces/point-of-sale/components/Image.d.ts +26 -1
  29. package/src/surfaces/point-of-sale/components/components-shared.d.ts +1 -1
  30. package/src/surfaces/point-of-sale/components/targets/ResolutionComponents.ts +13 -0
  31. package/src/surfaces/point-of-sale/components.d.ts +43 -5
  32. package/src/surfaces/point-of-sale/events.ts +147 -17
  33. package/src/surfaces/point-of-sale/extension-targets.ts +33 -2
  34. package/src/surfaces/point-of-sale/globals.ts +1 -1
  35. package/src/surfaces/point-of-sale/types/storage.ts +1 -1
@@ -21,7 +21,8 @@ const POS_EVENT_NAMES = {
21
21
  * @private
22
22
  */
23
23
  const POS_INTERCEPT_NAMES = {
24
- BEFORE_CHECKOUT: 'beforecheckout'
24
+ CART_VALIDATIONS: 'cartvalidations',
25
+ PAYMENT_VALIDATIONS: 'paymentvalidations'
25
26
  };
26
27
 
27
28
  /**
@@ -42,13 +43,91 @@ const POS_INTERCEPT_NAMES = {
42
43
  */
43
44
 
44
45
  /**
45
- * Dispatched when staff attempts to leave the active cart for checkout.
46
+ * The data carried by a `cartvalidations` event.
47
+ *
48
+ * @private
49
+ */
50
+
51
+ /**
52
+ * The event a `cartvalidations` interceptor receives. Carries a snapshot of
53
+ * the POS cart taken when the event was produced.
54
+ *
55
+ * @private
56
+ */
57
+
58
+ /**
59
+ * The kind of payment method being attempted.
60
+ *
61
+ * @private
62
+ */
63
+
64
+ /**
65
+ * Identifies the payment method being attempted.
66
+ *
67
+ * `type` alone identifies singleton methods (for example `cash`). `identifier`
68
+ * disambiguates method types a shop can have several of (for example custom
69
+ * payment methods) as they become interceptable.
70
+ *
71
+ * @private
72
+ */
73
+
74
+ /**
75
+ * The event a `paymentvalidations` interceptor receives. Carries the tender
76
+ * attempt's payment method and amount; split payments produce one event per
77
+ * tender, each with its own amount.
78
+ *
79
+ * @private
80
+ */
81
+
82
+ /**
83
+ * The data carried by a `paymentvalidations` event.
84
+ *
85
+ * @private
86
+ */
87
+
88
+ /**
89
+ * Targets the whole cart rather than a specific line item.
90
+ *
91
+ * @private
92
+ */
93
+
94
+ /**
95
+ * Targets one cart line item by its `uuid` from this event's `cart` snapshot,
96
+ * for example `$.cart.lineItems['adfd6b06-4a24-4f5f-9f4b-ea21f4432dd4']`.
46
97
  *
47
98
  * @private
48
99
  */
49
100
 
50
101
  /** @private */
51
102
 
103
+ /**
104
+ * Targets the payment attempt being intercepted.
105
+ *
106
+ * @private
107
+ */
108
+
109
+ /** @private */
110
+
111
+ /**
112
+ * Where a validation applies, as an enumerated token. Targets are matched
113
+ * as exact strings, never evaluated as JSON paths.
114
+ *
115
+ * @private
116
+ */
117
+
118
+ /**
119
+ * Maps POS interceptable workflow names to their valid validation targets.
120
+ *
121
+ * @private
122
+ */
123
+
124
+ /**
125
+ * The interceptor callback for a POS interceptable workflow, keyed by the
126
+ * workflow name so the event and its valid validation targets stay paired.
127
+ *
128
+ * @private
129
+ */
130
+
52
131
  /**
53
132
  * The result an interceptor returns. An empty `operations` list allows the
54
133
  * workflow; an `ERROR` validation blocks it.
@@ -17,7 +17,8 @@ const POS_EVENT_NAMES = {
17
17
  * @private
18
18
  */
19
19
  const POS_INTERCEPT_NAMES = {
20
- BEFORE_CHECKOUT: 'beforecheckout'
20
+ CART_VALIDATIONS: 'cartvalidations',
21
+ PAYMENT_VALIDATIONS: 'paymentvalidations'
21
22
  };
22
23
 
23
24
  /**
@@ -38,13 +39,91 @@ const POS_INTERCEPT_NAMES = {
38
39
  */
39
40
 
40
41
  /**
41
- * Dispatched when staff attempts to leave the active cart for checkout.
42
+ * The data carried by a `cartvalidations` event.
43
+ *
44
+ * @private
45
+ */
46
+
47
+ /**
48
+ * The event a `cartvalidations` interceptor receives. Carries a snapshot of
49
+ * the POS cart taken when the event was produced.
50
+ *
51
+ * @private
52
+ */
53
+
54
+ /**
55
+ * The kind of payment method being attempted.
56
+ *
57
+ * @private
58
+ */
59
+
60
+ /**
61
+ * Identifies the payment method being attempted.
62
+ *
63
+ * `type` alone identifies singleton methods (for example `cash`). `identifier`
64
+ * disambiguates method types a shop can have several of (for example custom
65
+ * payment methods) as they become interceptable.
66
+ *
67
+ * @private
68
+ */
69
+
70
+ /**
71
+ * The event a `paymentvalidations` interceptor receives. Carries the tender
72
+ * attempt's payment method and amount; split payments produce one event per
73
+ * tender, each with its own amount.
74
+ *
75
+ * @private
76
+ */
77
+
78
+ /**
79
+ * The data carried by a `paymentvalidations` event.
80
+ *
81
+ * @private
82
+ */
83
+
84
+ /**
85
+ * Targets the whole cart rather than a specific line item.
86
+ *
87
+ * @private
88
+ */
89
+
90
+ /**
91
+ * Targets one cart line item by its `uuid` from this event's `cart` snapshot,
92
+ * for example `$.cart.lineItems['adfd6b06-4a24-4f5f-9f4b-ea21f4432dd4']`.
42
93
  *
43
94
  * @private
44
95
  */
45
96
 
46
97
  /** @private */
47
98
 
99
+ /**
100
+ * Targets the payment attempt being intercepted.
101
+ *
102
+ * @private
103
+ */
104
+
105
+ /** @private */
106
+
107
+ /**
108
+ * Where a validation applies, as an enumerated token. Targets are matched
109
+ * as exact strings, never evaluated as JSON paths.
110
+ *
111
+ * @private
112
+ */
113
+
114
+ /**
115
+ * Maps POS interceptable workflow names to their valid validation targets.
116
+ *
117
+ * @private
118
+ */
119
+
120
+ /**
121
+ * The interceptor callback for a POS interceptable workflow, keyed by the
122
+ * workflow name so the event and its valid validation targets stay paired.
123
+ *
124
+ * @private
125
+ */
126
+
48
127
  /**
49
128
  * The result an interceptor returns. An empty `operations` list allows the
50
129
  * workflow; an `ERROR` validation blocks it.
@@ -17,7 +17,8 @@ const POS_EVENT_NAMES = {
17
17
  * @private
18
18
  */
19
19
  const POS_INTERCEPT_NAMES = {
20
- BEFORE_CHECKOUT: 'beforecheckout'
20
+ CART_VALIDATIONS: 'cartvalidations',
21
+ PAYMENT_VALIDATIONS: 'paymentvalidations'
21
22
  };
22
23
 
23
24
  /**
@@ -38,13 +39,91 @@ const POS_INTERCEPT_NAMES = {
38
39
  */
39
40
 
40
41
  /**
41
- * Dispatched when staff attempts to leave the active cart for checkout.
42
+ * The data carried by a `cartvalidations` event.
43
+ *
44
+ * @private
45
+ */
46
+
47
+ /**
48
+ * The event a `cartvalidations` interceptor receives. Carries a snapshot of
49
+ * the POS cart taken when the event was produced.
50
+ *
51
+ * @private
52
+ */
53
+
54
+ /**
55
+ * The kind of payment method being attempted.
56
+ *
57
+ * @private
58
+ */
59
+
60
+ /**
61
+ * Identifies the payment method being attempted.
62
+ *
63
+ * `type` alone identifies singleton methods (for example `cash`). `identifier`
64
+ * disambiguates method types a shop can have several of (for example custom
65
+ * payment methods) as they become interceptable.
66
+ *
67
+ * @private
68
+ */
69
+
70
+ /**
71
+ * The event a `paymentvalidations` interceptor receives. Carries the tender
72
+ * attempt's payment method and amount; split payments produce one event per
73
+ * tender, each with its own amount.
74
+ *
75
+ * @private
76
+ */
77
+
78
+ /**
79
+ * The data carried by a `paymentvalidations` event.
80
+ *
81
+ * @private
82
+ */
83
+
84
+ /**
85
+ * Targets the whole cart rather than a specific line item.
86
+ *
87
+ * @private
88
+ */
89
+
90
+ /**
91
+ * Targets one cart line item by its `uuid` from this event's `cart` snapshot,
92
+ * for example `$.cart.lineItems['adfd6b06-4a24-4f5f-9f4b-ea21f4432dd4']`.
42
93
  *
43
94
  * @private
44
95
  */
45
96
 
46
97
  /** @private */
47
98
 
99
+ /**
100
+ * Targets the payment attempt being intercepted.
101
+ *
102
+ * @private
103
+ */
104
+
105
+ /** @private */
106
+
107
+ /**
108
+ * Where a validation applies, as an enumerated token. Targets are matched
109
+ * as exact strings, never evaluated as JSON paths.
110
+ *
111
+ * @private
112
+ */
113
+
114
+ /**
115
+ * Maps POS interceptable workflow names to their valid validation targets.
116
+ *
117
+ * @private
118
+ */
119
+
120
+ /**
121
+ * The interceptor callback for a POS interceptable workflow, keyed by the
122
+ * workflow name so the event and its valid validation targets stay paired.
123
+ *
124
+ * @private
125
+ */
126
+
48
127
  /**
49
128
  * The result an interceptor returns. An empty `operations` list allows the
50
129
  * workflow; an `ERROR` validation blocks it.
@@ -0,0 +1,23 @@
1
+ import type { ReadonlySignalLike } from '../../../../shared';
2
+ /**
3
+ * The `ResolutionApi` object gives a validation resolution target access to
4
+ * the data of the intercepted event it was opened to resolve. Access it
5
+ * through `shopify.resolution`.
6
+ *
7
+ * @private
8
+ */
9
+ export interface ResolutionApi<TEventData> {
10
+ resolution: ResolutionApiContent<TEventData>;
11
+ }
12
+ /**
13
+ * @private
14
+ */
15
+ export interface ResolutionApiContent<TEventData> {
16
+ /**
17
+ * The data of the intercepted event this resolution target was opened for.
18
+ * The `value` property provides the current data, and `subscribe` allows
19
+ * listening for host-owned revalidation updates.
20
+ */
21
+ event: ReadonlySignalLike<TEventData>;
22
+ }
23
+ //# sourceMappingURL=resolution-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolution-api.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/point-of-sale/api/resolution-api/resolution-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,UAAU;IACvC,UAAU,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,UAAU;IAC9C;;;;OAIG;IACH,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CACvC"}
@@ -6,6 +6,7 @@ export type { StandardApi } from './api/standard/standard-api';
6
6
  export type { ExtensionApi, ExtensionApiContent, } from './api/extension-api/extension-api';
7
7
  export type { ActionTargetApi } from './api/action-target-api/action-target-api';
8
8
  export type { DataTargetApi } from './api/data-target-api/data-target-api';
9
+ export type { ResolutionApi, ResolutionApiContent, } from './api/resolution-api/resolution-api';
9
10
  export type { TransactionCompleteEvent, CashTrackingSessionStartEvent, CashTrackingSessionCompleteEvent, ShopifyEventMap, } from './events';
10
11
  export type { CameraApi, CameraApiContent, CameraMediaOptions, CameraMediaResponse, } from './api/camera-api/camera-api';
11
12
  export type { ConnectivityStateSeverity, ConnectivityState, ConnectivityApiContent, ConnectivityApi, } from './api/connectivity-api/connectivity-api';
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/point-of-sale/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/point-of-sale/api.ts"],"names":[],"mappings":"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"}
@@ -116,12 +116,13 @@ export interface ButtonJSXProps
116
116
  >;
117
117
  /**
118
118
  * Changes the visual appearance of the button.
119
+ * - `auto`: Automatically determines the button variant based on its context.
119
120
  * - `primary`: Creates a prominent call-to-action button with high visual emphasis for the most important action on a screen.
120
121
  * - `secondary`: Provides a less prominent button appearance for supporting actions and secondary interactions.
121
122
  *
122
- * @default 'auto' - the variant is automatically determined by the button's context
123
+ * @default 'auto'
123
124
  */
124
- variant?: Extract<ButtonProps['variant'], 'primary' | 'secondary'>;
125
+ variant?: Extract<ButtonProps['variant'], 'auto' | 'primary' | 'secondary'>;
125
126
  /**
126
127
  * An event that's called when the button is activated.
127
128
  */
@@ -8,7 +8,13 @@
8
8
  /* eslint-disable import-x/namespace */
9
9
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference, spaced-comment
10
10
  /// <reference lib="DOM" />
11
- import type {ImageProps, Key, Ref} from './components-shared.d.ts';
11
+ import type {
12
+ BorderRadiusKeyword,
13
+ ImageProps,
14
+ Key,
15
+ MaybeAllValuesShorthandProperty,
16
+ Ref,
17
+ } from './components-shared.d.ts';
12
18
 
13
19
  /** @publicDocs */
14
20
  export type ComponentChildren = any;
@@ -60,6 +66,25 @@ export interface ImageJSXProps extends Pick<ImageProps, 'id' | 'objectFit'> {
60
66
  * The image source URL (remote URL or local file resource). When loading or no src is provided, a placeholder is rendered. Ensure URLs are properly formatted and properly formatted.
61
67
  */
62
68
  src?: ImageProps['src'];
69
+ /**
70
+ * Border radius for the image corners.
71
+ *
72
+ * [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) is
73
+ * supported. Note that, contrary to CSS, it uses flow-relative values and the order is:
74
+ *
75
+ * - 4 values: `start-start start-end end-end end-start`
76
+ * - 3 values: `start-start (start-end & end-start) end-end`
77
+ * - 2 values: `(start-start & end-end) (start-end & end-start)`
78
+ *
79
+ * For example:
80
+ * - `base` means all corners have `base` radius
81
+ * - `base none` means start-start and end-end corners are `base`, start-end and end-start corners are `none`
82
+ * - `base none large` means start-start is `base`, start-end and end-start are `none`, end-end is `large`
83
+ * - `base none large small` means start-start is `base`, start-end is `none`, end-end is `large`, end-start is `small`
84
+ *
85
+ * @default 'none'
86
+ */
87
+ borderRadius?: MaybeAllValuesShorthandProperty<BorderRadiusKeyword>;
63
88
  }
64
89
  declare global {
65
90
  interface HTMLElementTagNameMap {
@@ -1438,7 +1438,7 @@ export interface ButtonProps extends GlobalProps, BaseClickableProps {
1438
1438
  /**
1439
1439
  * Changes the visual appearance of the button.
1440
1440
  *
1441
- * @default 'auto' - the variant is automatically determined by the button's context
1441
+ * @default 'auto'
1442
1442
  */
1443
1443
  variant?: 'auto' | 'primary' | 'secondary' | 'tertiary';
1444
1444
  /**
@@ -0,0 +1,10 @@
1
+ import type { StandardComponents } from './StandardComponents';
2
+ /**
3
+ * Components available on validation resolution targets. Resolution UI renders
4
+ * inside a POS-owned flow step, so page-level and block-level containers are
5
+ * excluded, along with the smart-grid-only `Tile`.
6
+ *
7
+ * @private
8
+ */
9
+ export type ResolutionComponents = Exclude<StandardComponents, 'Page' | 'POSBlock' | 'PosBlock' | 'Tile'>;
10
+ //# sourceMappingURL=ResolutionComponents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResolutionComponents.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/point-of-sale/components/targets/ResolutionComponents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,kBAAkB,EAClB,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAC1C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { TransactionCompleteEvent } from './events/transaction-complete-event';
2
2
  import type { CashTrackingSessionStartEvent, CashTrackingSessionCompleteEvent } from './events/cash-tracking-session-events';
3
3
  import type { Cart } from './types/cart';
4
+ import type { MoneyV2 } from './types/money';
4
5
  /**
5
6
  * Canonical event-name constants for POS host events. Prefer these over string
6
7
  * literals when calling `shopify.addEventListener` / `removeEventListener`.
@@ -19,7 +20,8 @@ export declare const POS_EVENT_NAMES: {
19
20
  * @private
20
21
  */
21
22
  export declare const POS_INTERCEPT_NAMES: {
22
- readonly BEFORE_CHECKOUT: "beforecheckout";
23
+ readonly CART_VALIDATIONS: "cartvalidations";
24
+ readonly PAYMENT_VALIDATIONS: "paymentvalidations";
23
25
  };
24
26
  /**
25
27
  * Maps Shopify POS event names to their corresponding payload types.
@@ -48,36 +50,130 @@ export interface ShopifyEventMap {
48
50
  * @private
49
51
  */
50
52
  export interface ShopifyInterceptMap {
51
- [POS_INTERCEPT_NAMES.BEFORE_CHECKOUT]: BeforeCheckoutEvent;
53
+ [POS_INTERCEPT_NAMES.CART_VALIDATIONS]: CartValidationsEvent;
54
+ [POS_INTERCEPT_NAMES.PAYMENT_VALIDATIONS]: PaymentValidationsEvent;
52
55
  }
53
56
  /**
54
- * Dispatched when staff attempts to leave the active cart for checkout.
57
+ * The data carried by a `cartvalidations` event.
55
58
  *
56
59
  * @private
57
60
  */
58
- export interface BeforeCheckoutEvent extends Event {
59
- readonly type: typeof POS_INTERCEPT_NAMES.BEFORE_CHECKOUT;
60
- /** The POS cart at the point checkout was requested. */
61
+ export interface CartValidationsEventData {
62
+ /** A snapshot of the POS cart taken when the event was produced. */
61
63
  readonly cart: Cart;
62
64
  }
65
+ /**
66
+ * The event a `cartvalidations` interceptor receives. Carries a snapshot of
67
+ * the POS cart taken when the event was produced.
68
+ *
69
+ * @private
70
+ */
71
+ export interface CartValidationsEvent extends CartValidationsEventData {
72
+ readonly type: typeof POS_INTERCEPT_NAMES.CART_VALIDATIONS;
73
+ }
74
+ /**
75
+ * The kind of payment method being attempted.
76
+ *
77
+ * @private
78
+ */
79
+ export type InterceptedPaymentMethodType = 'cash';
80
+ /**
81
+ * Identifies the payment method being attempted.
82
+ *
83
+ * `type` alone identifies singleton methods (for example `cash`). `identifier`
84
+ * disambiguates method types a shop can have several of (for example custom
85
+ * payment methods) as they become interceptable.
86
+ *
87
+ * @private
88
+ */
89
+ export interface InterceptedPaymentMethod {
90
+ readonly type: InterceptedPaymentMethodType;
91
+ /** Present when `type` alone is ambiguous. Matching is exact on the pair. */
92
+ readonly identifier?: string;
93
+ }
94
+ /**
95
+ * The event a `paymentvalidations` interceptor receives. Carries the tender
96
+ * attempt's payment method and amount; split payments produce one event per
97
+ * tender, each with its own amount.
98
+ *
99
+ * @private
100
+ */
101
+ export interface PaymentValidationsEvent extends PaymentValidationsEventData {
102
+ readonly type: typeof POS_INTERCEPT_NAMES.PAYMENT_VALIDATIONS;
103
+ }
104
+ /**
105
+ * The data carried by a `paymentvalidations` event.
106
+ *
107
+ * @private
108
+ */
109
+ export interface PaymentValidationsEventData {
110
+ /** The payment method staff selected. */
111
+ readonly paymentMethod: InterceptedPaymentMethod;
112
+ /** The amount this tender would charge, in presentment currency. */
113
+ readonly amount: MoneyV2;
114
+ }
115
+ /**
116
+ * Targets the whole cart rather than a specific line item.
117
+ *
118
+ * @private
119
+ */
120
+ export type CartTarget = '$.cart';
121
+ /**
122
+ * Targets one cart line item by its `uuid` from this event's `cart` snapshot,
123
+ * for example `$.cart.lineItems['adfd6b06-4a24-4f5f-9f4b-ea21f4432dd4']`.
124
+ *
125
+ * @private
126
+ */
127
+ export type CartLineItemTarget = `$.cart.lineItems['${string}']`;
128
+ /** @private */
129
+ export type CartValidationTarget = CartTarget | CartLineItemTarget;
130
+ /**
131
+ * Targets the payment attempt being intercepted.
132
+ *
133
+ * @private
134
+ */
135
+ export type PaymentTarget = '$.payment';
63
136
  /** @private */
64
- export type ShopifyInterceptor<TEvent extends Event> = (event: TEvent) => InterceptResult;
137
+ export type PaymentValidationTarget = PaymentTarget;
138
+ /**
139
+ * Where a validation applies, as an enumerated token. Targets are matched
140
+ * as exact strings, never evaluated as JSON paths.
141
+ *
142
+ * @private
143
+ */
144
+ export type ValidationTarget = CartValidationTarget | PaymentValidationTarget;
145
+ /**
146
+ * Maps POS interceptable workflow names to their valid validation targets.
147
+ *
148
+ * @private
149
+ */
150
+ interface ValidationTargetMap {
151
+ [POS_INTERCEPT_NAMES.CART_VALIDATIONS]: CartValidationTarget;
152
+ [POS_INTERCEPT_NAMES.PAYMENT_VALIDATIONS]: PaymentValidationTarget;
153
+ }
154
+ /**
155
+ * The interceptor callback for a POS interceptable workflow, keyed by the
156
+ * workflow name so the event and its valid validation targets stay paired.
157
+ *
158
+ * @private
159
+ */
160
+ export type ShopifyInterceptor<K extends keyof ShopifyInterceptMap> = (event: ShopifyInterceptMap[K]) => InterceptResult<ValidationTargetMap[K]>;
65
161
  /**
66
162
  * The result an interceptor returns. An empty `operations` list allows the
67
163
  * workflow; an `ERROR` validation blocks it.
68
164
  *
69
165
  * @private
70
166
  */
71
- export interface InterceptResult {
72
- operations: Operation[];
167
+ export interface InterceptResult<TTarget extends ValidationTarget = ValidationTarget> {
168
+ operations: Operation<TTarget>[];
73
169
  }
74
170
  /**
75
171
  * A single host operation produced by an interceptor.
76
172
  *
77
173
  * @private
78
174
  */
79
- export interface Operation {
80
- validationAdd?: ValidationAdd;
175
+ export interface Operation<TTarget extends ValidationTarget = ValidationTarget> {
176
+ validationAdd?: ValidationAdd<TTarget>;
81
177
  }
82
178
  /** @private */
83
179
  export type ValidationLevel = 'WARNING' | 'ERROR';
@@ -86,13 +182,27 @@ export type ValidationLevel = 'WARNING' | 'ERROR';
86
182
  *
87
183
  * @private
88
184
  */
89
- export interface ValidationAdd {
185
+ export interface ValidationAdd<TTarget extends ValidationTarget = ValidationTarget> {
90
186
  /** `ERROR` blocks the workflow. `WARNING` does not. */
91
187
  level: ValidationLevel;
92
- /** Stable identifier for this validation. */
188
+ /**
189
+ * Stable identifier for this validation. Handles are namespaced per
190
+ * extension and may repeat across targets: the same handle on two line
191
+ * items is two validations.
192
+ */
93
193
  handle: string;
94
- /** JSON-path locator for where the validation applies. */
95
- target?: string;
194
+ /**
195
+ * Locates the data the validation applies to; the host decides where it
196
+ * renders. Omitted or unrecognized targets fall back to the event's root
197
+ * scope (`$.cart` / `$.payment`) — the validation still applies, rendered
198
+ * less specifically.
199
+ *
200
+ * Line item uuids are only valid within the event that delivered them:
201
+ * use `lineItems[n].uuid` from this event's cart snapshot, don't cache
202
+ * uuids across events. Bundle components are not addressable; target
203
+ * their parent line.
204
+ */
205
+ target?: TTarget;
96
206
  }
97
207
  export type { TransactionCompleteEvent, CashTrackingSessionStartEvent, CashTrackingSessionCompleteEvent, };
98
208
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/point-of-sale/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EACV,6BAA6B,EAC7B,gCAAgC,EACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,cAAc,CAAC;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;CAEtB,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,CAAC,eAAe,CAAC,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;IACjE,qDAAqD;IACrD,CAAC,eAAe,CAAC,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC7E,2EAA2E;IAC3E,CAAC,eAAe,CAAC,8BAA8B,CAAC,EAAE,gCAAgC,CAAC;CACpF;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;CAC5D;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,OAAO,mBAAmB,CAAC,eAAe,CAAC;IAC1D,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,eAAe;AACf,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,KAAK,IAAI,CACrD,KAAK,EAAE,MAAM,KACV,eAAe,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,eAAe;AACf,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,KAAK,EAAE,eAAe,CAAC;IAEvB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IAEf,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,YAAY,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,gCAAgC,GACjC,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/surfaces/point-of-sale/events.ts"],"names":[],"mappings":"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"}