@juo/blocks 1.15.0 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ExtensionRoot-C3lVJEBl.js → ExtensionRoot-DRpD5EcC.js} +24 -6
- package/dist/block-BjJztStr.js +993 -0
- package/dist/{block-VhmfGB3N.js → block-DnhzyZ1H.js} +38 -3
- package/dist/block.d.ts +56 -0
- package/dist/block.d.ts.map +1 -1
- package/dist/{bridge-xiKEzCGR.js → bridge-Mz0CqG6E.js} +39 -30
- package/dist/core.js +2429 -399
- package/dist/css-runtime-B7tZrBIp.js +749 -0
- package/dist/devtools/hook.d.ts +0 -5
- package/dist/devtools/hook.d.ts.map +1 -1
- package/dist/devtools/index.d.ts +0 -1
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/devtools/protocol.d.ts +15 -1
- package/dist/devtools/protocol.d.ts.map +1 -1
- package/dist/devtools.js +42 -9
- package/dist/editor/bridge.d.ts +7 -0
- package/dist/editor/bridge.d.ts.map +1 -1
- package/dist/editor/components.d.ts.map +1 -1
- package/dist/editor/main.d.ts +2 -1
- package/dist/editor/main.d.ts.map +1 -1
- package/dist/editor/messages.d.ts +13 -2
- package/dist/editor/messages.d.ts.map +1 -1
- package/dist/editor/overlays.d.ts +14 -0
- package/dist/editor/overlays.d.ts.map +1 -0
- package/dist/editor/overlays.test.d.ts +2 -0
- package/dist/editor/overlays.test.d.ts.map +1 -0
- package/dist/editor.js +52 -33
- package/dist/{gridstack-adapter-CDWbSpbt.js → gridstack-adapter-BGKGC-eO.js} +2 -2
- package/dist/main.d.ts +3 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/{morph-n4LMxOYo.js → morph-CT5hc5Qp.js} +1 -1
- package/dist/overlay-wrapper.d.ts +69 -0
- package/dist/overlay-wrapper.d.ts.map +1 -0
- package/dist/overlay-wrapper.test.d.ts +2 -0
- package/dist/overlay-wrapper.test.d.ts.map +1 -0
- package/dist/overlays/OverlayService.d.ts +34 -0
- package/dist/overlays/OverlayService.d.ts.map +1 -0
- package/dist/overlays/OverlayService.test.d.ts +2 -0
- package/dist/overlays/OverlayService.test.d.ts.map +1 -0
- package/dist/preact/block.d.ts.map +1 -1
- package/dist/preact/context.d.ts.map +1 -1
- package/dist/preact/context.test.d.ts +2 -0
- package/dist/preact/context.test.d.ts.map +1 -0
- package/dist/preact/signals.d.ts +19 -0
- package/dist/preact/signals.d.ts.map +1 -1
- package/dist/preact/useContextSubscription.test.d.ts +2 -0
- package/dist/preact/useContextSubscription.test.d.ts.map +1 -0
- package/dist/preact.js +33 -7
- package/dist/{project-gridstack-CM783oKI.js → project-gridstack-PxN_DIfP.js} +1 -1
- package/dist/react/block.d.ts.map +1 -1
- package/dist/react/context.d.ts.map +1 -1
- package/dist/react/context.test.d.ts +2 -0
- package/dist/react/context.test.d.ts.map +1 -0
- package/dist/react/signals.d.ts +19 -0
- package/dist/react/signals.d.ts.map +1 -1
- package/dist/react/useContextSubscription.test.d.ts +2 -0
- package/dist/react/useContextSubscription.test.d.ts.map +1 -0
- package/dist/react.js +40 -8
- package/dist/services/customer/adapter.d.ts +8 -0
- package/dist/services/customer/adapter.d.ts.map +1 -0
- package/dist/services/customer/customerService.d.ts +3 -2
- package/dist/services/customer/customerService.d.ts.map +1 -1
- package/dist/services/customer/index.d.ts +1 -0
- package/dist/services/customer/index.d.ts.map +1 -1
- package/dist/services/customer/types.d.ts +4 -1
- package/dist/services/customer/types.d.ts.map +1 -1
- package/dist/services/index.d.ts +4 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/login/adapter.d.ts +33 -0
- package/dist/services/login/adapter.d.ts.map +1 -0
- package/dist/services/login/index.d.ts +3 -1
- package/dist/services/login/index.d.ts.map +1 -1
- package/dist/services/login/loginService.d.ts +6 -2
- package/dist/services/login/loginService.d.ts.map +1 -1
- package/dist/services/order/adapter.d.ts +10 -0
- package/dist/services/order/adapter.d.ts.map +1 -0
- package/dist/services/order/index.d.ts +4 -0
- package/dist/services/order/index.d.ts.map +1 -0
- package/dist/services/order/orderService.d.ts +6 -0
- package/dist/services/order/orderService.d.ts.map +1 -0
- package/dist/services/order/orderService.test.d.ts +2 -0
- package/dist/services/order/orderService.test.d.ts.map +1 -0
- package/dist/services/{orders → order}/types.d.ts +3 -3
- package/dist/services/order/types.d.ts.map +1 -0
- package/dist/services/product/adapter.d.ts +27 -2
- package/dist/services/product/adapter.d.ts.map +1 -1
- package/dist/services/product/adapter.test.d.ts +2 -0
- package/dist/services/product/adapter.test.d.ts.map +1 -0
- package/dist/services/product/index.d.ts +1 -1
- package/dist/services/product/index.d.ts.map +1 -1
- package/dist/services/product/productService.d.ts.map +1 -1
- package/dist/services/product/types.d.ts +68 -0
- package/dist/services/product/types.d.ts.map +1 -1
- package/dist/services/schedules/adapter.d.ts +94 -0
- package/dist/services/schedules/adapter.d.ts.map +1 -0
- package/dist/services/schedules/adapter.test.d.ts +2 -0
- package/dist/services/schedules/adapter.test.d.ts.map +1 -0
- package/dist/services/schedules/apiSchedulesAdapter.test.d.ts +2 -0
- package/dist/services/schedules/apiSchedulesAdapter.test.d.ts.map +1 -0
- package/dist/services/schedules/index.d.ts +5 -0
- package/dist/services/schedules/index.d.ts.map +1 -0
- package/dist/services/schedules/schedulesService.d.ts +11 -0
- package/dist/services/schedules/schedulesService.d.ts.map +1 -0
- package/dist/services/schedules/schedulesService.test.d.ts +2 -0
- package/dist/services/schedules/schedulesService.test.d.ts.map +1 -0
- package/dist/services/schedules/types.d.ts +290 -0
- package/dist/services/schedules/types.d.ts.map +1 -0
- package/dist/services/settings/index.d.ts +3 -0
- package/dist/services/settings/index.d.ts.map +1 -0
- package/dist/services/settings/settingsService.d.ts +7 -0
- package/dist/services/settings/settingsService.d.ts.map +1 -0
- package/dist/services/settings/settingsService.test.d.ts +2 -0
- package/dist/services/settings/settingsService.test.d.ts.map +1 -0
- package/dist/services/settings/types.d.ts +35 -0
- package/dist/services/settings/types.d.ts.map +1 -0
- package/dist/services/shop/index.d.ts +3 -0
- package/dist/services/shop/index.d.ts.map +1 -0
- package/dist/services/shop/shopService.d.ts +12 -0
- package/dist/services/shop/shopService.d.ts.map +1 -0
- package/dist/services/shop/shopService.test.d.ts +2 -0
- package/dist/services/shop/shopService.test.d.ts.map +1 -0
- package/dist/services/shop/types.d.ts +7 -0
- package/dist/services/shop/types.d.ts.map +1 -0
- package/dist/services/subscription/adapter.d.ts +77 -2
- package/dist/services/subscription/adapter.d.ts.map +1 -1
- package/dist/services/subscription/adapter.test.d.ts +2 -0
- package/dist/services/subscription/adapter.test.d.ts.map +1 -0
- package/dist/services/subscription/index.d.ts +1 -1
- package/dist/services/subscription/index.d.ts.map +1 -1
- package/dist/services/subscription/subscriptionService.d.ts +1 -6
- package/dist/services/subscription/subscriptionService.d.ts.map +1 -1
- package/dist/services/subscription/types.d.ts +220 -9
- package/dist/services/subscription/types.d.ts.map +1 -1
- package/dist/services/subscription/types.test.d.ts +2 -0
- package/dist/services/subscription/types.test.d.ts.map +1 -0
- package/dist/shared/context.d.ts +10 -3
- package/dist/shared/context.d.ts.map +1 -1
- package/dist/shared/touchSignals.d.ts +17 -0
- package/dist/shared/touchSignals.d.ts.map +1 -0
- package/dist/shared/touchSignals.test.d.ts +2 -0
- package/dist/shared/touchSignals.test.d.ts.map +1 -0
- package/dist/theme-state.d.ts +2 -1
- package/dist/theme-state.d.ts.map +1 -1
- package/dist/theme-state.params.test.d.ts +2 -0
- package/dist/theme-state.params.test.d.ts.map +1 -0
- package/dist/theme-state.translations.test.d.ts +2 -0
- package/dist/theme-state.translations.test.d.ts.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/vue/block.d.ts.map +1 -1
- package/dist/vue/context.d.ts +1 -0
- package/dist/vue/context.d.ts.map +1 -1
- package/dist/vue.js +28 -15
- package/dist/web-components/ExtensionRoot.d.ts +1 -0
- package/dist/web-components/ExtensionRoot.d.ts.map +1 -1
- package/dist/web-components-editor.js +6 -5
- package/dist/web-components-runtime.js +3 -2
- package/package.json +1 -1
- package/dist/css-runtime-ClH0MEYr.js +0 -1570
- package/dist/devtools/instrumentation.d.ts +0 -47
- package/dist/devtools/instrumentation.d.ts.map +0 -1
- package/dist/index-JSv6UH_o.js +0 -169
- package/dist/services/orders/adapter.d.ts +0 -8
- package/dist/services/orders/adapter.d.ts.map +0 -1
- package/dist/services/orders/index.d.ts +0 -4
- package/dist/services/orders/index.d.ts.map +0 -1
- package/dist/services/orders/ordersService.d.ts +0 -6
- package/dist/services/orders/ordersService.d.ts.map +0 -1
- package/dist/services/orders/ordersService.test.d.ts +0 -2
- package/dist/services/orders/ordersService.test.d.ts.map +0 -1
- package/dist/services/orders/types.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsService.test.d.ts","sourceRoot":"","sources":["../../../src/services/settings/settingsService.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Signal } from '@preact/signals-core';
|
|
2
|
+
/**
|
|
3
|
+
* Slice covering RenewalSummary visibility flags.
|
|
4
|
+
* Future blocks widen this interface as they migrate.
|
|
5
|
+
*
|
|
6
|
+
* Convention: `undefined` means "default visible". Hosts should leave keys
|
|
7
|
+
* unset rather than seed `true` for visible-by-default actions, so consumers
|
|
8
|
+
* can render the default UX without the host having to know every flag.
|
|
9
|
+
*/
|
|
10
|
+
export interface RenewalSummarySettings {
|
|
11
|
+
renewNow?: boolean;
|
|
12
|
+
skip?: boolean;
|
|
13
|
+
reactivate?: boolean;
|
|
14
|
+
reactivateFailed?: boolean;
|
|
15
|
+
pause?: boolean;
|
|
16
|
+
resume?: boolean;
|
|
17
|
+
cancel?: boolean;
|
|
18
|
+
changeFrequency?: boolean;
|
|
19
|
+
changeRenewalDate?: boolean;
|
|
20
|
+
customDeliveryEnabled?: boolean;
|
|
21
|
+
customChangePlanMessage?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface Settings extends RenewalSummarySettings {
|
|
24
|
+
editQuantity?: boolean;
|
|
25
|
+
editVariant?: boolean;
|
|
26
|
+
swap?: boolean;
|
|
27
|
+
removeLine?: boolean;
|
|
28
|
+
addLine?: boolean;
|
|
29
|
+
redeemDiscount?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface SettingsService {
|
|
32
|
+
current: Signal<Settings>;
|
|
33
|
+
get<K extends keyof Settings>(key: K): Settings[K] | undefined;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/settings/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,QAAS,SAAQ,sBAAsB;IAGtD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/shop/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ContextType } from '../../context';
|
|
2
|
+
import { ShopService } from './types';
|
|
3
|
+
type CreateShopServiceOptions = {
|
|
4
|
+
/** Called once at creation; hosts update `contactEmail` in a `watchEffect`. */
|
|
5
|
+
getContactEmail: () => string;
|
|
6
|
+
};
|
|
7
|
+
export declare function createShopService(options: CreateShopServiceOptions): ContextType<typeof ShopServiceContext>;
|
|
8
|
+
export declare const ShopServiceContext: {
|
|
9
|
+
__context__: ShopService;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=shopService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shopService.d.ts","sourceRoot":"","sources":["../../../src/services/shop/shopService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,KAAK,wBAAwB,GAAG;IAC9B,+EAA+E;IAC/E,eAAe,EAAE,MAAM,MAAM,CAAC;CAC/B,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAIxC;AAED,eAAO,MAAM,kBAAkB;;CAA8C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shopService.test.d.ts","sourceRoot":"","sources":["../../../src/services/shop/shopService.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Signal } from '@preact/signals-core';
|
|
2
|
+
/** Minimal shop-level data needed by blocks. Widen as blocks adopt it. */
|
|
3
|
+
export interface ShopService {
|
|
4
|
+
/** Storefront contact email, e.g. for the SEPA early-payment overlay. */
|
|
5
|
+
contactEmail: Signal<string>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/shop/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CAC9B"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiFetcher, PaginatedList, Result } from '../../utils';
|
|
2
|
+
import { Subscription, SellingPlan, SellingPlanInterval, SearchOptions, PostableSubscriptionItem, UpdateSubscriptionItem, UpdateBoxItem, LastOrder, RenewNowResult, UpsellProduct } from './types';
|
|
2
3
|
import { ApplyDiscountError, DiscountRejectionReason, RemoveDiscountError } from './discountErrors';
|
|
3
|
-
import {
|
|
4
|
+
import { ProductAdapter } from '../product/adapter';
|
|
4
5
|
/**
|
|
5
6
|
* Adapter interface for subscription.
|
|
6
7
|
* Implementations should handle API calls, error handling, and data transformation.
|
|
7
8
|
*/
|
|
8
9
|
export interface SubscriptionAdapter {
|
|
9
10
|
search(options?: SearchOptions): Promise<Result<PaginatedList<Subscription>>>;
|
|
11
|
+
/**
|
|
12
|
+
* Returns the full list of the customer's subscriptions for cross-subscription
|
|
13
|
+
* views (the "other subscriptions" list and the product strip), ordered with
|
|
14
|
+
* active/paused first. Unlike `search` (a single v1 page sorted createdAt:asc),
|
|
15
|
+
* this is sourced from the richer legacy list endpoint so active subscriptions
|
|
16
|
+
* are never paginated out behind older canceled ones. Optional: when an adapter
|
|
17
|
+
* does not implement it, the service falls back to `search`.
|
|
18
|
+
*/
|
|
19
|
+
listAll?(): Promise<Result<Subscription[]>>;
|
|
10
20
|
getById(id: string): Promise<Result<Subscription | null>>;
|
|
21
|
+
getLastOrder(params: {
|
|
22
|
+
subscriptionId: string;
|
|
23
|
+
}): Promise<Result<LastOrder | null>>;
|
|
11
24
|
addItem(params: {
|
|
12
25
|
subscriptionId: string;
|
|
13
26
|
item: PostableSubscriptionItem;
|
|
@@ -16,6 +29,31 @@ export interface SubscriptionAdapter {
|
|
|
16
29
|
subscriptionId: string;
|
|
17
30
|
itemId: string;
|
|
18
31
|
}): Promise<Result>;
|
|
32
|
+
updateItem(params: {
|
|
33
|
+
subscriptionId: string;
|
|
34
|
+
lineId: string;
|
|
35
|
+
update: UpdateSubscriptionItem;
|
|
36
|
+
}): Promise<Result>;
|
|
37
|
+
skipLineItem(params: {
|
|
38
|
+
subscriptionId: string;
|
|
39
|
+
lineId: string;
|
|
40
|
+
nextBillingDate: string;
|
|
41
|
+
}): Promise<Result>;
|
|
42
|
+
updateBoxItems(params: {
|
|
43
|
+
subscriptionId: string;
|
|
44
|
+
parentId: string;
|
|
45
|
+
items: UpdateBoxItem[];
|
|
46
|
+
shippingMethodHandle?: string;
|
|
47
|
+
}): Promise<Result>;
|
|
48
|
+
updateItemAttributes(params: {
|
|
49
|
+
subscriptionId: string;
|
|
50
|
+
lineId: string;
|
|
51
|
+
customAttributes: Record<string, string>;
|
|
52
|
+
}): Promise<Result>;
|
|
53
|
+
updateAttributes(params: {
|
|
54
|
+
subscriptionId: string;
|
|
55
|
+
customAttributes: Record<string, string>;
|
|
56
|
+
}): Promise<Result>;
|
|
19
57
|
addDiscount(params: {
|
|
20
58
|
subscriptionId: string;
|
|
21
59
|
code: string;
|
|
@@ -28,6 +66,16 @@ export interface SubscriptionAdapter {
|
|
|
28
66
|
subscriptionId: string;
|
|
29
67
|
newDate: string;
|
|
30
68
|
}): Promise<Result<Subscription>>;
|
|
69
|
+
/**
|
|
70
|
+
* Replace the customer-visible custom attributes on a subscription. `customAttributes`
|
|
71
|
+
* is the complete desired set of customer-editable keys — keys omitted are removed.
|
|
72
|
+
* Internal (`_`-prefixed) / reserved keys are always preserved server-side and must
|
|
73
|
+
* not be sent (the API rejects them with 400).
|
|
74
|
+
*/
|
|
75
|
+
updateCustomAttributes(params: {
|
|
76
|
+
subscriptionId: string;
|
|
77
|
+
customAttributes: Record<string, string>;
|
|
78
|
+
}): Promise<Result<Subscription>>;
|
|
31
79
|
resume(params: {
|
|
32
80
|
subscriptionId: string;
|
|
33
81
|
}): Promise<Result<Subscription>>;
|
|
@@ -41,10 +89,28 @@ export interface SubscriptionAdapter {
|
|
|
41
89
|
subscriptionId: string;
|
|
42
90
|
reason?: string;
|
|
43
91
|
}): Promise<Result<Subscription>>;
|
|
92
|
+
renewNow(params: {
|
|
93
|
+
subscriptionId: string;
|
|
94
|
+
renewalId?: string;
|
|
95
|
+
retry?: boolean;
|
|
96
|
+
}): Promise<Result<RenewNowResult>>;
|
|
97
|
+
changeFrequency(params: {
|
|
98
|
+
subscriptionId: string;
|
|
99
|
+
plan: string | SellingPlanInterval;
|
|
100
|
+
}): Promise<Result<Subscription>>;
|
|
44
101
|
getAvailablePlans(params: {
|
|
45
102
|
subscriptionId: string;
|
|
46
103
|
}): Promise<Result<SellingPlan[]>>;
|
|
47
104
|
getDefaultSubscriptionId(): Promise<Result<string | null>>;
|
|
105
|
+
getUpsellProducts?(params: {
|
|
106
|
+
subscriptionId: string;
|
|
107
|
+
}): Promise<Result<UpsellProduct[]>>;
|
|
108
|
+
addUpsellProduct?(params: {
|
|
109
|
+
subscriptionId: string;
|
|
110
|
+
variantId: string;
|
|
111
|
+
quantity: number;
|
|
112
|
+
oneTime?: boolean;
|
|
113
|
+
}): Promise<Result>;
|
|
48
114
|
}
|
|
49
115
|
export interface MockSubscriptionAdapterOptions {
|
|
50
116
|
addDiscountBehavior?: {
|
|
@@ -62,6 +128,15 @@ export interface MockSubscriptionAdapterOptions {
|
|
|
62
128
|
kind: "error";
|
|
63
129
|
error: "NETWORK" | "UNKNOWN" | "SUBSCRIPTION_NOT_FOUND" | "DISCOUNT_NOT_FOUND";
|
|
64
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* Optional product source used by `addItem` to resolve a real title/price for
|
|
133
|
+
* an added line. Without it, added lines fall back to a placeholder title and
|
|
134
|
+
* a 0.00 price (the two mock stores are otherwise independent). Pass the same
|
|
135
|
+
* `createMockProductAdapter()` instance that backs the ProductService so the
|
|
136
|
+
* added line matches what the product picker showed.
|
|
137
|
+
*/
|
|
138
|
+
productAdapter?: Pick<ProductAdapter, "getByVariantId" | "getById">;
|
|
65
139
|
}
|
|
66
140
|
export declare function createMockSubscriptionAdapter(options?: MockSubscriptionAdapterOptions): SubscriptionAdapter;
|
|
141
|
+
export declare function createApiSubscriptionAdapter(fetcher: ApiFetcher): SubscriptionAdapter;
|
|
67
142
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,wBAAwB,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/adapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { SubscriptionAdapter, MockSubscriptionAdapterOptions } from './adapter';
|
|
2
|
-
export { createMockSubscriptionAdapter } from './adapter';
|
|
2
|
+
export { createMockSubscriptionAdapter, createApiSubscriptionAdapter } from './adapter';
|
|
3
3
|
export { createSubscriptionService, SubscriptionServiceContext } from './subscriptionService';
|
|
4
4
|
export * from './types';
|
|
5
5
|
export * from './discountErrors';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAExF,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAE9F,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import { ContextType } from '../../context';
|
|
2
1
|
import { SubscriptionAdapter } from './adapter';
|
|
3
2
|
import { SubscriptionService } from './types';
|
|
4
3
|
export declare const SubscriptionServiceContext: {
|
|
5
4
|
__context__: SubscriptionService;
|
|
6
5
|
};
|
|
7
|
-
|
|
8
|
-
* Creates a subscription service that uses the provided adapter for data operations.
|
|
9
|
-
* The adapter pattern decouples the service from specific SDK implementations.
|
|
10
|
-
*/
|
|
11
|
-
export declare function createSubscriptionService(adapter: SubscriptionAdapter): ContextType<typeof SubscriptionServiceContext>;
|
|
6
|
+
export declare function createSubscriptionService(adapter: SubscriptionAdapter): SubscriptionService;
|
|
12
7
|
//# sourceMappingURL=subscriptionService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptionService.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/subscriptionService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subscriptionService.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/subscriptionService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAMV,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,0BAA0B;;CACsB,CAAC;AA2B9D,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,mBAAmB,CA0LrB"}
|
|
@@ -8,6 +8,27 @@ export interface SubscriptionItem {
|
|
|
8
8
|
quantity: number;
|
|
9
9
|
price: PriceWithCurrency;
|
|
10
10
|
nextDeliveryDate?: Date | null;
|
|
11
|
+
/** Optional fields populated when host carries the richer SDK shape (e.g. RenewalSummary). */
|
|
12
|
+
isUpsell?: boolean;
|
|
13
|
+
isVirtual?: boolean;
|
|
14
|
+
nextBillingDate?: string | null;
|
|
15
|
+
lineDiscountedPrice?: PriceWithCurrency;
|
|
16
|
+
currentPrice?: PriceWithCurrency;
|
|
17
|
+
variantAvailableForSale?: boolean;
|
|
18
|
+
billingPolicy?: SellingPlanInterval | null;
|
|
19
|
+
deliveryPolicy?: SellingPlanInterval | null;
|
|
20
|
+
/** Human-readable product/line title (legacy line.title). */
|
|
21
|
+
title?: string;
|
|
22
|
+
variantTitle?: string;
|
|
23
|
+
recurringCycleLimit?: number | null;
|
|
24
|
+
/** Box grouping: parent subscription LINE id (primary) and parent PRODUCT id (fallback). */
|
|
25
|
+
parentLineId?: string;
|
|
26
|
+
parentProductId?: string;
|
|
27
|
+
parentProductHandle?: string;
|
|
28
|
+
variantImage?: {
|
|
29
|
+
url: string;
|
|
30
|
+
altText?: string;
|
|
31
|
+
};
|
|
11
32
|
customAttributes?: Array<{
|
|
12
33
|
key: string;
|
|
13
34
|
value: string;
|
|
@@ -17,6 +38,16 @@ export interface PostableSubscriptionItem {
|
|
|
17
38
|
variantId: string;
|
|
18
39
|
quantity: number;
|
|
19
40
|
}
|
|
41
|
+
export interface UpdateSubscriptionItem {
|
|
42
|
+
variantId?: string;
|
|
43
|
+
quantity?: number;
|
|
44
|
+
billingPolicy?: SellingPlanInterval;
|
|
45
|
+
shippingMethodHandle?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface UpdateBoxItem {
|
|
48
|
+
variantId: string;
|
|
49
|
+
quantity: number;
|
|
50
|
+
}
|
|
20
51
|
export interface SubscriptionDiscount {
|
|
21
52
|
id: string;
|
|
22
53
|
type: "percentage" | "fixed_amount";
|
|
@@ -24,6 +55,15 @@ export interface SubscriptionDiscount {
|
|
|
24
55
|
code?: string;
|
|
25
56
|
description?: string;
|
|
26
57
|
}
|
|
58
|
+
export interface ShippingMethodOption {
|
|
59
|
+
handle: string;
|
|
60
|
+
title: string;
|
|
61
|
+
price?: PriceWithCurrency;
|
|
62
|
+
}
|
|
63
|
+
export interface DeliveryMethodConflict {
|
|
64
|
+
code: "DELIVERY_METHOD_CONFLICT";
|
|
65
|
+
availableShippingMethods: ShippingMethodOption[];
|
|
66
|
+
}
|
|
27
67
|
export interface Subscription {
|
|
28
68
|
id: string;
|
|
29
69
|
items: SubscriptionItem[];
|
|
@@ -43,12 +83,115 @@ export interface SellingPlanInterval {
|
|
|
43
83
|
intervalCount: number;
|
|
44
84
|
interval: string;
|
|
45
85
|
}
|
|
86
|
+
export interface SubscriptionBillingPolicy extends SellingPlanInterval {
|
|
87
|
+
minCycles?: number;
|
|
88
|
+
}
|
|
89
|
+
export interface SubscriptionDeliveryAnchor {
|
|
90
|
+
day: number;
|
|
91
|
+
month?: number;
|
|
92
|
+
type: "MONTHDAY" | "WEEKDAY" | "YEARDAY";
|
|
93
|
+
}
|
|
94
|
+
export interface SubscriptionDeliveryPolicy extends SellingPlanInterval {
|
|
95
|
+
anchors?: SubscriptionDeliveryAnchor[];
|
|
96
|
+
}
|
|
97
|
+
export interface SubscriptionPaymentInstrument {
|
|
98
|
+
type: string;
|
|
99
|
+
brand?: string;
|
|
100
|
+
maskedNumber?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface SubscriptionPaymentMethod {
|
|
103
|
+
id: string;
|
|
104
|
+
instrument?: SubscriptionPaymentInstrument | null;
|
|
105
|
+
active?: boolean;
|
|
106
|
+
isRecurring?: boolean;
|
|
107
|
+
}
|
|
108
|
+
export interface SubscriptionDeliveryAddress {
|
|
109
|
+
firstName?: string;
|
|
110
|
+
lastName?: string;
|
|
111
|
+
address1?: string;
|
|
112
|
+
address2?: string;
|
|
113
|
+
zip?: string;
|
|
114
|
+
city?: string;
|
|
115
|
+
countryCode?: string;
|
|
116
|
+
province?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface SubscriptionDeliveryOption {
|
|
119
|
+
title?: string;
|
|
120
|
+
presentmentTitle?: string;
|
|
121
|
+
description?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Delivery method for a subscription. Populated by the real adapter from the
|
|
125
|
+
* legacy list endpoint (v1 does not return it). Used by ContractSelect to show
|
|
126
|
+
* the delivery address and method.
|
|
127
|
+
*/
|
|
128
|
+
export interface SubscriptionDeliveryMethod {
|
|
129
|
+
address?: SubscriptionDeliveryAddress | null;
|
|
130
|
+
shippingOption?: SubscriptionDeliveryOption | null;
|
|
131
|
+
pickupOption?: SubscriptionDeliveryOption | null;
|
|
132
|
+
localDeliveryOption?: SubscriptionDeliveryOption | null;
|
|
133
|
+
}
|
|
134
|
+
export interface SubscriptionBillingAttempt {
|
|
135
|
+
date: string;
|
|
136
|
+
attempt?: number;
|
|
137
|
+
ready?: boolean;
|
|
138
|
+
}
|
|
139
|
+
export interface SubscriptionRenewal {
|
|
140
|
+
id: string;
|
|
141
|
+
/** True while the renewal is actively being processed — used to disable renew-now. */
|
|
142
|
+
isInActiveProcessState?: boolean;
|
|
143
|
+
}
|
|
144
|
+
export interface SubscriptionPausePeriod {
|
|
145
|
+
start: string;
|
|
146
|
+
end: string;
|
|
147
|
+
}
|
|
148
|
+
export interface Subscription {
|
|
149
|
+
id: string;
|
|
150
|
+
customerId: string;
|
|
151
|
+
items: SubscriptionItem[];
|
|
152
|
+
discounts: SubscriptionDiscount[];
|
|
153
|
+
status: "active" | "paused" | "canceled" | "expired" | "failed";
|
|
154
|
+
nextDeliveryDate: Date | null;
|
|
155
|
+
frequency: string;
|
|
156
|
+
createdAt: string;
|
|
157
|
+
updatedAt: string;
|
|
158
|
+
/** Optional fields populated by hosts that carry the richer SDK shape. */
|
|
159
|
+
billingPolicy?: SubscriptionBillingPolicy;
|
|
160
|
+
deliveryPolicy?: SubscriptionDeliveryPolicy;
|
|
161
|
+
nextBillingDate?: string | null;
|
|
162
|
+
nextBillingAttempt?: SubscriptionBillingAttempt | null;
|
|
163
|
+
lastBillingAttempt?: SubscriptionBillingAttempt | null;
|
|
164
|
+
nextFulfillment?: string | null;
|
|
165
|
+
estimatedOrderDate?: string | null;
|
|
166
|
+
customerPaymentMethod?: SubscriptionPaymentMethod | null;
|
|
167
|
+
requiredBillingCyclesLeft?: number;
|
|
168
|
+
renewal?: SubscriptionRenewal | null;
|
|
169
|
+
pausePeriod?: SubscriptionPausePeriod | null;
|
|
170
|
+
lastPaymentStatus?: "succeeded" | "failed" | "pending" | string;
|
|
171
|
+
/** False when the subscription contains a membership product (from the legacy endpoint). Undefined = unknown → treat as editable. */
|
|
172
|
+
isEditable?: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Human-readable sequential reference number (e.g. "1042"). Populated by the real adapter
|
|
175
|
+
* from the customer v1 API `serial` field. Used by ContractSelect for the subscription
|
|
176
|
+
* reference display.
|
|
177
|
+
*/
|
|
178
|
+
serial?: string;
|
|
179
|
+
/**
|
|
180
|
+
* Delivery address + shipping/pickup option. Populated by the real adapter from
|
|
181
|
+
* the legacy list endpoint (v1 does not return it). Used by ContractSelect.
|
|
182
|
+
*/
|
|
183
|
+
deliveryMethod?: SubscriptionDeliveryMethod | null;
|
|
184
|
+
}
|
|
46
185
|
export interface SellingPlan {
|
|
47
186
|
id: string;
|
|
48
187
|
name: string;
|
|
49
188
|
billingPolicy: SellingPlanInterval;
|
|
50
189
|
deliveryPolicy: SellingPlanInterval;
|
|
51
190
|
}
|
|
191
|
+
export interface LastOrder {
|
|
192
|
+
id: string;
|
|
193
|
+
createdAt: string;
|
|
194
|
+
}
|
|
52
195
|
export interface SubscriptionFilter {
|
|
53
196
|
id?: string;
|
|
54
197
|
serial?: string;
|
|
@@ -67,15 +210,33 @@ export interface SearchOptions {
|
|
|
67
210
|
after: string;
|
|
68
211
|
};
|
|
69
212
|
}
|
|
70
|
-
export type
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
213
|
+
export type RenewNowResult = {
|
|
214
|
+
nextActionUrl?: string;
|
|
215
|
+
result?: "success" | "pending" | "failure";
|
|
216
|
+
};
|
|
217
|
+
export interface UpsellProduct {
|
|
218
|
+
id: string;
|
|
219
|
+
variantId: string;
|
|
220
|
+
title: string;
|
|
221
|
+
imageUrl?: string;
|
|
222
|
+
price: PriceWithCurrency;
|
|
223
|
+
description?: string;
|
|
74
224
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
225
|
+
* True when the upsell rule is recurring (added to every renewal).
|
|
226
|
+
* False when it is a one-time add (renewalLimit=1 on the order).
|
|
227
|
+
* Populated by the real adapter from the `variants[].recurring` field in the
|
|
228
|
+
* `/customer/subscriptions/{id}/upsell-products` response (PreparedProductSchema).
|
|
77
229
|
*/
|
|
230
|
+
recurring?: boolean;
|
|
231
|
+
}
|
|
232
|
+
export type SubscriptionService = {
|
|
78
233
|
current: Signal<Subscription | null>;
|
|
234
|
+
hasPendingBilling: ReadonlySignal<boolean>;
|
|
235
|
+
/**
|
|
236
|
+
* Last order placed for the host's current subscription (or `null` when none / not loaded).
|
|
237
|
+
* Hydrated alongside `current` by the host.
|
|
238
|
+
*/
|
|
239
|
+
lastOrder: Signal<LastOrder | null>;
|
|
79
240
|
/**
|
|
80
241
|
* Monotonically-increasing counter that bumps after every successful
|
|
81
242
|
* `addDiscount`/`removeDiscount`. Consumers (e.g. the customer portal page)
|
|
@@ -83,23 +244,73 @@ export type SubscriptionService = {
|
|
|
83
244
|
* subscription's discounts.
|
|
84
245
|
*/
|
|
85
246
|
discountsChangedAt: ReadonlySignal<number>;
|
|
247
|
+
search(options?: SearchOptions): Promise<Result<PaginatedList<Subscription>>>;
|
|
248
|
+
/**
|
|
249
|
+
* Full cross-subscription list (active/paused first) for the "other subscriptions"
|
|
250
|
+
* list and product strip. Sourced from the legacy list endpoint by the real adapter
|
|
251
|
+
* so active subscriptions are never paginated out. Falls back to `search` when the
|
|
252
|
+
* adapter does not implement `listAll` (e.g. the editor mock).
|
|
253
|
+
*/
|
|
254
|
+
listAll(): Promise<Result<Subscription[]>>;
|
|
255
|
+
getById(id: string): Promise<Result<Subscription | null>>;
|
|
256
|
+
getCurrentSubscriptionId(): string | null;
|
|
257
|
+
getAvailablePlans(subscriptionId: string): Promise<Result<SellingPlan[]>>;
|
|
258
|
+
getDefaultSubscriptionId(): Promise<Result<string | null>>;
|
|
259
|
+
getUpsellProducts(params: {
|
|
260
|
+
subscriptionId: string;
|
|
261
|
+
}): Promise<Result<UpsellProduct[]>>;
|
|
86
262
|
/**
|
|
87
263
|
* Monotonically-increasing counter that bumps after every successful
|
|
88
|
-
* `addItem`/`removeItem`. Consumers (e.g. the customer portal page) can watch
|
|
264
|
+
* `addItem`/`removeItem`/`updateItem`. Consumers (e.g. the customer portal page) can watch
|
|
89
265
|
* this signal to re-fetch any non-blocks state that depends on the
|
|
90
266
|
* subscription's line items.
|
|
91
267
|
*/
|
|
92
268
|
itemsChangedAt: ReadonlySignal<number>;
|
|
93
269
|
addItem(subscriptionId: string, item: PostableSubscriptionItem): Promise<Result>;
|
|
94
270
|
removeItem(subscriptionId: string, itemId: string): Promise<Result>;
|
|
271
|
+
updateItem(subscriptionId: string, lineId: string, update: UpdateSubscriptionItem): Promise<Result>;
|
|
272
|
+
updateItemAttributes(subscriptionId: string, lineId: string, customAttributes: Record<string, string>): Promise<Result>;
|
|
273
|
+
updateAttributes(subscriptionId: string, customAttributes: Record<string, string>): Promise<Result>;
|
|
274
|
+
skipLineItem(subscriptionId: string, lineId: string, nextBillingDate: string): Promise<Result>;
|
|
275
|
+
updateBoxItems(subscriptionId: string, params: {
|
|
276
|
+
parentId: string;
|
|
277
|
+
items: UpdateBoxItem[];
|
|
278
|
+
shippingMethodHandle?: string;
|
|
279
|
+
}): Promise<Result>;
|
|
95
280
|
addDiscount(code: string, subscriptionId?: string): Promise<Result<void, ApplyDiscountError>>;
|
|
96
281
|
removeDiscount(discountId: string, subscriptionId?: string): Promise<Result<void, RemoveDiscountError>>;
|
|
282
|
+
addUpsellProduct(params: {
|
|
283
|
+
subscriptionId: string;
|
|
284
|
+
variantId: string;
|
|
285
|
+
quantity: number;
|
|
286
|
+
oneTime?: boolean;
|
|
287
|
+
}): Promise<Result>;
|
|
97
288
|
reschedule(subscriptionId: string, newDate: string): Promise<Result<Subscription>>;
|
|
289
|
+
/**
|
|
290
|
+
* Replace the subscription's customer-visible custom attributes. `customAttributes`
|
|
291
|
+
* is the complete desired set — omitted keys are removed. Internal (`_`-prefixed) /
|
|
292
|
+
* reserved keys are preserved server-side and must not be included.
|
|
293
|
+
*/
|
|
294
|
+
updateCustomAttributes(subscriptionId: string, customAttributes: Record<string, string>): Promise<Result<Subscription>>;
|
|
98
295
|
resume(subscriptionId: string): Promise<Result<Subscription>>;
|
|
99
296
|
pause(subscriptionId: string): Promise<Result<Subscription>>;
|
|
100
297
|
reactivate(subscriptionId: string): Promise<Result<Subscription>>;
|
|
101
298
|
cancel(subscriptionId: string, reason?: string): Promise<Result<Subscription>>;
|
|
102
|
-
|
|
103
|
-
|
|
299
|
+
/**
|
|
300
|
+
* Renew now. Adapter shape is split by stage:
|
|
301
|
+
* - `retry: true` → POST /customer/subscriptions/{contractId}/retry
|
|
302
|
+
* - `renewalId` present, no retry → POST /customer/renewals/{renewalId}/renew
|
|
303
|
+
* - default → POST /customer/subscriptions/{contractId}/order-now
|
|
304
|
+
* Caller decides whether to chain stages based on `nextActionUrl` presence.
|
|
305
|
+
*/
|
|
306
|
+
renewNow(params: {
|
|
307
|
+
subscriptionId: string;
|
|
308
|
+
renewalId?: string;
|
|
309
|
+
retry?: boolean;
|
|
310
|
+
}): Promise<Result<RenewNowResult>>;
|
|
311
|
+
/** Change subscription frequency: a selling plan id, or a custom delivery interval. */
|
|
312
|
+
changeFrequency(subscriptionId: string, plan: string | SellingPlanInterval): Promise<Result<Subscription>>;
|
|
313
|
+
/** Re-fetch `current` and `lastOrder` from the most recent in-focus subscription. */
|
|
314
|
+
reload(): Promise<void>;
|
|
104
315
|
};
|
|
105
316
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,iBAAiB,CAAC;IACzB,gBAAgB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,GAAG,cAAc,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChE,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,mBAAmB,CAAC;IACnC,cAAc,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../src/services/subscription/types.test.ts"],"names":[],"mappings":""}
|
package/dist/shared/context.d.ts
CHANGED
|
@@ -6,11 +6,18 @@ export type Wrap<T> = T extends Signal<infer V> ? [V, (value: V) => void] : T ex
|
|
|
6
6
|
[K in keyof T]: Wrap<T[K]>;
|
|
7
7
|
} : T;
|
|
8
8
|
/**
|
|
9
|
-
* Wraps a context value, converting
|
|
9
|
+
* Wraps a context value, converting signal props to plain `[value, setter]`
|
|
10
|
+
* state tuples.
|
|
11
|
+
*
|
|
12
|
+
* The proxy is fully synchronous and hook-free. Reactivity is provided
|
|
13
|
+
* separately: `useContext` (react/preact) installs one coarse-grained
|
|
14
|
+
* subscription per context via `useContextSubscription`, which rerenders the
|
|
15
|
+
* component when any signal in the context changes — covering both tuple
|
|
16
|
+
* reads and method-internal signal reads. Keeping hooks out of the proxy
|
|
17
|
+
* makes double reads, conditional reads, and event-handler reads all legal.
|
|
10
18
|
*
|
|
11
19
|
* @param obj - The context value to wrap
|
|
12
|
-
* @param toState - Function to convert a signal to framework state tuple
|
|
13
20
|
* @returns The wrapped context value
|
|
14
21
|
*/
|
|
15
|
-
export declare function wrapContext<T>(obj: T
|
|
22
|
+
export declare function wrapContext<T>(obj: T): Wrap<T>;
|
|
16
23
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/shared/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAC3C,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GACvB,CAAC,SAAS,QAAQ,GAClB,CAAC,GACD,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAC1B;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B,GACD,CAAC,CAAC;AAEN
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/shared/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAC3C,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GACvB,CAAC,SAAS,QAAQ,GAClB,CAAC,GACD,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAC1B;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3B,GACD,CAAC,CAAC;AAEN;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CA4C9C"}
|