@juo/blocks 1.14.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ExtensionRoot-CRJx0Dtr.js → ExtensionRoot-C3lVJEBl.js} +9 -2
- package/dist/{block-VhmfGB3N.js → block-dVP4Rqgz.js} +9 -0
- package/dist/block.d.ts.map +1 -1
- package/dist/block.devtools.test.d.ts +2 -0
- package/dist/block.devtools.test.d.ts.map +1 -0
- package/dist/{bridge-D838SWmN.js → bridge-xiKEzCGR.js} +30 -30
- package/dist/context.d.ts.map +1 -1
- package/dist/context.devtools.test.d.ts +2 -0
- package/dist/context.devtools.test.d.ts.map +1 -0
- package/dist/core.js +2390 -465
- package/dist/{css-runtime-DWytAzZ5.js → css-runtime-ClH0MEYr.js} +151 -113
- package/dist/devtools/env.d.ts +3 -0
- package/dist/devtools/env.d.ts.map +1 -0
- package/dist/devtools/hook.d.ts +40 -0
- package/dist/devtools/hook.d.ts.map +1 -0
- package/dist/devtools/index.d.ts +5 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/instrumentation.d.ts +47 -0
- package/dist/devtools/instrumentation.d.ts.map +1 -0
- package/dist/devtools/protocol.d.ts +77 -0
- package/dist/devtools/protocol.d.ts.map +1 -0
- package/dist/devtools.js +11 -0
- package/dist/editor/components.d.ts.map +1 -1
- package/dist/editor/layout-command-emitter.d.ts +6 -0
- package/dist/editor/layout-command-emitter.d.ts.map +1 -1
- package/dist/editor/main.d.ts.map +1 -1
- package/dist/editor/messages.d.ts +6 -0
- package/dist/editor/messages.d.ts.map +1 -1
- package/dist/editor.js +74 -67
- package/dist/{gridstack-adapter-DreG3XnB.js → gridstack-adapter-CDWbSpbt.js} +15 -16
- package/dist/index-JSv6UH_o.js +169 -0
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/insert.d.ts +14 -11
- package/dist/layout/insert.d.ts.map +1 -1
- package/dist/layout/override.d.ts +10 -0
- package/dist/layout/override.d.ts.map +1 -0
- package/dist/layout/override.test.d.ts +2 -0
- package/dist/layout/override.test.d.ts.map +1 -0
- package/dist/layout/project-css.d.ts.map +1 -1
- package/dist/layout/reconcile.d.ts +4 -3
- package/dist/layout/reconcile.d.ts.map +1 -1
- package/dist/{morph-Dj-xvrwt.js → morph-n4LMxOYo.js} +1 -1
- package/dist/preact/block.d.ts.map +1 -1
- package/dist/preact.js +16 -12
- package/dist/{project-gridstack-DYLMKSH1.js → project-gridstack-CM783oKI.js} +1 -1
- package/dist/react/block.d.ts.map +1 -1
- package/dist/react.js +15 -11
- package/dist/registry.devtools.test.d.ts +2 -0
- package/dist/registry.devtools.test.d.ts.map +1 -0
- 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 +3 -0
- 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 +9 -0
- package/dist/services/order/adapter.d.ts.map +1 -0
- package/dist/services/order/index.d.ts +5 -0
- package/dist/services/order/index.d.ts.map +1 -0
- package/dist/services/order/orderService.d.ts +7 -0
- package/dist/services/order/orderService.d.ts.map +1 -0
- package/dist/services/order/types.d.ts +21 -0
- package/dist/services/order/types.d.ts.map +1 -0
- package/dist/services/orders/adapter.d.ts +2 -0
- package/dist/services/orders/adapter.d.ts.map +1 -1
- package/dist/services/orders/index.d.ts +1 -1
- package/dist/services/orders/index.d.ts.map +1 -1
- 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.map +1 -1
- 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 +34 -6
- package/dist/web-components/ExtensionRoot.d.ts.map +1 -1
- package/dist/web-components/editor/editor-layout-controller.d.ts.map +1 -1
- package/dist/web-components/editor/gridstack-adapter.d.ts.map +1 -1
- package/dist/web-components/layout-mode-adapter.d.ts +6 -0
- package/dist/web-components/layout-mode-adapter.d.ts.map +1 -1
- package/dist/web-components-editor.js +11 -6
- package/dist/web-components-runtime.js +2 -2
- package/package.json +5 -1
|
@@ -1,4 +1,33 @@
|
|
|
1
1
|
import { Image, PaginatedList, PriceWithCurrency } from '../../utils';
|
|
2
|
+
export interface AvailableProductVariant {
|
|
3
|
+
id: string;
|
|
4
|
+
availableForSale: boolean;
|
|
5
|
+
title: string;
|
|
6
|
+
currentPrice: {
|
|
7
|
+
amount: number;
|
|
8
|
+
currencyCode: string;
|
|
9
|
+
};
|
|
10
|
+
basePrice: {
|
|
11
|
+
amount: number;
|
|
12
|
+
currencyCode: string;
|
|
13
|
+
};
|
|
14
|
+
image?: {
|
|
15
|
+
url: string;
|
|
16
|
+
altText?: string;
|
|
17
|
+
};
|
|
18
|
+
recurring?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface AvailableProduct {
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
description: string;
|
|
24
|
+
featuredImage?: {
|
|
25
|
+
url: string;
|
|
26
|
+
altText?: string;
|
|
27
|
+
};
|
|
28
|
+
hasOnlyDefaultVariant: boolean;
|
|
29
|
+
variants: AvailableProductVariant[];
|
|
30
|
+
}
|
|
2
31
|
export interface Product {
|
|
3
32
|
id: string;
|
|
4
33
|
title: string;
|
|
@@ -7,6 +36,7 @@ export interface Product {
|
|
|
7
36
|
collections: {
|
|
8
37
|
handle: string;
|
|
9
38
|
}[];
|
|
39
|
+
metadata?: Record<string, unknown>;
|
|
10
40
|
}
|
|
11
41
|
export interface PurchaseOption {
|
|
12
42
|
name: string;
|
|
@@ -23,10 +53,33 @@ export interface ProductVariant {
|
|
|
23
53
|
price: PriceWithCurrency;
|
|
24
54
|
subscriptionPrice?: PriceWithCurrency;
|
|
25
55
|
purchaseOptions?: PurchaseOption[];
|
|
56
|
+
metadata?: Record<string, unknown>;
|
|
26
57
|
}
|
|
27
58
|
export type WithVariants<T> = T & {
|
|
28
59
|
variants: PaginatedList<ProductVariant>;
|
|
29
60
|
};
|
|
61
|
+
export interface BoxTier {
|
|
62
|
+
value: number;
|
|
63
|
+
threshold: number;
|
|
64
|
+
}
|
|
65
|
+
export interface BoxVariantGroup {
|
|
66
|
+
id: string;
|
|
67
|
+
variants: {
|
|
68
|
+
id: string;
|
|
69
|
+
}[];
|
|
70
|
+
}
|
|
71
|
+
export interface Box {
|
|
72
|
+
id: string;
|
|
73
|
+
title: string;
|
|
74
|
+
minProductsCount: number;
|
|
75
|
+
parentProduct: string;
|
|
76
|
+
tiers: BoxTier[];
|
|
77
|
+
variants: BoxVariantGroup[];
|
|
78
|
+
freeVariants: BoxVariantGroup[];
|
|
79
|
+
thresholdType: "LINES_COUNT" | "CART_TOTAL";
|
|
80
|
+
type: "FIXED_AMOUNT" | "PERCENTAGE" | "PRICE";
|
|
81
|
+
restrictQuantityToTiers: boolean;
|
|
82
|
+
}
|
|
30
83
|
export type ProductService<T extends WithVariants<Product> = WithVariants<Product>> = {
|
|
31
84
|
getById(id: string): Promise<T | null>;
|
|
32
85
|
getByVariantId(variantId: string): Promise<T | null>;
|
|
@@ -38,5 +91,20 @@ export type ProductService<T extends WithVariants<Product> = WithVariants<Produc
|
|
|
38
91
|
after: string;
|
|
39
92
|
};
|
|
40
93
|
}): Promise<PaginatedList<T>>;
|
|
94
|
+
getProductsByIds(ids: string[]): Promise<Product[]>;
|
|
95
|
+
getBoxVariants(ids: string[], subscriptionId: string): Promise<AvailableProduct[]>;
|
|
96
|
+
getAvailableProducts(params: {
|
|
97
|
+
subscriptionId: string;
|
|
98
|
+
lineId: string;
|
|
99
|
+
q?: string;
|
|
100
|
+
mode?: "same-product" | "other-products";
|
|
101
|
+
action: "swap" | "add";
|
|
102
|
+
pagination?: {
|
|
103
|
+
before: string;
|
|
104
|
+
} | {
|
|
105
|
+
after: string;
|
|
106
|
+
};
|
|
107
|
+
}): Promise<AvailableProduct[]>;
|
|
108
|
+
getBox(id: string): Promise<Box | null>;
|
|
41
109
|
};
|
|
42
110
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/product/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/product/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ApiFetcher, Result } from '../../utils';
|
|
2
|
+
import { SubscriptionAdapter } from '../subscription/adapter';
|
|
3
|
+
import { Subscription } from '../subscription/types';
|
|
4
|
+
import { ScheduleAdjustment, ScheduleOrder, ScheduleShippingAddressInput, ScheduleUpdateProductsLine } from './types';
|
|
5
|
+
export interface SchedulesAdapter {
|
|
6
|
+
getUpcomingOrders(params: {
|
|
7
|
+
count: number;
|
|
8
|
+
subscriptionId?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Drop skipped cycles from the response. Defaults to `true` so a billable
|
|
11
|
+
* preview's requested `count` isn't consumed by skipped cycles (the next
|
|
12
|
+
* billable cycle surfaces). Pass `false` to retrieve the complete schedule —
|
|
13
|
+
* skipped cycles included — for skip/unskip lists or a full timeline view.
|
|
14
|
+
*/
|
|
15
|
+
excludeSkipped?: boolean;
|
|
16
|
+
}): Promise<Result<ScheduleOrder[]>>;
|
|
17
|
+
getAdjustments(): Promise<Result<ScheduleAdjustment[]>>;
|
|
18
|
+
skipOrder(params: {
|
|
19
|
+
subscriptionId: string;
|
|
20
|
+
cycle?: number;
|
|
21
|
+
date?: string;
|
|
22
|
+
}): Promise<Result>;
|
|
23
|
+
/**
|
|
24
|
+
* Skip ONE line in the matched cycle by creating a single-line SKIP_ITEM
|
|
25
|
+
* adjustment. Single line BY DESIGN (R1): blocks can never create a
|
|
26
|
+
* multi-line SKIP_ITEM adjustment, so the service's unskipItem exact-cover
|
|
27
|
+
* happy path always holds. The wire `lineIds: [lineId]` array is built
|
|
28
|
+
* inside each adapter, at the API boundary. Matcher is single-arm only —
|
|
29
|
+
* CYCLE when `cycle` is provided, DATE as fallback, never CYCLE_AND_DATE
|
|
30
|
+
* (R10, see buildSkipItemMatcher).
|
|
31
|
+
*/
|
|
32
|
+
skipItem(params: {
|
|
33
|
+
subscriptionId: string;
|
|
34
|
+
lineId: string;
|
|
35
|
+
cycle?: number;
|
|
36
|
+
date?: string;
|
|
37
|
+
reason?: string;
|
|
38
|
+
}): Promise<Result>;
|
|
39
|
+
changeDateAdjustment(params: {
|
|
40
|
+
subscriptionId: string;
|
|
41
|
+
newDate: string;
|
|
42
|
+
cycle: number;
|
|
43
|
+
currentDate?: string;
|
|
44
|
+
}): Promise<Result>;
|
|
45
|
+
updateShippingAdjustment(params: {
|
|
46
|
+
subscriptionId: string;
|
|
47
|
+
address: ScheduleShippingAddressInput;
|
|
48
|
+
cycle?: number;
|
|
49
|
+
date?: string;
|
|
50
|
+
}): Promise<Result>;
|
|
51
|
+
updatePaymentMethodAdjustment(params: {
|
|
52
|
+
subscriptionId: string;
|
|
53
|
+
paymentMethodId: string;
|
|
54
|
+
cycle?: number;
|
|
55
|
+
date?: string;
|
|
56
|
+
}): Promise<Result>;
|
|
57
|
+
updateProductsAdjustment(params: {
|
|
58
|
+
subscriptionId: string;
|
|
59
|
+
lines: ScheduleUpdateProductsLine[];
|
|
60
|
+
cycle?: number;
|
|
61
|
+
date?: string;
|
|
62
|
+
}): Promise<Result>;
|
|
63
|
+
applyDiscountAdjustment(params: {
|
|
64
|
+
subscriptionId: string;
|
|
65
|
+
discountCode: string;
|
|
66
|
+
cycle: number;
|
|
67
|
+
}): Promise<Result>;
|
|
68
|
+
removeAdjustment(params: {
|
|
69
|
+
adjustmentId: string;
|
|
70
|
+
}): Promise<Result>;
|
|
71
|
+
}
|
|
72
|
+
/** Subscription state the schedules mock projects orders from. */
|
|
73
|
+
type SubscriptionSource = Pick<SubscriptionAdapter, "getById" | "search">;
|
|
74
|
+
/**
|
|
75
|
+
* Project the next `count` upcoming orders for a subscription by stepping its
|
|
76
|
+
* `nextBillingDate` forward one billing interval at a time. Only active
|
|
77
|
+
* subscriptions have upcoming orders; everything else projects to nothing.
|
|
78
|
+
*/
|
|
79
|
+
export declare function projectUpcomingOrders(sub: Subscription, count: number): ScheduleOrder[];
|
|
80
|
+
/**
|
|
81
|
+
* Mock schedules adapter that PROJECTS upcoming orders from a subscription
|
|
82
|
+
* source rather than holding its own static fixtures. Pass the same
|
|
83
|
+
* subscription adapter instance the SubscriptionService uses so item
|
|
84
|
+
* add/remove/update mutations flow through to the projected schedule. When no
|
|
85
|
+
* source is given it owns a fresh mock subscription adapter (used by unit tests).
|
|
86
|
+
*
|
|
87
|
+
* Skip / date-change actions are stored as an adjustments overlay applied on
|
|
88
|
+
* top of the projection — mirroring the real API (`getAdjustments` + a derived
|
|
89
|
+
* order list) rather than mutating a baked order array.
|
|
90
|
+
*/
|
|
91
|
+
export declare function createMockSchedulesAdapter(subscriptions?: SubscriptionSource): SchedulesAdapter;
|
|
92
|
+
export declare function createApiSchedulesAdapter(fetcher: ApiFetcher): SchedulesAdapter;
|
|
93
|
+
export {};
|
|
94
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/adapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiSchedulesAdapter.test.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/apiSchedulesAdapter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { SchedulesAdapter, } from './adapter';
|
|
2
|
+
export { createMockSchedulesAdapter, createApiSchedulesAdapter, } from './adapter';
|
|
3
|
+
export { createSchedulesService, SchedulesServiceContext, } from './schedulesService';
|
|
4
|
+
export * from './types';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReadonlySignal } from '@preact/signals-core';
|
|
2
|
+
import { ContextType } from '../../context';
|
|
3
|
+
import { SchedulesAdapter } from './adapter';
|
|
4
|
+
import { SchedulesService } from './types';
|
|
5
|
+
export declare const SchedulesServiceContext: {
|
|
6
|
+
__context__: SchedulesService;
|
|
7
|
+
};
|
|
8
|
+
export declare function createSchedulesService(adapter: SchedulesAdapter, opts?: {
|
|
9
|
+
hasPendingBilling?: ReadonlySignal<boolean>;
|
|
10
|
+
}): ContextType<typeof SchedulesServiceContext>;
|
|
11
|
+
//# sourceMappingURL=schedulesService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedulesService.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/schedulesService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAKV,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,uBAAuB;;CACmB,CAAC;AA4DxD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;CAAE,GACrD,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAoN7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedulesService.test.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/schedulesService.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { ReadonlySignal, Signal } from '@preact/signals-core';
|
|
2
|
+
import { Result } from '../../utils';
|
|
3
|
+
export interface ScheduleOrderItem {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
subtitle?: string | null;
|
|
7
|
+
imageUrl?: string;
|
|
8
|
+
variantId: string;
|
|
9
|
+
quantity: number;
|
|
10
|
+
price: number;
|
|
11
|
+
totalPrice: number;
|
|
12
|
+
/**
|
|
13
|
+
* True when a SKIP_ITEM adjustment drops this line from the cycle. The
|
|
14
|
+
* backend zeroes the line's totalPrice at recalculation time, so
|
|
15
|
+
* skipped-inclusive reads return zeroed skipped lines (unit price stays).
|
|
16
|
+
*/
|
|
17
|
+
skipped: boolean;
|
|
18
|
+
variantImage?: {
|
|
19
|
+
url: string;
|
|
20
|
+
altText?: string;
|
|
21
|
+
} | null;
|
|
22
|
+
variantAvailableForSale?: boolean;
|
|
23
|
+
subscriptionId: string;
|
|
24
|
+
subscriptionLineId: string;
|
|
25
|
+
productId?: string;
|
|
26
|
+
parentProductId?: string | null;
|
|
27
|
+
parentLineId?: string | null;
|
|
28
|
+
isVirtual?: boolean;
|
|
29
|
+
isUpsell?: boolean;
|
|
30
|
+
recurringCycleLimit?: number | null;
|
|
31
|
+
customAttributes?: {
|
|
32
|
+
key: string;
|
|
33
|
+
value: string;
|
|
34
|
+
}[];
|
|
35
|
+
sellingPlanId?: string | null;
|
|
36
|
+
sellingPlanName?: string | null;
|
|
37
|
+
nextBillingDate?: string | null;
|
|
38
|
+
billingPolicy?: {
|
|
39
|
+
interval: "DAY" | "MONTH" | "WEEK" | "YEAR";
|
|
40
|
+
intervalCount: number;
|
|
41
|
+
} | null;
|
|
42
|
+
subscriptionStatus?: string | null;
|
|
43
|
+
subscriptionIsEditable?: boolean | null;
|
|
44
|
+
requiredBillingCyclesLeft?: number | null;
|
|
45
|
+
}
|
|
46
|
+
export interface ScheduleOrderDiscount {
|
|
47
|
+
id: string;
|
|
48
|
+
title?: string;
|
|
49
|
+
type: "percentage" | "fixed_amount";
|
|
50
|
+
value: number;
|
|
51
|
+
}
|
|
52
|
+
export type ScheduleInterval = "DAY" | "WEEK" | "MONTH" | "YEAR";
|
|
53
|
+
/**
|
|
54
|
+
* Selects which order(s) an adjustment applies to. Mirrors the Customer API
|
|
55
|
+
* matcher union (`POST /customer/v1/schedules/adjustments`). Adjustments are
|
|
56
|
+
* customer-scoped — matched by billing cycle and/or date, not subscription id.
|
|
57
|
+
*/
|
|
58
|
+
export type ScheduleAdjustmentMatcher = {
|
|
59
|
+
type: "CYCLE";
|
|
60
|
+
input: {
|
|
61
|
+
cycle: number;
|
|
62
|
+
};
|
|
63
|
+
} | {
|
|
64
|
+
type: "DATE";
|
|
65
|
+
input: {
|
|
66
|
+
date: string;
|
|
67
|
+
};
|
|
68
|
+
} | {
|
|
69
|
+
type: "CYCLE_AND_DATE";
|
|
70
|
+
input: {
|
|
71
|
+
cycle: number;
|
|
72
|
+
date: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
/** Address input for the `UPDATE_SHIPPING` adjustment action. */
|
|
76
|
+
export interface ScheduleShippingAddressInput {
|
|
77
|
+
firstName?: string | null;
|
|
78
|
+
lastName?: string | null;
|
|
79
|
+
address1?: string | null;
|
|
80
|
+
address2?: string | null;
|
|
81
|
+
zip?: string | null;
|
|
82
|
+
city?: string | null;
|
|
83
|
+
countryCode?: string | null;
|
|
84
|
+
provinceCode?: string | null;
|
|
85
|
+
phone?: string | null;
|
|
86
|
+
company?: string | null;
|
|
87
|
+
}
|
|
88
|
+
/** Per-line input for the `UPDATE_PRODUCTS` adjustment action. */
|
|
89
|
+
export interface ScheduleUpdateProductsLine {
|
|
90
|
+
lineId: string;
|
|
91
|
+
variantId?: string;
|
|
92
|
+
quantity?: number;
|
|
93
|
+
interval?: {
|
|
94
|
+
intervalCount: number;
|
|
95
|
+
interval: ScheduleInterval;
|
|
96
|
+
};
|
|
97
|
+
nextBillingDate?: string;
|
|
98
|
+
customAttributes?: {
|
|
99
|
+
key: string;
|
|
100
|
+
value: string;
|
|
101
|
+
}[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* What an adjustment does to the matched order(s). Mirrors the Customer API
|
|
105
|
+
* action union. `APPLY_DISCOUNT` is code-only here — the manual-discount variant
|
|
106
|
+
* is Admin-API only and intentionally not surfaced to the customer portal.
|
|
107
|
+
*/
|
|
108
|
+
export type ScheduleAdjustmentAction = {
|
|
109
|
+
type: "SKIP_ORDER";
|
|
110
|
+
input: {
|
|
111
|
+
reason: string;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Skips individual lines within the matched cycle. `lineIds` stays an array
|
|
116
|
+
* on this READ shape so foreign (admin-created) multi-line adjustments
|
|
117
|
+
* round-trip through getAdjustments; blocks itself only ever writes a
|
|
118
|
+
* single-line `[lineId]` (see SchedulesAdapter.skipItem, R1).
|
|
119
|
+
*/
|
|
120
|
+
| {
|
|
121
|
+
type: "SKIP_ITEM";
|
|
122
|
+
input: {
|
|
123
|
+
lineIds: string[];
|
|
124
|
+
reason?: string;
|
|
125
|
+
};
|
|
126
|
+
} | {
|
|
127
|
+
type: "CHANGE_DATE";
|
|
128
|
+
input: {
|
|
129
|
+
newDate: string;
|
|
130
|
+
};
|
|
131
|
+
} | {
|
|
132
|
+
type: "UPDATE_SHIPPING";
|
|
133
|
+
input: {
|
|
134
|
+
address: ScheduleShippingAddressInput;
|
|
135
|
+
};
|
|
136
|
+
} | {
|
|
137
|
+
type: "UPDATE_PAYMENT_METHOD";
|
|
138
|
+
input: {
|
|
139
|
+
paymentMethodId: string;
|
|
140
|
+
};
|
|
141
|
+
} | {
|
|
142
|
+
type: "UPDATE_PRODUCTS";
|
|
143
|
+
input: {
|
|
144
|
+
lines: ScheduleUpdateProductsLine[];
|
|
145
|
+
};
|
|
146
|
+
} | {
|
|
147
|
+
type: "APPLY_DISCOUNT";
|
|
148
|
+
input: {
|
|
149
|
+
discountSource: "code";
|
|
150
|
+
discountCode: string;
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* A persisted schedule adjustment as returned by the Customer API. Carries the
|
|
155
|
+
* full `matcher`/`action` pair so every action type round-trips — not just
|
|
156
|
+
* skip/date-change.
|
|
157
|
+
*/
|
|
158
|
+
export interface ScheduleAdjustment {
|
|
159
|
+
id: string;
|
|
160
|
+
matcher: ScheduleAdjustmentMatcher;
|
|
161
|
+
action: ScheduleAdjustmentAction;
|
|
162
|
+
}
|
|
163
|
+
export interface ScheduleOrder {
|
|
164
|
+
id: string;
|
|
165
|
+
customerId: string;
|
|
166
|
+
subscriptionId?: string;
|
|
167
|
+
date: string;
|
|
168
|
+
skipped: boolean;
|
|
169
|
+
currencyCode: string;
|
|
170
|
+
subtotal: number;
|
|
171
|
+
deliveryPrice: number;
|
|
172
|
+
cycleIndex: number;
|
|
173
|
+
deliveryDate: string;
|
|
174
|
+
status: "scheduled" | "processing" | "delivered" | "skipped";
|
|
175
|
+
items: ScheduleOrderItem[];
|
|
176
|
+
discounts: ScheduleOrderDiscount[];
|
|
177
|
+
}
|
|
178
|
+
export interface SchedulesService {
|
|
179
|
+
/** Reactive signal — shared upcoming orders for multi-block access. `null` until first loaded. */
|
|
180
|
+
current: Signal<ScheduleOrder[] | null>;
|
|
181
|
+
currentLoading: Signal<boolean>;
|
|
182
|
+
/** Sourced from SubscriptionService — guards billing-sensitive actions */
|
|
183
|
+
hasPendingBilling: ReadonlySignal<boolean>;
|
|
184
|
+
/**
|
|
185
|
+
* Monotonic counter; bumps after EVERY successful schedule mutation —
|
|
186
|
+
* including scope-less ones that can't reload `current` (R8). Complete-
|
|
187
|
+
* schedule consumers (e.g. a skip/unskip list) watch it to re-read; it also
|
|
188
|
+
* fires for cross-actor changes (e.g. RenewalSummary's whole-order skip).
|
|
189
|
+
* Mirrors SubscriptionService.itemsChangedAt.
|
|
190
|
+
*/
|
|
191
|
+
schedulesChangedAt: ReadonlySignal<number>;
|
|
192
|
+
/** Read-only projection. */
|
|
193
|
+
getUpcomingOrder(): Promise<Result<ScheduleOrder | null>>;
|
|
194
|
+
/**
|
|
195
|
+
* Pure read (never writes `current`). Forwards the excludeSkipped seam +
|
|
196
|
+
* scope so a consumer can fetch the complete, skipped-inclusive schedule.
|
|
197
|
+
* Backward-compatible: existing callers pass `count` only (the adapter
|
|
198
|
+
* defaults excludeSkipped to true — the billable view).
|
|
199
|
+
*/
|
|
200
|
+
getUpcomingOrders(count: number, opts?: {
|
|
201
|
+
excludeSkipped?: boolean;
|
|
202
|
+
subscriptionId?: string;
|
|
203
|
+
}): Promise<Result<ScheduleOrder[]>>;
|
|
204
|
+
getAdjustments(): Promise<Result<ScheduleAdjustment[]>>;
|
|
205
|
+
/** Adjustment — skip the matched order. Matcher: CYCLE or DATE. */
|
|
206
|
+
skipOrder(params: {
|
|
207
|
+
subscriptionId: string;
|
|
208
|
+
cycle?: number;
|
|
209
|
+
date?: string;
|
|
210
|
+
}): Promise<Result>;
|
|
211
|
+
/**
|
|
212
|
+
* Skip one line in the matched cycle. Creates a one-line SKIP_ITEM
|
|
213
|
+
* adjustment (single-arm matcher — CYCLE preferred, R10).
|
|
214
|
+
*/
|
|
215
|
+
skipItem(params: {
|
|
216
|
+
subscriptionId: string;
|
|
217
|
+
lineId: string;
|
|
218
|
+
cycle?: number;
|
|
219
|
+
date?: string;
|
|
220
|
+
reason?: string;
|
|
221
|
+
}): Promise<Result>;
|
|
222
|
+
/**
|
|
223
|
+
* Unskip one line. Resolves single-line SKIP_ITEM adjustment(s) covering
|
|
224
|
+
* this line + cycle/date via getAdjustments and deletes them (exact-cover
|
|
225
|
+
* rule, R1). Both `cycle` AND `date` are required (R6): coverage mirrors
|
|
226
|
+
* the backend's OR application, so DATE-matched foreign adjustments are
|
|
227
|
+
* discoverable too — the caller has both on the ScheduleOrder
|
|
228
|
+
* (`cycleIndex`, `date`). A line covered by any multi-line adjustment (R5),
|
|
229
|
+
* or by a CYCLE_AND_DATE adjustment whose arms don't both identify this
|
|
230
|
+
* order (R10), fails with a distinct error — removeAdjustment is the tool
|
|
231
|
+
* for those.
|
|
232
|
+
*/
|
|
233
|
+
unskipItem(params: {
|
|
234
|
+
subscriptionId: string;
|
|
235
|
+
lineId: string;
|
|
236
|
+
cycle: number;
|
|
237
|
+
date: string;
|
|
238
|
+
}): Promise<Result>;
|
|
239
|
+
/**
|
|
240
|
+
* Reschedule the matched order. Backend requires a CYCLE matcher, so `cycle`
|
|
241
|
+
* is required and enforced at runtime by both adapters; `currentDate` is kept
|
|
242
|
+
* only to resolve the cycle in the mock adapter and is ignored by the API
|
|
243
|
+
* adapter.
|
|
244
|
+
*/
|
|
245
|
+
changeDateAdjustment(params: {
|
|
246
|
+
subscriptionId: string;
|
|
247
|
+
newDate: string;
|
|
248
|
+
cycle: number;
|
|
249
|
+
currentDate?: string;
|
|
250
|
+
}): Promise<Result>;
|
|
251
|
+
/** Adjustment — override the shipping address for the matched order. */
|
|
252
|
+
updateShippingAdjustment(params: {
|
|
253
|
+
subscriptionId: string;
|
|
254
|
+
address: ScheduleShippingAddressInput;
|
|
255
|
+
cycle?: number;
|
|
256
|
+
date?: string;
|
|
257
|
+
}): Promise<Result>;
|
|
258
|
+
/** Adjustment — use a different payment method for the matched order. */
|
|
259
|
+
updatePaymentMethodAdjustment(params: {
|
|
260
|
+
subscriptionId: string;
|
|
261
|
+
paymentMethodId: string;
|
|
262
|
+
cycle?: number;
|
|
263
|
+
date?: string;
|
|
264
|
+
}): Promise<Result>;
|
|
265
|
+
/** Adjustment — swap variant / change quantity / interval on order lines. */
|
|
266
|
+
updateProductsAdjustment(params: {
|
|
267
|
+
subscriptionId: string;
|
|
268
|
+
lines: ScheduleUpdateProductsLine[];
|
|
269
|
+
cycle?: number;
|
|
270
|
+
date?: string;
|
|
271
|
+
}): Promise<Result>;
|
|
272
|
+
/** Adjustment — apply a discount code. Backend requires a CYCLE matcher. */
|
|
273
|
+
applyDiscountAdjustment(params: {
|
|
274
|
+
subscriptionId: string;
|
|
275
|
+
discountCode: string;
|
|
276
|
+
cycle: number;
|
|
277
|
+
}): Promise<Result>;
|
|
278
|
+
removeAdjustment(params: {
|
|
279
|
+
adjustmentId: string;
|
|
280
|
+
}): Promise<Result>;
|
|
281
|
+
/**
|
|
282
|
+
* Refresh `current` for the given subscription.
|
|
283
|
+
*
|
|
284
|
+
* Useful after a mutation (e.g. skip) when the subscription `id` is unchanged
|
|
285
|
+
* but the upcoming-order state has shifted — the host's id-based watcher
|
|
286
|
+
* does not fire in that case.
|
|
287
|
+
*/
|
|
288
|
+
reloadCurrent(subscriptionId: string): Promise<void>;
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/schedules/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9F,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,GAAG,cAAc,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEvE,iEAAiE;AACjE,MAAM,WAAW,4BAA4B;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrD;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AACnD;;;;;GAKG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE;QAAE,OAAO,EAAE,4BAA4B,CAAA;KAAE,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE,0BAA0B,EAAE,CAAA;KAAE,CAAA;CAAE,GAC3E;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,yBAAyB,CAAC;IACnC,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;IAC7D,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,kGAAkG;IAClG,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,0EAA0E;IAC1E,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C;;;;;;OAMG;IACH,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAE3C,4BAA4B;IAC5B,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3D,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IAExD,mEAAmE;IACnE,SAAS,CAAC,MAAM,EAAE;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,MAAM,EAAE;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,wEAAwE;IACxE,wBAAwB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,4BAA4B,CAAC;QACtC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,yEAAyE;IACzE,6BAA6B,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,6EAA6E;IAC7E,wBAAwB,CAAC,MAAM,EAAE;QAC/B,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,0BAA0B,EAAE,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,4EAA4E;IAC5E,uBAAuB,CAAC,MAAM,EAAE;QAC9B,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,gBAAgB,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpE;;;;;;OAMG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/settings/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ContextType } from '../../context';
|
|
2
|
+
import { Settings, SettingsService } from './types';
|
|
3
|
+
export declare const SettingsServiceContext: {
|
|
4
|
+
__context__: SettingsService;
|
|
5
|
+
};
|
|
6
|
+
export declare function createSettingsService(initial?: Settings): ContextType<typeof SettingsServiceContext>;
|
|
7
|
+
//# sourceMappingURL=settingsService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../../src/services/settings/settingsService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAEzD,eAAO,MAAM,sBAAsB;;CACkB,CAAC;AAEtD,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,QAAa,GACrB,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAQ5C"}
|
|
@@ -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"}
|