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

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.
@@ -17,4 +17,15 @@ class StorageError extends Error {
17
17
  * @publicDocs
18
18
  */
19
19
 
20
+ /**
21
+ * Provides reactive, subscribable access to individual storage keys.
22
+ *
23
+ * Each property is a `ReadonlySignalLike` that reflects the current value of the
24
+ * corresponding storage key. Values are `undefined` when the key does not exist
25
+ * or is being loaded asynchronously.
26
+ *
27
+ * Mutations are performed through the existing `Storage` methods (`set`,
28
+ * `delete`, `clear`, etc.) — `SubscribableStorage` is read-only and reactive.
29
+ */
30
+
20
31
  exports.StorageError = StorageError;
@@ -13,4 +13,15 @@ class StorageError extends Error {
13
13
  * @publicDocs
14
14
  */
15
15
 
16
+ /**
17
+ * Provides reactive, subscribable access to individual storage keys.
18
+ *
19
+ * Each property is a `ReadonlySignalLike` that reflects the current value of the
20
+ * corresponding storage key. Values are `undefined` when the key does not exist
21
+ * or is being loaded asynchronously.
22
+ *
23
+ * Mutations are performed through the existing `Storage` methods (`set`,
24
+ * `delete`, `clear`, etc.) — `SubscribableStorage` is read-only and reactive.
25
+ */
26
+
16
27
  export { StorageError };
@@ -13,4 +13,15 @@ class StorageError extends Error {
13
13
  * @publicDocs
14
14
  */
15
15
 
16
+ /**
17
+ * Provides reactive, subscribable access to individual storage keys.
18
+ *
19
+ * Each property is a `ReadonlySignalLike` that reflects the current value of the
20
+ * corresponding storage key. Values are `undefined` when the key does not exist
21
+ * or is being loaded asynchronously.
22
+ *
23
+ * Mutations are performed through the existing `Storage` methods (`set`,
24
+ * `delete`, `clear`, etc.) — `SubscribableStorage` is read-only and reactive.
25
+ */
26
+
16
27
  export { StorageError };
@@ -34,7 +34,7 @@ export type { PaginatedResult } from './types/paginated-result';
34
34
  export type { Product, ProductVariant, ProductVariantOption, ProductVariantInventoryPolicy, ProductOption, } from './types/product';
35
35
  export type { CountryCode } from './types/country-code';
36
36
  export type { Session, StaffMember } from './types/session';
37
- export type { Storage } from './types/storage';
37
+ export type { Storage, SubscribableStorage } from './types/storage';
38
38
  export { StorageError } from './types/storage';
39
39
  export type { PinPadApiContent, PinPadApi } from './api/pin-pad-api';
40
40
  export type { PinPadOptions, PinPadResult, PinLength, PinPadActionType, PinValidationResult, } from './types/pin-pad';
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ import type { ReadonlySignalLike } from '../../../shared';
1
2
  /**
2
3
  * @publicDocs
3
4
  */
@@ -11,6 +12,32 @@ export declare class StorageError extends Error {
11
12
  * @publicDocs
12
13
  */
13
14
  export interface Storage<BaseStorageTypes extends Record<string, any> = Record<string, unknown>> {
15
+ /**
16
+ * Reactive access to storage values as Subscribables.
17
+ *
18
+ * Each key is exposed as a `ReadonlySignalLike<T | undefined>`, enabling cross-target
19
+ * reactivity. One extension target can subscribe to a key and react when
20
+ * another target updates it via `set()` or `delete()`.
21
+ *
22
+ * The `value` property provides synchronous, reactive access to the current stored
23
+ * value. It is not preloaded: storage hydrates asynchronously, so `value` is
24
+ * `undefined` until the key has been loaded.
25
+ * The `subscribe()` method registers a callback that fires whenever the value
26
+ * changes, including changes made by other extension targets within the same app.
27
+ *
28
+ * @example Cross-target reactivity
29
+ * ```typescript
30
+ * // In one extension target:
31
+ * await shopify.storage.set('syncStatus', 'complete');
32
+ *
33
+ * // In another target:
34
+ * const status = shopify.storage.current.syncStatus.value; // 'complete'
35
+ * const unsubscribe = shopify.storage.current.syncStatus.subscribe((value) => {
36
+ * // Reacts when another target updates this key
37
+ * });
38
+ * ```
39
+ */
40
+ current?: SubscribableStorage<BaseStorageTypes>;
14
41
  /**
15
42
  * Stores a value under the specified key, overwriting any existing value. Values must be JSON-serializable and return `StorageError` when storage limits are exceeded. Commonly used for storing user preferences, caching API responses, or passing contextual data from tiles to modals.
16
43
  *
@@ -48,4 +75,17 @@ export interface Storage<BaseStorageTypes extends Record<string, any> = Record<s
48
75
  */
49
76
  entries<StorageTypes extends BaseStorageTypes = BaseStorageTypes, Keys extends keyof StorageTypes = keyof StorageTypes>(): Promise<[Keys, StorageTypes[Keys]][]>;
50
77
  }
78
+ /**
79
+ * Provides reactive, subscribable access to individual storage keys.
80
+ *
81
+ * Each property is a `ReadonlySignalLike` that reflects the current value of the
82
+ * corresponding storage key. Values are `undefined` when the key does not exist
83
+ * or is being loaded asynchronously.
84
+ *
85
+ * Mutations are performed through the existing `Storage` methods (`set`,
86
+ * `delete`, `clear`, etc.) — `SubscribableStorage` is read-only and reactive.
87
+ */
88
+ export type SubscribableStorage<BaseStorageTypes extends Record<string, any> = Record<string, unknown>> = {
89
+ readonly [K in keyof BaseStorageTypes]: ReadonlySignalLike<BaseStorageTypes[K] | undefined>;
90
+ };
51
91
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/point-of-sale/types/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAG5B,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS;IAF7D,IAAI,SAAkB;gBAEpB,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,EAClE,OAAO,EAAE,MAAM;CAIlB;AACD;;;GAGG;AACH,MAAM,WAAW,OAAO,CACtB,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEtE;;;;;;;;;;OAUG;IACH,GAAG,CACD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,EAEpD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,GAAG,CACD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,EAEpD,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAE3C;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CACJ,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,EAEpD,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CACL,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,KACjD,OAAO,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/point-of-sale/types/storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAExD;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAG5B,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS;IAF7D,IAAI,SAAkB;gBAEpB,IAAI,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,EAClE,OAAO,EAAE,MAAM;CAIlB;AACD;;;GAGG;AACH,MAAM,WAAW,OAAO,CACtB,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEtE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAEhD;;;;;;;;;;OAUG;IACH,GAAG,CACD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,EAEpD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;OAMG;IACH,GAAG,CACD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,EAEpD,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAE3C;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;;;OAIG;IACH,MAAM,CACJ,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,EAEpD,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;OAIG;IACH,OAAO,CACL,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,IAAI,SAAS,MAAM,YAAY,GAAG,MAAM,YAAY,KACjD,OAAO,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CAC5C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,CAC7B,gBAAgB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACpE;IACF,QAAQ,EAAE,CAAC,IAAI,MAAM,gBAAgB,GAAG,kBAAkB,CACxD,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAChC;CACF,CAAC"}