@wix/himalaya-cli 0.1324.0 → 0.1325.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/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/checkout/src/index.d.ts +6 -10
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/iap-checkout/src/order-refs.d.ts +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/iap-checkout/src/purchase-fields.d.ts +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/flows/screens/src/index.d.ts +9 -35
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/wix-sdk/stores-v1/src/display.d.ts +1 -0
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/checkout.mjs +30 -13
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/iap-checkout.mjs +20 -2
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/screens.mjs +2890 -54
- package/dist/cli.mjs +4 -4
- package/fixtures/wix-canned.json +61 -6
- package/guides/iap-pricing.md +9 -0
- package/guides/iap-screen-adoption.md +77 -0
- package/guides/importable-sdks.md +2 -0
- package/guides/index.json +6 -0
- package/guides/sdk-reference.json +339 -1
- package/package.json +2 -2
- package/templates/beauty-salon/config.ts +1 -1
- package/templates/beauty-salon/dev/index.ts +46 -18
- package/templates/beauty-salon/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/beauty-salon/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/beauty-salon/tier5-src/_shared/himi-store-collection.ts +1 -1
- package/templates/beauty-salon/tier5-src/_shared/home-service.ts +2 -1
- package/templates/beauty-salon/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/beauty-salon/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/beauty-salon/tier5-src/himi-branded-lite-cart/index.ts +48 -1
- package/templates/beauty-salon/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/beauty-salon/tier5-src/himi-branded-lite-order/index.ts +24 -3
- package/templates/beauty-salon/tier5-src/himi-branded-lite-plans/index.ts +153 -64
- package/templates/beauty-salon/tier5-src/himi-store-product/index.ts +24 -3
- package/templates/beauty-salon/tier5-src/himi-store-saved/index.ts +8 -3
- package/templates/beauty-salon/tier5-src/himi-store-shop/index.ts +10 -0
- package/templates/beauty-salon/tier5-src/wix-spaces-plan-detail/index.ts +8 -3
- package/templates/beauty-salon-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/beauty-salon-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/beauty-salon-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/branded-lite/config.ts +1 -1
- package/templates/branded-lite/dev/index.ts +46 -18
- package/templates/branded-lite/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/branded-lite/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/branded-lite/tier5-src/_shared/himi-store-collection.ts +1 -1
- package/templates/branded-lite/tier5-src/_shared/home-service.ts +2 -1
- package/templates/branded-lite/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/branded-lite/tier5-src/himi-branded-lite-cart/index.ts +48 -1
- package/templates/branded-lite/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/branded-lite/tier5-src/himi-branded-lite-order/index.ts +24 -3
- package/templates/branded-lite/tier5-src/himi-branded-lite-plans/index.ts +153 -64
- package/templates/branded-lite/tier5-src/himi-store-product/index.ts +24 -3
- package/templates/branded-lite/tier5-src/himi-store-saved/index.ts +8 -3
- package/templates/branded-lite/tier5-src/himi-store-shop/index.ts +10 -0
- package/templates/branded-lite/tier5-src/wix-spaces-plan-detail/index.ts +8 -3
- package/templates/community-club/config.ts +1 -1
- package/templates/community-club/dev/index.ts +3 -1
- package/templates/community-club/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/community-club/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/community-club/tier5-src/_shared/home-service.ts +2 -1
- package/templates/community-club/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/community-club/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/community-club/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/community-club-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/community-club-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/community-club-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/events-meetups/config.ts +1 -1
- package/templates/events-meetups/dev/index.ts +3 -1
- package/templates/events-meetups/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/events-meetups/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/events-meetups/tier5-src/_shared/home-service.ts +2 -1
- package/templates/events-meetups/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/events-meetups/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/events-meetups/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/events-meetups-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/events-meetups-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/events-meetups-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/gym-fitness/config.ts +1 -1
- package/templates/gym-fitness/dev/index.ts +46 -18
- package/templates/gym-fitness/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/gym-fitness/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/gym-fitness/tier5-src/_shared/himi-store-collection.ts +1 -1
- package/templates/gym-fitness/tier5-src/_shared/home-service.ts +2 -1
- package/templates/gym-fitness/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/gym-fitness/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/gym-fitness/tier5-src/himi-branded-lite-cart/index.ts +48 -1
- package/templates/gym-fitness/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/gym-fitness/tier5-src/himi-branded-lite-order/index.ts +24 -3
- package/templates/gym-fitness/tier5-src/himi-branded-lite-plans/index.ts +153 -64
- package/templates/gym-fitness/tier5-src/himi-store-product/index.ts +24 -3
- package/templates/gym-fitness/tier5-src/himi-store-saved/index.ts +8 -3
- package/templates/gym-fitness/tier5-src/himi-store-shop/index.ts +10 -0
- package/templates/gym-fitness/tier5-src/wix-spaces-plan-detail/index.ts +8 -3
- package/templates/gym-fitness-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/gym-fitness-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/gym-fitness-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/nonprofit-cause/config.ts +1 -1
- package/templates/nonprofit-cause/dev/index.ts +29 -13
- package/templates/nonprofit-cause/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/nonprofit-cause/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/nonprofit-cause/tier5-src/_shared/home-service.ts +2 -1
- package/templates/nonprofit-cause/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/nonprofit-cause/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/nonprofit-cause/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/nonprofit-cause/tier5-src/himi-branded-lite-plans/index.ts +153 -64
- package/templates/nonprofit-cause/tier5-src/wix-spaces-plan-detail/index.ts +8 -3
- package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/nonprofit-cause-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/owner-lite/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/owner-lite/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/owner-lite/tier5-src/_shared/home-service.ts +2 -1
- package/templates/podcast-creator/config.ts +1 -1
- package/templates/podcast-creator/dev/index.ts +29 -13
- package/templates/podcast-creator/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/podcast-creator/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/podcast-creator/tier5-src/_shared/home-service.ts +2 -1
- package/templates/podcast-creator/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/podcast-creator/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/podcast-creator/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/podcast-creator/tier5-src/himi-branded-lite-plans/index.ts +153 -64
- package/templates/podcast-creator/tier5-src/wix-spaces-plan-detail/index.ts +8 -3
- package/templates/podcast-creator-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/podcast-creator-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/podcast-creator-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/portfolio-creative/config.ts +1 -1
- package/templates/portfolio-creative/dev/index.ts +20 -6
- package/templates/portfolio-creative/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/portfolio-creative/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/portfolio-creative/tier5-src/_shared/himi-store-collection.ts +1 -1
- package/templates/portfolio-creative/tier5-src/_shared/home-service.ts +2 -1
- package/templates/portfolio-creative/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/portfolio-creative/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/portfolio-creative/tier5-src/himi-branded-lite-cart/index.ts +48 -1
- package/templates/portfolio-creative/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/portfolio-creative/tier5-src/himi-branded-lite-order/index.ts +24 -3
- package/templates/portfolio-creative/tier5-src/himi-store-product/index.ts +24 -3
- package/templates/portfolio-creative/tier5-src/himi-store-saved/index.ts +8 -3
- package/templates/portfolio-creative/tier5-src/himi-store-shop/index.ts +10 -0
- package/templates/portfolio-creative-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/portfolio-creative-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/portfolio-creative-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/restaurant/config.ts +1 -1
- package/templates/restaurant/dev/index.ts +3 -1
- package/templates/restaurant/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/restaurant/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/restaurant/tier5-src/_shared/home-service.ts +2 -1
- package/templates/restaurant/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/restaurant/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/restaurant/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/restaurant-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/restaurant-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/restaurant-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/retail-store/config.ts +1 -1
- package/templates/retail-store/dev/index.ts +20 -6
- package/templates/retail-store/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/retail-store/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/retail-store/tier5-src/_shared/himi-store-collection.ts +1 -1
- package/templates/retail-store/tier5-src/_shared/home-service.ts +2 -1
- package/templates/retail-store/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/retail-store/tier5-src/_shared/iap-worker.ts +42 -0
- package/templates/retail-store/tier5-src/himi-branded-lite-cart/index.ts +48 -1
- package/templates/retail-store/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/retail-store/tier5-src/himi-branded-lite-order/index.ts +24 -3
- package/templates/retail-store/tier5-src/himi-store-product/index.ts +24 -3
- package/templates/retail-store/tier5-src/himi-store-saved/index.ts +8 -3
- package/templates/retail-store/tier5-src/himi-store-shop/index.ts +10 -0
- package/templates/retail-store-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/retail-store-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/retail-store-owner/tier5-src/_shared/home-service.ts +2 -1
- package/templates/yoga-studio/config.ts +1 -1
- package/templates/yoga-studio/dev/index.ts +29 -13
- package/templates/yoga-studio/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/yoga-studio/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/yoga-studio/tier5-src/_shared/home-service.ts +2 -1
- package/templates/yoga-studio/tier5-src/_shared/iap-presentation.ts +53 -0
- package/templates/yoga-studio/tier5-src/himi-branded-lite-home/index.ts +16 -2
- package/templates/yoga-studio/tier5-src/himi-branded-lite-plans/index.ts +153 -64
- package/templates/yoga-studio/tier5-src/wix-spaces-plan-detail/index.ts +8 -3
- package/templates/yoga-studio-owner/tier5-src/_shared/collection-contract.ts +1 -1
- package/templates/yoga-studio-owner/tier5-src/_shared/collection-service.ts +3 -2
- package/templates/yoga-studio-owner/tier5-src/_shared/home-service.ts +2 -1
|
@@ -2263,6 +2263,259 @@
|
|
|
2263
2263
|
}
|
|
2264
2264
|
]
|
|
2265
2265
|
},
|
|
2266
|
+
{
|
|
2267
|
+
"name": "@himalaya/iap-checkout",
|
|
2268
|
+
"source": "stdlib/flows/iap-checkout/src/index.ts",
|
|
2269
|
+
"description": "@wix/himalaya/iap-checkout — the ONE shared flow that sells a digital Wix item through the App Store, for any screen: a vertical order, its `appleIAP` cashier charge, mobile-apps-wix-iap's payment, the managed StoreKit purchase and the vertical's own access read.",
|
|
2270
|
+
"api": [
|
|
2271
|
+
{
|
|
2272
|
+
"name": "\"./commerce.js\"",
|
|
2273
|
+
"kind": "reexport",
|
|
2274
|
+
"jsdoc": "",
|
|
2275
|
+
"decl": "export { createIapCommerce } from \"./commerce.js\";"
|
|
2276
|
+
},
|
|
2277
|
+
{
|
|
2278
|
+
"name": "\"./purchase-fields.js\"",
|
|
2279
|
+
"kind": "reexport",
|
|
2280
|
+
"jsdoc": "",
|
|
2281
|
+
"decl": "export { iapPurchaseFields } from \"./purchase-fields.js\";"
|
|
2282
|
+
},
|
|
2283
|
+
{
|
|
2284
|
+
"name": "\"./apple-iap.js\"",
|
|
2285
|
+
"kind": "reexport",
|
|
2286
|
+
"jsdoc": "",
|
|
2287
|
+
"decl": "export { createAppleIapCheckout } from \"./apple-iap.js\";"
|
|
2288
|
+
},
|
|
2289
|
+
{
|
|
2290
|
+
"name": "\"./iap-verticals/index.js\"",
|
|
2291
|
+
"kind": "reexport",
|
|
2292
|
+
"jsdoc": "",
|
|
2293
|
+
"decl": "export { onlineProgramOrders, pricingPlanOrders, storesProductOrders, classifyCart } from \"./iap-verticals/index.js\";"
|
|
2294
|
+
},
|
|
2295
|
+
{
|
|
2296
|
+
"name": "\"./order-refs.js\"",
|
|
2297
|
+
"kind": "reexport",
|
|
2298
|
+
"jsdoc": "",
|
|
2299
|
+
"decl": "export { createWorkerOrderRefStore } from \"./order-refs.js\";"
|
|
2300
|
+
},
|
|
2301
|
+
{
|
|
2302
|
+
"name": "\"./apple-iap-contract.js\"",
|
|
2303
|
+
"kind": "reexport",
|
|
2304
|
+
"jsdoc": "",
|
|
2305
|
+
"decl": "export type {\n AccessRead, AppleIapCheckout, AppleIapCheckoutDependencies, AppleIapCheckoutPhase, AppleIapCheckoutState, BridgeOutcome,\n BridgeRefusal, CashierRoute, IapEligibility, IapOrderAdapter, IapOrderItem, OrderAttempt, OrderFailureCode,\n OrderPartitionKey, OrderRef, OrderRefPartition, OrderRefStage, OrderRefStore, PaymentAccess, PaymentProgress,\n SessionBoundBridge, VerticalRef, WixBridge,\n} from \"./apple-iap-contract.js\";"
|
|
2306
|
+
},
|
|
2307
|
+
{
|
|
2308
|
+
"name": "\"./commerce-contract.js\"",
|
|
2309
|
+
"kind": "reexport",
|
|
2310
|
+
"jsdoc": "",
|
|
2311
|
+
"decl": "export type {\n AppleIapCheckoutRoutes, IapCommerce, IapCommerceOptions, IapPurchaseCopy, IapPurchaseFields, IapPurchaseGap, IapPurchaseReadiness,\n} from \"./commerce-contract.js\";"
|
|
2312
|
+
},
|
|
2313
|
+
{
|
|
2314
|
+
"name": "createIapCommerce",
|
|
2315
|
+
"kind": "function",
|
|
2316
|
+
"jsdoc": "/**\n * Creates this worker's App Store commerce: catalog pricing for the items the screen shows, and the\n * shared Apple-IAP checkout for the verticals it sells. Create it once at module scope, call\n * `start()` when the screen boots, `reconcile()` when it resumes, and `tick()` from a `_poll` at\n * `state().nextWakeAt`. Bind the action with `iapPurchaseFields`.\n */",
|
|
2317
|
+
"decl": "export function createIapCommerce(options: IapCommerceOptions = {}): IapCommerce;"
|
|
2318
|
+
},
|
|
2319
|
+
{
|
|
2320
|
+
"name": "iapPurchaseFields",
|
|
2321
|
+
"kind": "function",
|
|
2322
|
+
"jsdoc": "/** Projects a shared checkout into customer-facing action fields; a price alone never grants access. */",
|
|
2323
|
+
"decl": "export function iapPurchaseFields(view: IapItemView, state: AppleIapCheckoutState, readiness: IapPurchaseReadiness, copy: IapPurchaseCopy): IapPurchaseFields;"
|
|
2324
|
+
},
|
|
2325
|
+
{
|
|
2326
|
+
"name": "createAppleIapCheckout",
|
|
2327
|
+
"kind": "function",
|
|
2328
|
+
"jsdoc": "/**\n * Creates the shared Apple-IAP checkout for one worker: vertical order → `appleIAP` cashier\n * charge → wix-iap StartPayment → managed StoreKit purchase → CompletePayment → GetPayment →\n * the vertical's own access read. It reuses `createPurchaseCoordinator` for StoreKit, proof\n * delivery and finishing, and opens content only when the vertical confirms access.\n *\n * NOT ENABLED: it answers `notEnabled` and makes no call until the documented dependencies (a\n * wix-iap route, the cashier route, a real mapping source, a trusted binding, the native identity\n * fence and the finish-policy confirmation) are resolved.\n */",
|
|
2329
|
+
"decl": "export function createAppleIapCheckout(deps: AppleIapCheckoutDependencies): AppleIapCheckout;"
|
|
2330
|
+
},
|
|
2331
|
+
{
|
|
2332
|
+
"name": "createWorkerOrderRefStore",
|
|
2333
|
+
"kind": "function",
|
|
2334
|
+
"jsdoc": "/** Persists unfinished orders per app and member, using the host KV unless storage is supplied. */",
|
|
2335
|
+
"decl": "export function createWorkerOrderRefStore(storage?: KeyValueStorage): OrderRefStore;"
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
"name": "WixBridge",
|
|
2339
|
+
"kind": "interface",
|
|
2340
|
+
"jsdoc": "/** The host's Wix REST bridge (`himalaya.wixApi`). Resolves a 2xx body; rejects with\n * `HTTP <status> [<code>]: <message>` otherwise. Credentials are attached natively.\n * Same positional shape as the runtime's `wixApiCall`: `expectation` is bridge metadata for a\n * protected call, after `headers`, and never an HTTP header. */",
|
|
2341
|
+
"decl": "export interface WixBridge {\n call(\n method: \"GET\" | \"POST\",\n path: string,\n body?: unknown,\n headers?: Record<string, string>,\n expectation?: HostCallExpectation,\n ): Promise<unknown>;\n}"
|
|
2342
|
+
},
|
|
2343
|
+
{
|
|
2344
|
+
"name": "BridgeRefusal",
|
|
2345
|
+
"kind": "type",
|
|
2346
|
+
"jsdoc": "/** Why a bridge call gave no body. `sessionChanged`: the captured session is no longer current,\n * before the send or after the answer; nothing from it may be used or stored. */",
|
|
2347
|
+
"decl": "export type BridgeRefusal =\n | { status: \"sessionChanged\" }\n | { status: \"notEnabled\" }\n | { status: \"unavailable\" }\n | { status: \"http\"; httpStatus: number; code: string };"
|
|
2348
|
+
},
|
|
2349
|
+
{
|
|
2350
|
+
"name": "BridgeOutcome",
|
|
2351
|
+
"kind": "type",
|
|
2352
|
+
"jsdoc": "",
|
|
2353
|
+
"decl": "export type BridgeOutcome = { status: \"ok\"; body: unknown } | BridgeRefusal;"
|
|
2354
|
+
},
|
|
2355
|
+
{
|
|
2356
|
+
"name": "SessionBoundBridge",
|
|
2357
|
+
"kind": "interface",
|
|
2358
|
+
"jsdoc": "/** A bridge bound to one captured member session: it refuses to send, and drops the answer,\n * once that session is no longer current. */",
|
|
2359
|
+
"decl": "export interface SessionBoundBridge {\n call(method: \"GET\" | \"POST\", path: string, body?: unknown): Promise<BridgeOutcome>;\n isCurrent(): boolean;\n}"
|
|
2360
|
+
},
|
|
2361
|
+
{
|
|
2362
|
+
"name": "CashierRoute",
|
|
2363
|
+
"kind": "interface",
|
|
2364
|
+
"jsdoc": "/** Cashier pay v2 (`wix.payment.api.pay.v2.PaymentService`). The member-accepted gateway path\n * is unverified, so there is deliberately no default. */",
|
|
2365
|
+
"decl": "export interface CashierRoute {\n /** The gateway path that maps to `/api/payments/v2`, without a trailing slash. */\n prefix: string;\n}"
|
|
2366
|
+
},
|
|
2367
|
+
{
|
|
2368
|
+
"name": "IapOrderItem",
|
|
2369
|
+
"kind": "interface",
|
|
2370
|
+
"jsdoc": "/** One item a screen sells. `reference` is the same catalog reference its price came from. */",
|
|
2371
|
+
"decl": "export interface IapOrderItem {\n reference: CatalogReference;\n /** eCom catalog reference, required for a Wix Stores item. */\n catalogReference?: { appId: string; catalogItemId: string; options?: Record<string, unknown> };\n /** Only 1 is supported. */\n quantity?: number;\n}"
|
|
2372
|
+
},
|
|
2373
|
+
{
|
|
2374
|
+
"name": "VerticalRef",
|
|
2375
|
+
"kind": "type",
|
|
2376
|
+
"jsdoc": "/** Ids an adapter needs to find its order and the member's access again. No member data. */",
|
|
2377
|
+
"decl": "export type VerticalRef = Record<string, string>;"
|
|
2378
|
+
},
|
|
2379
|
+
{
|
|
2380
|
+
"name": "IapEligibility",
|
|
2381
|
+
"kind": "type",
|
|
2382
|
+
"jsdoc": "",
|
|
2383
|
+
"decl": "export type IapEligibility = { eligible: true } | { eligible: false; reason: OrderFailureCode };"
|
|
2384
|
+
},
|
|
2385
|
+
{
|
|
2386
|
+
"name": "OrderAttempt",
|
|
2387
|
+
"kind": "type",
|
|
2388
|
+
"jsdoc": "/** `open`: a pending order the cashier can charge. `granted`: the vertical already gives the\n * member access, so nothing is sold. */",
|
|
2389
|
+
"decl": "export type OrderAttempt =\n | { status: \"open\"; cashierOrderId: string; verticalRef: VerticalRef }\n | { status: \"granted\" }\n | { status: \"refused\"; reason: OrderFailureCode }\n | { status: \"unavailable\" }\n | { status: \"sessionChanged\" };"
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
"name": "AccessRead",
|
|
2393
|
+
"kind": "type",
|
|
2394
|
+
"jsdoc": "",
|
|
2395
|
+
"decl": "export type AccessRead = \"granted\" | \"pending\" | \"none\" | \"unavailable\" | \"sessionChanged\";"
|
|
2396
|
+
},
|
|
2397
|
+
{
|
|
2398
|
+
"name": "IapOrderAdapter",
|
|
2399
|
+
"kind": "interface",
|
|
2400
|
+
"jsdoc": "/** The only per-vertical code. Every call goes through the session-bound bridge it is given. */",
|
|
2401
|
+
"decl": "export interface IapOrderAdapter {\n /** The catalog kind it sells (`onlineProgram`, `pricingPlan`, `storesProduct`, or a custom one). */\n readonly kind: string;\n /** Structural check before any call: one item, quantity 1, a supported shape. */\n eligibility(item: IapOrderItem): IapEligibility;\n /** Opens, or reuses the vertical's own open, order for the signed-in member. */\n openOrder(item: IapOrderItem, bridge: SessionBoundBridge): Promise<OrderAttempt>;\n /** Re-reads an order opened earlier; `open` only while it can still be paid. */\n reopenOrder(order: { cashierOrderId: string; verticalRef: VerticalRef }, bridge: SessionBoundBridge): Promise<OrderAttempt>;\n /** The vertical's authoritative answer for the order's item and the signed-in member. */\n readAccess(verticalRef: VerticalRef, bridge: SessionBoundBridge): Promise<AccessRead>;\n /** The member's access to an item before any order exists (bought through Wix, say). Read-only:\n * never opens or prepares an order. An adapter without it shows Get access until a sale says otherwise. */\n currentAccess?(item: IapOrderItem, bridge: SessionBoundBridge): Promise<AccessRead>;\n}"
|
|
2402
|
+
},
|
|
2403
|
+
{
|
|
2404
|
+
"name": "OrderPartitionKey",
|
|
2405
|
+
"kind": "interface",
|
|
2406
|
+
"jsdoc": "/** Durable, member-partitioned purchase references. Ids only: never a proof or a credential, and\n * the member id is stored only as a one-way hash in the key. */",
|
|
2407
|
+
"decl": "export interface OrderPartitionKey {\n purchasesAppId: string;\n siteId: string;\n /** The signed-in member's Wix id, from the host session (wix-iap records purchases against it). */\n memberId: string;\n}"
|
|
2408
|
+
},
|
|
2409
|
+
{
|
|
2410
|
+
"name": "OrderRefStage",
|
|
2411
|
+
"kind": "type",
|
|
2412
|
+
"jsdoc": "/** `held`: Apple charged, and CompletePayment refused the proof without recording it, so the\n * transaction stays unfinished and is retried. `needsSupport`: recorded and refused for good. */",
|
|
2413
|
+
"decl": "export type OrderRefStage = \"ordered\" | \"charged\" | \"started\" | \"submitted\" | \"held\" | \"needsSupport\";"
|
|
2414
|
+
},
|
|
2415
|
+
{
|
|
2416
|
+
"name": "OrderRef",
|
|
2417
|
+
"kind": "interface",
|
|
2418
|
+
"jsdoc": "",
|
|
2419
|
+
"decl": "export interface OrderRef {\n /** `<kind>:<id>` of the item, or `payment:<paymentId>` for a payment with no local order. */\n key: string;\n stage: OrderRefStage;\n kind?: string;\n verticalRef?: VerticalRef;\n cashierOrderId?: string;\n wixTransactionId?: string;\n paymentId?: string;\n storeProductId?: string;\n appProductId?: string;\n appleTransactionId?: string;\n /** The StoreKit token StartPayment minted for this payment (D61): recovery finds the order by it. */\n appAccountToken?: string;\n updatedAt: number;\n}"
|
|
2420
|
+
},
|
|
2421
|
+
{
|
|
2422
|
+
"name": "OrderRefPartition",
|
|
2423
|
+
"kind": "interface",
|
|
2424
|
+
"jsdoc": "",
|
|
2425
|
+
"decl": "export interface OrderRefPartition {\n refs(): readonly OrderRef[];\n /** False when the write could not be verified as durable; the caller must not proceed. */\n put(ref: OrderRef): boolean;\n remove(key: string): boolean;\n}"
|
|
2426
|
+
},
|
|
2427
|
+
{
|
|
2428
|
+
"name": "OrderRefStore",
|
|
2429
|
+
"kind": "interface",
|
|
2430
|
+
"jsdoc": "",
|
|
2431
|
+
"decl": "export interface OrderRefStore {\n /** Null when this partition cannot be stored durably: no storage bridge, unreadable or\n * unknown-version data. Never an empty stand-in. */\n open(key: OrderPartitionKey): OrderRefPartition | null;\n /** Whether any member holds references for this app and site; null when unreadable. Lets a\n * start-up skip reading the member and tracking when nothing was ever handed over. */\n hasRefs(app: { purchasesAppId: string; siteId: string }): boolean | null;\n}"
|
|
2432
|
+
},
|
|
2433
|
+
{
|
|
2434
|
+
"name": "OrderFailureCode",
|
|
2435
|
+
"kind": "type",
|
|
2436
|
+
"jsdoc": "",
|
|
2437
|
+
"decl": "export type OrderFailureCode =\n | \"notEnabled\" | \"notConfigured\" | \"signInRequired\" | \"unsupportedItem\" | \"notAppleRoute\"\n | \"storageUnavailable\" | \"approvalRequired\" | \"orderClosed\" | \"orderRefused\" | \"chargeFailed\"\n | \"paymentRefused\" | \"paymentHeld\" | \"alreadyOwned\" | \"paymentInProgress\" | \"productChanged\"\n | \"invalidAssociation\" | \"needsSupport\" | \"unavailable\" | \"sessionChanged\";"
|
|
2438
|
+
},
|
|
2439
|
+
{
|
|
2440
|
+
"name": "PaymentAccess",
|
|
2441
|
+
"kind": "type",
|
|
2442
|
+
"jsdoc": "/** Progress of a payment this device handed to wix-iap, tracked from its durable reference. */",
|
|
2443
|
+
"decl": "export type PaymentAccess = \"processing\" | \"granted\" | \"accessUnknown\" | \"needsSupport\";"
|
|
2444
|
+
},
|
|
2445
|
+
{
|
|
2446
|
+
"name": "PaymentProgress",
|
|
2447
|
+
"kind": "interface",
|
|
2448
|
+
"jsdoc": "",
|
|
2449
|
+
"decl": "export interface PaymentProgress {\n /** `<kind>:<id>` of the item, or `payment` when no local order is known. */\n item: string;\n access: PaymentAccess;\n nextAttemptAt: number | null;\n}"
|
|
2450
|
+
},
|
|
2451
|
+
{
|
|
2452
|
+
"name": "AppleIapCheckoutPhase",
|
|
2453
|
+
"kind": "type",
|
|
2454
|
+
"jsdoc": "",
|
|
2455
|
+
"decl": "export type AppleIapCheckoutPhase =\n | \"notEnabled\" | \"idle\" | \"preparing\" | \"purchasing\" | \"awaitingApproval\" | \"processing\"\n | \"accessReady\" | \"cancelled\" | \"signInRequired\" | \"unavailable\" | \"refused\";"
|
|
2456
|
+
},
|
|
2457
|
+
{
|
|
2458
|
+
"name": "AppleIapCheckoutState",
|
|
2459
|
+
"kind": "interface",
|
|
2460
|
+
"jsdoc": "/** Safe to render: no proof, account token, member, order or payment id. */",
|
|
2461
|
+
"decl": "export interface AppleIapCheckoutState {\n enabled: boolean;\n phase: AppleIapCheckoutPhase;\n /** The item the last `buy` was for, as `<kind>:<id>`. */\n item: string | null;\n failure: OrderFailureCode | null;\n purchase: DeliveryState;\n payments: PaymentProgress[];\n nextWakeAt: number | null;\n}"
|
|
2462
|
+
},
|
|
2463
|
+
{
|
|
2464
|
+
"name": "AppleIapCheckoutDependencies",
|
|
2465
|
+
"kind": "interface",
|
|
2466
|
+
"jsdoc": "",
|
|
2467
|
+
"decl": "export interface AppleIapCheckoutDependencies {\n wixIap: WixIapClient;\n /** The member signed in for a captured session, from the trusted host (`memberIdentityOf` over the\n * host session). It partitions the references and scopes acknowledgements: wix-iap has no\n * customer ids any more (D61). */\n identity: MemberIdentitySource;\n /** The same trusted binding the wix-iap client uses; it partitions the stored references. */\n binding: AppBindingSource;\n /** The same host provider the wix-iap client was given: every step compares generations. */\n session: SessionProvider;\n clock: Clock;\n cashier: CashierRoute;\n adapters: readonly IapOrderAdapter[];\n /** The screen's catalog pricing: the route and the App Store product a sale must match. */\n pricing: Pick<IapCatalogPricing, \"view\" | \"appleProduct\">;\n store?: TransactionStore;\n refs?: OrderRefStore;\n bridge?: WixBridge;\n jitter?: (baseDelayMs: number) => number;\n onState?: (state: AppleIapCheckoutState) => void;\n}"
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
"name": "AppleIapCheckout",
|
|
2471
|
+
"kind": "interface",
|
|
2472
|
+
"jsdoc": "",
|
|
2473
|
+
"decl": "export interface AppleIapCheckout {\n /** Recovers held purchases and resumes tracking payments already handed over. */\n start(): Promise<AppleIapCheckoutState>;\n buy(item: IapOrderItem): Promise<AppleIapCheckoutState>;\n /** Marks the items the signed-in member already has access to, read from each vertical without an order. */\n checkAccess(items: readonly IapOrderItem[]): Promise<AppleIapCheckoutState>;\n reconcile(): Promise<AppleIapCheckoutState>;\n retry(): Promise<AppleIapCheckoutState>;\n tick(): Promise<AppleIapCheckoutState>;\n state(): AppleIapCheckoutState;\n dispose(): void;\n}"
|
|
2474
|
+
},
|
|
2475
|
+
{
|
|
2476
|
+
"name": "AppleIapCheckoutRoutes",
|
|
2477
|
+
"kind": "interface",
|
|
2478
|
+
"jsdoc": "/** Where the checkout reaches Wix: mobile-apps-wix-iap's Payments service and cashier pay v2, both\n * as gateway paths the member credential is accepted on. Platform configuration, never a screen's. */",
|
|
2479
|
+
"decl": "export interface AppleIapCheckoutRoutes {\n wixIap: WixIapRoute;\n cashier: CashierRoute;\n}"
|
|
2480
|
+
},
|
|
2481
|
+
{
|
|
2482
|
+
"name": "IapPurchaseGap",
|
|
2483
|
+
"kind": "type",
|
|
2484
|
+
"jsdoc": "/** A dependency purchasing needs that this app or host does not have yet. Internal diagnostics:\n * never customer copy.\n * - `routes`: no member-callable wix-iap or cashier route is configured.\n * - `mapping`: no Wix→Apple mapping source is connected.\n * - `binding`: the binary carries no purchases-app binding for this app.\n * - `nativeIdentity`: the host cannot bind a request to the signed-in member.\n * - `managedStore`: managed StoreKit is not enabled on this host (or not iOS).\n * - `storage`: purchase references cannot be stored durably. */",
|
|
2485
|
+
"decl": "export type IapPurchaseGap = \"routes\" | \"mapping\" | \"binding\" | \"nativeIdentity\" | \"managedStore\" | \"storage\";"
|
|
2486
|
+
},
|
|
2487
|
+
{
|
|
2488
|
+
"name": "IapPurchaseReadiness",
|
|
2489
|
+
"kind": "type",
|
|
2490
|
+
"jsdoc": "",
|
|
2491
|
+
"decl": "export type IapPurchaseReadiness =\n | { status: \"checking\" }\n | { status: \"ready\" }\n | { status: \"unavailable\"; gaps: readonly IapPurchaseGap[] };"
|
|
2492
|
+
},
|
|
2493
|
+
{
|
|
2494
|
+
"name": "IapCommerceOptions",
|
|
2495
|
+
"kind": "interface",
|
|
2496
|
+
"jsdoc": "",
|
|
2497
|
+
"decl": "export interface IapCommerceOptions {\n /** The verticals this screen sells. A screen that only shows prices passes none. */\n adapters?: readonly IapOrderAdapter[];\n /** After any price, readiness or checkout change; a worker republishes its state here. */\n onChange?(): void;\n}"
|
|
2498
|
+
},
|
|
2499
|
+
{
|
|
2500
|
+
"name": "IapCommerce",
|
|
2501
|
+
"kind": "interface",
|
|
2502
|
+
"jsdoc": "",
|
|
2503
|
+
"decl": "export interface IapCommerce {\n /** Routes, display prices, regular-checkout guards and the visible-refresh poll. */\n readonly pricing: IapCatalogPricing;\n /** Prices the items the screen shows, scoped to this app by the host. `scopeComplete` is false\n * when the host's own identity could not be read, so the screen offers Retry itself. */\n loadPrices(items: IapCatalogItem[]): Promise<{ scopeComplete: boolean }>;\n readiness(): IapPurchaseReadiness;\n /** Whether the latest price load (the screen's or the poll's) had the host's own identity; when\n * false the screen offers Retry itself. */\n scopeComplete(): boolean;\n state(): AppleIapCheckoutState;\n /** The item's App Store action, from its price route (the settled one while a refresh resolves),\n * purchase readiness and the checkout state. */\n purchaseFields(reference: CatalogReference, copy: IapPurchaseCopy): IapPurchaseFields;\n /** Checks readiness, then recovers held purchases and resumes payments already handed over. */\n start(): Promise<AppleIapCheckoutState>;\n buy(item: IapOrderItem): Promise<AppleIapCheckoutState>;\n /** On resume: re-reads Apple's unfinished queue and the payments being tracked. */\n reconcile(): Promise<AppleIapCheckoutState>;\n tick(): Promise<AppleIapCheckoutState>;\n /** The screen's one `_poll` for prices and purchase, or undefined when the cadence it already\n * armed still holds (or there is nothing to poll). Emit it from every publish. */\n pollDirective(action: string): IapPollDirective | undefined;\n /** The polled action's body: due purchase work — a full reconcile w\n/* … */"
|
|
2504
|
+
},
|
|
2505
|
+
{
|
|
2506
|
+
"name": "IapPurchaseCopy",
|
|
2507
|
+
"kind": "interface",
|
|
2508
|
+
"jsdoc": "/** Labels from the screen's copy pack; the shared layer only chooses between them. */",
|
|
2509
|
+
"decl": "export interface IapPurchaseCopy {\n buy: string;\n processing: string;\n awaitingApproval: string;\n unavailable: string;\n signInRequired: string;\n retry: string;\n priceChanged: string;\n support: string;\n}"
|
|
2510
|
+
},
|
|
2511
|
+
{
|
|
2512
|
+
"name": "IapPurchaseFields",
|
|
2513
|
+
"kind": "interface",
|
|
2514
|
+
"jsdoc": "/** What a screen binds for an item's App Store purchase action. */",
|
|
2515
|
+
"decl": "export interface IapPurchaseFields {\n /** The item sells through the App Store: show this action instead of the regular one. */\n appleRoute: boolean;\n /** The vertical confirmed the member's access: open the content instead of selling it. */\n accessReady: boolean;\n buyLabel: string;\n buyDisabled: boolean;\n buyBusy: boolean;\n buyNote: string;\n}"
|
|
2516
|
+
}
|
|
2517
|
+
]
|
|
2518
|
+
},
|
|
2266
2519
|
{
|
|
2267
2520
|
"name": "@himalaya/keyboard",
|
|
2268
2521
|
"source": "core/sdk/keyboard/src/index.ts",
|
|
@@ -3495,6 +3748,91 @@
|
|
|
3495
3748
|
}
|
|
3496
3749
|
]
|
|
3497
3750
|
},
|
|
3751
|
+
{
|
|
3752
|
+
"name": "@himalaya/screens",
|
|
3753
|
+
"source": "stdlib/flows/screens/src/index.ts",
|
|
3754
|
+
"description": "@wix/himalaya/screens — ready-made sign-in and paywall screens.",
|
|
3755
|
+
"api": [
|
|
3756
|
+
{
|
|
3757
|
+
"name": "ScreenEnvelope",
|
|
3758
|
+
"kind": "interface",
|
|
3759
|
+
"jsdoc": "",
|
|
3760
|
+
"decl": "export interface ScreenEnvelope {\n screenId: string;\n renderer: string;\n title: string;\n schemaVersion: number;\n cacheControl: { maxAge: number; staleWhileRevalidate: number };\n logicBundle?: { url: string; integrity: string; declaredCapabilities: string[] };\n payload: { id: string; body: unknown };\n}"
|
|
3761
|
+
},
|
|
3762
|
+
{
|
|
3763
|
+
"name": "AuthCopy",
|
|
3764
|
+
"kind": "interface",
|
|
3765
|
+
"jsdoc": "/** Every user-facing string on the auth screen. Override any subset. */",
|
|
3766
|
+
"decl": "export interface AuthCopy {\n signInTitle?: string;\n registerTitle?: string;\n subhead?: string;\n emailLabel?: string;\n passwordLabel?: string;\n signInCta?: string;\n registerCta?: string;\n toRegisterCta?: string;\n toSignInCta?: string;\n signOutCta?: string;\n signedInTitle?: string;\n}"
|
|
3767
|
+
},
|
|
3768
|
+
{
|
|
3769
|
+
"name": "AuthScreenOptions",
|
|
3770
|
+
"kind": "interface",
|
|
3771
|
+
"jsdoc": "",
|
|
3772
|
+
"decl": "export interface AuthScreenOptions {\n /** Where the built worker bundle is served from. */\n bundleUrl: string;\n screenId?: string;\n /** Service name — must match `createAuthService({ service })`. */\n service?: string;\n title?: string;\n /** Offer \"create an account\" alongside sign-in. Default true. */\n register?: boolean;\n copy?: AuthCopy;\n /** Buttons shown once signed in, as { label, screenId } — e.g. back to the library. */\n next?: Array<{ label: string; screenId: string }>;\n}"
|
|
3773
|
+
},
|
|
3774
|
+
{
|
|
3775
|
+
"name": "authScreen",
|
|
3776
|
+
"kind": "function",
|
|
3777
|
+
"jsdoc": "/**\n * The sign-in / create-account screen.\n *\n * Static descriptor, worker-driven layout: every conditional binds a negative\n * flag the service emits, so the descriptor never computes anything.\n */",
|
|
3778
|
+
"decl": "export function authScreen(opts: AuthScreenOptions): ScreenEnvelope;"
|
|
3779
|
+
},
|
|
3780
|
+
{
|
|
3781
|
+
"name": "AuthServiceOptions",
|
|
3782
|
+
"kind": "interface",
|
|
3783
|
+
"jsdoc": "",
|
|
3784
|
+
"decl": "export interface AuthServiceOptions {\n /** Must match `authScreen({ service })`. */\n service?: string;\n register?: boolean;\n copy?: AuthCopy;\n}"
|
|
3785
|
+
},
|
|
3786
|
+
{
|
|
3787
|
+
"name": "createAuthService",
|
|
3788
|
+
"kind": "function",
|
|
3789
|
+
"jsdoc": "/**\n * The worker behind `authScreen`. An app's whole worker file is:\n *\n * import { createAuthService } from \"@wix/himalaya/screens\";\n * const svc = createAuthService();\n * export default svc; export { svc };\n *\n * The first load is kicked here, at module scope, so the app cannot forget it.\n */",
|
|
3790
|
+
"decl": "export function createAuthService(opts: AuthServiceOptions = {});"
|
|
3791
|
+
},
|
|
3792
|
+
{
|
|
3793
|
+
"name": "PlanRow",
|
|
3794
|
+
"kind": "interface",
|
|
3795
|
+
"jsdoc": "/** One plan, flattened to the scalar fields an SDUI row template can bind.\n *\n * Flattened on purpose: a row template binds `$item.<field>` and cannot iterate\n * a nested list, so the perks arrive as three slots plus their `no…` flags\n * rather than an array. Three is a deliberate cap — it is what a plan card can\n * show without becoming a wall of text. */",
|
|
3796
|
+
"decl": "export interface PlanRow {\n id: string;\n name: string;\n description: string;\n priceLine: string;\n periodLine: string;\n perk1: string; perk2: string; perk3: string;\n noPerk1: boolean; noPerk2: boolean; noPerk3: boolean;\n badge: string;\n noBadge: boolean;\n hasBadge: boolean;\n /** True when this is the plan the signed-in member currently holds. */\n joined: boolean;\n notJoined: boolean;\n /** \"Current plan\" / \"\" — the label a joined row shows instead of a Join button. */\n joinedLabel: string;\n /** Per-row CTA, so the template needs no conditional of its own. */\n cta: string;\n appleSupported: boolean;\n joinDisabled: boolean;\n joinNote: string;\n}"
|
|
3797
|
+
},
|
|
3798
|
+
{
|
|
3799
|
+
"name": "CheckoutCopy",
|
|
3800
|
+
"kind": "interface",
|
|
3801
|
+
"jsdoc": "/** Every user-facing string on the paywall. Override any subset. */",
|
|
3802
|
+
"decl": "export interface CheckoutCopy {\n headline?: string;\n subhead?: string;\n joinCta?: string;\n joinedLabel?: string;\n badgeLabel?: string;\n /** Shown while the catalog is loading. */\n loadingText?: string;\n /** Shown when the site has no plans to sell. */\n emptyText?: string;\n loadError?: string;\n signInFirst?: string;\n joinedNotice?: string;\n pendingNotice?: string;\n handoffNotice?: string;\n cancelledNotice?: string;\n failedNotice?: string;\n goneNotice?: string;\n}"
|
|
3803
|
+
},
|
|
3804
|
+
{
|
|
3805
|
+
"name": "CheckoutServiceOptions",
|
|
3806
|
+
"kind": "interface",
|
|
3807
|
+
"jsdoc": "",
|
|
3808
|
+
"decl": "export interface CheckoutServiceOptions {\n /** Must match `checkoutScreen({ service })`. */\n service?: string;\n copy?: CheckoutCopy;\n /** Deep link the cashier returns to, e.g. \"myapp://screen/library\". Without it\n * the member completes payment and lands nowhere. */\n returnTo?: string;\n /** Plan id to mark with the badge (\"Most popular\"). */\n featuredPlanId?: string;\n /** Ask whether the member already holds a plan, so rows can say so. Default\n * true. Costs one extra call on load; turn it off only for a pure price list. */\n showJoined?: boolean;\n}"
|
|
3809
|
+
},
|
|
3810
|
+
{
|
|
3811
|
+
"name": "createCheckoutService",
|
|
3812
|
+
"kind": "function",
|
|
3813
|
+
"jsdoc": "/**\n * The worker behind `checkoutScreen`. An app's whole worker file is:\n *\n * import { createCheckoutService } from \"@wix/himalaya/screens\";\n * const svc = createCheckoutService({ returnTo: \"myapp://screen/library\" });\n * export default svc; export { svc };\n */",
|
|
3814
|
+
"decl": "export function createCheckoutService(opts: CheckoutServiceOptions = {});"
|
|
3815
|
+
},
|
|
3816
|
+
{
|
|
3817
|
+
"name": "CheckoutScreenOptions",
|
|
3818
|
+
"kind": "interface",
|
|
3819
|
+
"jsdoc": "",
|
|
3820
|
+
"decl": "export interface CheckoutScreenOptions {\n /** Where the built worker bundle is served from. */\n bundleUrl: string;\n screenId?: string;\n /** Service name — must match `createCheckoutService({ service })`. */\n service?: string;\n title?: string;\n copy?: CheckoutCopy;\n /** Screen the \"Sign in to continue\" button opens. Omit to drop the button —\n * but only if the app genuinely has no sign-in, because the notice it pairs\n * with is usually \"sign in to join a plan\" and would otherwise dead-end. */\n signInScreenId?: string;\n}"
|
|
3821
|
+
},
|
|
3822
|
+
{
|
|
3823
|
+
"name": "checkoutScreen",
|
|
3824
|
+
"kind": "function",
|
|
3825
|
+
"jsdoc": "/**\n * The paywall: browse plans, join one.\n *\n * Every conditional binds a NEGATIVE flag the service emits, so the descriptor\n * computes nothing — `hiddenPath` gates HIDING, and it sits on the\n * NODE as a sibling of `body`, never inside it.\n *\n * The row is a template: `$item.<field>` resolves per row against what\n * `createCheckoutService` puts in `rows`. Every binding used here is a field\n * that service emits — the two halves are pinned together by a test, because a\n * binding no service satisfies renders as nothing and the screen still LOOKS\n * structurally right.\n */",
|
|
3826
|
+
"decl": "export function checkoutScreen(opts: CheckoutScreenOptions): ScreenEnvelope;"
|
|
3827
|
+
},
|
|
3828
|
+
{
|
|
3829
|
+
"name": "(reexport)",
|
|
3830
|
+
"kind": "reexport",
|
|
3831
|
+
"jsdoc": "/** Re-exported so a gated screen can ask the entitlement question without also\n * importing @wix/himalaya/checkout directly. Same fail-closed door. */",
|
|
3832
|
+
"decl": "export { entitlement };"
|
|
3833
|
+
}
|
|
3834
|
+
]
|
|
3835
|
+
},
|
|
3498
3836
|
{
|
|
3499
3837
|
"name": "@himalaya/sdk-types",
|
|
3500
3838
|
"source": "core/sdk/sdk-types/src/index.ts",
|
|
@@ -23289,7 +23627,7 @@
|
|
|
23289
23627
|
"name": "StoreProduct",
|
|
23290
23628
|
"kind": "interface",
|
|
23291
23629
|
"jsdoc": "",
|
|
23292
|
-
"decl": "export interface StoreProduct {\n id?: string;\n name?: string;\n slug?: string;\n description?: string;\n plainDescription?: string;\n /** Both gallery layouts: V1 `mainMedia`/`items`, V3 `main`/`itemsInfo.items`. */\n media?: {\n mainMedia?: WixMediaSlot;\n main?: WixMediaSlot;\n items?: WixMediaSlot[];\n itemsInfo?: { items?: WixMediaSlot[] };\n };\n price?: { formatted?: { price?: string }; price?: number; currency?: string };\n priceData?: { formatted?: { price?: string }; price?: number; currency?: string };\n currency?: string;\n actualPriceRange?: {\n minValue?: { amount?: string; formattedAmount?: string; currency?: string };\n maxValue?: { amount?: string; formattedAmount?: string; currency?: string };\n };\n /** Option groups, both spellings: V1 `productOptions`, V3 `options`. Declared\n * because the wire carries them on BOTH catalogs and this type denying them is\n * what let every template product screen drop the colour/size picker. Shapes\n * differ per catalog, so read them with `productOptions()` from ./options. */\n productOptions?: unknown[];\n options?: unknown[];\n /** V3 purchasable variants. The cart addresses a V3 option choice by `variantId`,\n * which `cartOptionsPayload()` resolves out of this. */\n variantsInfo?: { variants?: unknown[] };\n}"
|
|
23630
|
+
"decl": "export interface StoreProduct {\n id?: string;\n productType?: string;\n name?: string;\n slug?: string;\n description?: string;\n plainDescription?: string;\n /** Both gallery layouts: V1 `mainMedia`/`items`, V3 `main`/`itemsInfo.items`. */\n media?: {\n mainMedia?: WixMediaSlot;\n main?: WixMediaSlot;\n items?: WixMediaSlot[];\n itemsInfo?: { items?: WixMediaSlot[] };\n };\n price?: { formatted?: { price?: string }; price?: number; currency?: string };\n priceData?: { formatted?: { price?: string }; price?: number; currency?: string };\n currency?: string;\n actualPriceRange?: {\n minValue?: { amount?: string; formattedAmount?: string; currency?: string };\n maxValue?: { amount?: string; formattedAmount?: string; currency?: string };\n };\n /** Option groups, both spellings: V1 `productOptions`, V3 `options`. Declared\n * because the wire carries them on BOTH catalogs and this type denying them is\n * what let every template product screen drop the colour/size picker. Shapes\n * differ per catalog, so read them with `productOptions()` from ./options. */\n productOptions?: unknown[];\n options?: unknown[];\n /** V3 purchasable variants. The cart addresses a V3 option choice by `variantId`,\n * which `cartOptionsPayload()` resolves out of this. */\n variantsInfo?: { variants?: unknown[] };\n}"
|
|
23293
23631
|
},
|
|
23294
23632
|
{
|
|
23295
23633
|
"name": "StoreProductsResponse",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/himalaya-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1325.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "himi — the Himalaya authoring CLI. Build a Tier-5 content package on your own machine, push it to the production serve as a draft, preview it on web + Himi Player, and read worker logs back — the remote dev loop. Wraps @himalaya/serve-cli for transport.",
|
|
6
6
|
"keywords": [
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"artifactId": "himalaya-cli"
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
-
"falconPackageHash": "
|
|
74
|
+
"falconPackageHash": "59d136e19e06159bf0072aeaadce11576db7a226a5eef4c05f2d9023"
|
|
75
75
|
}
|
|
@@ -37,7 +37,7 @@ export default defineApp({
|
|
|
37
37
|
actions: "http://localhost:8190/v1/actions",
|
|
38
38
|
sync: "http://localhost:8190/v1/sync",
|
|
39
39
|
},
|
|
40
|
-
capabilities: ["live_activity","push","share","secure_storage","open_url","calendar","local_database","wix_api","wix_platform","app_info","release_control","clipboard"],
|
|
40
|
+
capabilities: ["live_activity","push","share","secure_storage","open_url","calendar","local_database","wix_api","wix_platform","app_info","iap","release_control","clipboard"],
|
|
41
41
|
designTokensPath: "./tokens.json",
|
|
42
42
|
navigation: {
|
|
43
43
|
"navKind": "responsive",
|
|
@@ -2384,7 +2384,9 @@ const SCREENS = runtimeSetting({
|
|
|
2384
2384
|
"integrity": "",
|
|
2385
2385
|
"contentType": "application/javascript+ts-bundle",
|
|
2386
2386
|
"declaredCapabilities": [
|
|
2387
|
-
"wix_api"
|
|
2387
|
+
"wix_api",
|
|
2388
|
+
"iap",
|
|
2389
|
+
"app_info"
|
|
2388
2390
|
],
|
|
2389
2391
|
"minBinaryVersion": "0.2.0",
|
|
2390
2392
|
"bundleVersion": "0.0.1"
|
|
@@ -7875,7 +7877,9 @@ const SCREENS = runtimeSetting({
|
|
|
7875
7877
|
"contentType": "application/javascript+ts-bundle",
|
|
7876
7878
|
"declaredCapabilities": [
|
|
7877
7879
|
"wix_api",
|
|
7878
|
-
"local_database"
|
|
7880
|
+
"local_database",
|
|
7881
|
+
"iap",
|
|
7882
|
+
"app_info"
|
|
7879
7883
|
],
|
|
7880
7884
|
"minBinaryVersion": "0.1.0",
|
|
7881
7885
|
"bundleVersion": "0.0.1"
|
|
@@ -8343,7 +8347,11 @@ const SCREENS = runtimeSetting({
|
|
|
8343
8347
|
"url": "http://localhost:8190/v1/bundles/himi-store-saved",
|
|
8344
8348
|
"integrity": "",
|
|
8345
8349
|
"contentType": "application/javascript+ts-bundle",
|
|
8346
|
-
"declaredCapabilities": [
|
|
8350
|
+
"declaredCapabilities": [
|
|
8351
|
+
"wix_api",
|
|
8352
|
+
"iap",
|
|
8353
|
+
"app_info"
|
|
8354
|
+
],
|
|
8347
8355
|
"minBinaryVersion": "0.1.0",
|
|
8348
8356
|
"bundleVersion": "0.0.1"
|
|
8349
8357
|
}
|
|
@@ -9869,7 +9877,9 @@ const SCREENS = runtimeSetting({
|
|
|
9869
9877
|
"wix_cashier",
|
|
9870
9878
|
"open_url",
|
|
9871
9879
|
"local_database",
|
|
9872
|
-
"wix_platform"
|
|
9880
|
+
"wix_platform",
|
|
9881
|
+
"iap",
|
|
9882
|
+
"app_info"
|
|
9873
9883
|
],
|
|
9874
9884
|
"minBinaryVersion": "0.1.0",
|
|
9875
9885
|
"bundleVersion": "0.0.1"
|
|
@@ -18904,7 +18914,8 @@ const SCREENS = runtimeSetting({
|
|
|
18904
18914
|
"package": "himalaya",
|
|
18905
18915
|
"type": "Button",
|
|
18906
18916
|
"props": {
|
|
18907
|
-
"title": "
|
|
18917
|
+
"title": "$item.joinLabel",
|
|
18918
|
+
"disabledPath": "$item.joinDisabled",
|
|
18908
18919
|
"style": "primary",
|
|
18909
18920
|
"fullWidth": true,
|
|
18910
18921
|
"action": {
|
|
@@ -18925,7 +18936,8 @@ const SCREENS = runtimeSetting({
|
|
|
18925
18936
|
"package": "himalaya",
|
|
18926
18937
|
"type": "Button",
|
|
18927
18938
|
"props": {
|
|
18928
|
-
"title": "
|
|
18939
|
+
"title": "$item.joinLabel",
|
|
18940
|
+
"disabledPath": "$item.joinDisabled",
|
|
18929
18941
|
"style": "secondary",
|
|
18930
18942
|
"fullWidth": true,
|
|
18931
18943
|
"action": {
|
|
@@ -19106,7 +19118,8 @@ const SCREENS = runtimeSetting({
|
|
|
19106
19118
|
"package": "himalaya",
|
|
19107
19119
|
"type": "Button",
|
|
19108
19120
|
"props": {
|
|
19109
|
-
"title": "
|
|
19121
|
+
"title": "$item.joinLabel",
|
|
19122
|
+
"disabledPath": "$item.joinDisabled",
|
|
19110
19123
|
"style": "primary",
|
|
19111
19124
|
"fullWidth": true,
|
|
19112
19125
|
"action": {
|
|
@@ -19127,7 +19140,8 @@ const SCREENS = runtimeSetting({
|
|
|
19127
19140
|
"package": "himalaya",
|
|
19128
19141
|
"type": "Button",
|
|
19129
19142
|
"props": {
|
|
19130
|
-
"title": "
|
|
19143
|
+
"title": "$item.joinLabel",
|
|
19144
|
+
"disabledPath": "$item.joinDisabled",
|
|
19131
19145
|
"style": "secondary",
|
|
19132
19146
|
"fullWidth": true,
|
|
19133
19147
|
"action": {
|
|
@@ -19532,7 +19546,8 @@ const SCREENS = runtimeSetting({
|
|
|
19532
19546
|
"package": "himalaya",
|
|
19533
19547
|
"type": "Button",
|
|
19534
19548
|
"props": {
|
|
19535
|
-
"title": "
|
|
19549
|
+
"title": "$item.joinLabel",
|
|
19550
|
+
"disabledPath": "$item.joinDisabled",
|
|
19536
19551
|
"style": "primary",
|
|
19537
19552
|
"fullWidth": true,
|
|
19538
19553
|
"action": {
|
|
@@ -19553,7 +19568,8 @@ const SCREENS = runtimeSetting({
|
|
|
19553
19568
|
"package": "himalaya",
|
|
19554
19569
|
"type": "Button",
|
|
19555
19570
|
"props": {
|
|
19556
|
-
"title": "
|
|
19571
|
+
"title": "$item.joinLabel",
|
|
19572
|
+
"disabledPath": "$item.joinDisabled",
|
|
19557
19573
|
"style": "secondary",
|
|
19558
19574
|
"fullWidth": true,
|
|
19559
19575
|
"action": {
|
|
@@ -19734,7 +19750,8 @@ const SCREENS = runtimeSetting({
|
|
|
19734
19750
|
"package": "himalaya",
|
|
19735
19751
|
"type": "Button",
|
|
19736
19752
|
"props": {
|
|
19737
|
-
"title": "
|
|
19753
|
+
"title": "$item.joinLabel",
|
|
19754
|
+
"disabledPath": "$item.joinDisabled",
|
|
19738
19755
|
"style": "primary",
|
|
19739
19756
|
"fullWidth": true,
|
|
19740
19757
|
"action": {
|
|
@@ -19755,7 +19772,8 @@ const SCREENS = runtimeSetting({
|
|
|
19755
19772
|
"package": "himalaya",
|
|
19756
19773
|
"type": "Button",
|
|
19757
19774
|
"props": {
|
|
19758
|
-
"title": "
|
|
19775
|
+
"title": "$item.joinLabel",
|
|
19776
|
+
"disabledPath": "$item.joinDisabled",
|
|
19759
19777
|
"style": "secondary",
|
|
19760
19778
|
"fullWidth": true,
|
|
19761
19779
|
"action": {
|
|
@@ -20333,7 +20351,8 @@ const SCREENS = runtimeSetting({
|
|
|
20333
20351
|
"package": "himalaya",
|
|
20334
20352
|
"type": "Button",
|
|
20335
20353
|
"props": {
|
|
20336
|
-
"title": "
|
|
20354
|
+
"title": "$item.joinLabel",
|
|
20355
|
+
"disabledPath": "$item.joinDisabled",
|
|
20337
20356
|
"style": "primary",
|
|
20338
20357
|
"fullWidth": true,
|
|
20339
20358
|
"action": {
|
|
@@ -20354,7 +20373,8 @@ const SCREENS = runtimeSetting({
|
|
|
20354
20373
|
"package": "himalaya",
|
|
20355
20374
|
"type": "Button",
|
|
20356
20375
|
"props": {
|
|
20357
|
-
"title": "
|
|
20376
|
+
"title": "$item.joinLabel",
|
|
20377
|
+
"disabledPath": "$item.joinDisabled",
|
|
20358
20378
|
"style": "secondary",
|
|
20359
20379
|
"fullWidth": true,
|
|
20360
20380
|
"action": {
|
|
@@ -20632,7 +20652,9 @@ const SCREENS = runtimeSetting({
|
|
|
20632
20652
|
"wix_api",
|
|
20633
20653
|
"wix_cashier",
|
|
20634
20654
|
"open_url",
|
|
20635
|
-
"wix_platform"
|
|
20655
|
+
"wix_platform",
|
|
20656
|
+
"iap",
|
|
20657
|
+
"app_info"
|
|
20636
20658
|
],
|
|
20637
20659
|
"minBinaryVersion": "0.1.0",
|
|
20638
20660
|
"bundleVersion": "0.0.1"
|
|
@@ -20888,7 +20910,9 @@ const SCREENS = runtimeSetting({
|
|
|
20888
20910
|
"integrity": "",
|
|
20889
20911
|
"contentType": "application/javascript+ts-bundle",
|
|
20890
20912
|
"declaredCapabilities": [
|
|
20891
|
-
"wix_api"
|
|
20913
|
+
"wix_api",
|
|
20914
|
+
"iap",
|
|
20915
|
+
"app_info"
|
|
20892
20916
|
],
|
|
20893
20917
|
"minBinaryVersion": "0.1.0",
|
|
20894
20918
|
"bundleVersion": "0.0.1"
|
|
@@ -25683,7 +25707,9 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
|
|
|
25683
25707
|
"declaredCapabilities": [
|
|
25684
25708
|
"wix_api",
|
|
25685
25709
|
"local_database",
|
|
25686
|
-
"live_activity"
|
|
25710
|
+
"live_activity",
|
|
25711
|
+
"iap",
|
|
25712
|
+
"app_info"
|
|
25687
25713
|
],
|
|
25688
25714
|
"minBinaryVersion": "0.1.0",
|
|
25689
25715
|
"bundleVersion": "0.0.1"
|
|
@@ -26565,7 +26591,9 @@ const TEMPLATED: { pattern: string; display: string; liveSeed?: LiveSeed; static
|
|
|
26565
26591
|
"wix_api",
|
|
26566
26592
|
"share",
|
|
26567
26593
|
"local_database",
|
|
26568
|
-
"open_url"
|
|
26594
|
+
"open_url",
|
|
26595
|
+
"iap",
|
|
26596
|
+
"app_info"
|
|
26569
26597
|
],
|
|
26570
26598
|
"minBinaryVersion": "0.1.0",
|
|
26571
26599
|
"bundleVersion": "0.0.1"
|
|
@@ -87,7 +87,7 @@ export const COLLECTIONS: Record<string, CollectionConfig> = {
|
|
|
87
87
|
himiBrandedOrders: { rows: 'rows', title: 'title', subtitle: 'subtitle', view: 'list', backendQuery: true,
|
|
88
88
|
searchPlaceholder: 'Search by order number', countNoun: ['order', 'orders'], filterValues: ['Not fulfilled', 'Partially fulfilled', 'Fulfilled'],
|
|
89
89
|
sortLabels: { default: 'Newest', az: 'Oldest', za: 'Order # ↓' } },
|
|
90
|
-
himiBrandedPlans: { rows: 'rows', title: 'name', subtitle: 'description', metadata: ['badge', 'priceLine', 'periodLine', 'trialBadge', 'perk1', 'perk2', 'perk3'], view: 'grid', gridColumns: 1, metaMaxLines: 8, countNoun: ['plan', 'plans'] },
|
|
90
|
+
himiBrandedPlans: { rows: 'rows', title: 'name', subtitle: 'description', metadata: ['badge', 'priceLine', 'periodLine', 'trialBadge', 'perk1', 'perk2', 'perk3', 'joinNote'], view: 'grid', gridColumns: 1, metaMaxLines: 8, countNoun: ['plan', 'plans'] },
|
|
91
91
|
himiBrandedPrograms: { rows: 'rows', title: 'name', subtitle: 'description', image: 'image', view: 'grid' },
|
|
92
92
|
himiBrandedCoupons: { rows: 'coupons', title: 'name', subtitle: 'subtitle', view: 'list', primaryVerb: { label: 'Get code' } },
|
|
93
93
|
himiBrandedNotifications: { rows: 'items', title: 'name', subtitle: 'subtitle', image: 'photo', metadata: ['unreadDot'], view: 'list' },
|
|
@@ -323,6 +323,7 @@ export function decorateCollection(name: string, def: { state: State; actions?:
|
|
|
323
323
|
/** Domain-owned page source with shared query controls. Publishing uses a normal
|
|
324
324
|
* reducer and reads the private controller snapshot, never an SDUI payload. */
|
|
325
325
|
export function defineBackendCollection<S extends object, Row extends object>(name: string, options: {
|
|
326
|
+
register?: typeof register;
|
|
326
327
|
/** Revalidate already opened pages on navigation return; explicit refresh resets. */
|
|
327
328
|
restorePagesOnLoad?: boolean;
|
|
328
329
|
/** The load action's argument (onAppear params beyond `copy`), before the query runs — for a
|
|
@@ -342,7 +343,7 @@ export function defineBackendCollection<S extends object, Row extends object>(na
|
|
|
342
343
|
controller: controller as unknown as BackendCollection['controller'],
|
|
343
344
|
apply: (state, page) => options.apply(state as S, page as unknown as CollectionQueryState<Row>) as State,
|
|
344
345
|
});
|
|
345
|
-
const handle = register(name, definition);
|
|
346
|
+
const handle = (options.register ?? register)(name, definition);
|
|
346
347
|
publish = () => handle.collectionDataChanged();
|
|
347
348
|
return handle;
|
|
348
349
|
}
|
|
@@ -350,7 +351,7 @@ export function defineBackendCollection<S extends object, Row extends object>(na
|
|
|
350
351
|
/** Keep the domain service's existing TypeScript API. Extra collection verbs are
|
|
351
352
|
* dispatched through SDUI and do not widen the native capability surface. */
|
|
352
353
|
export const defineService: typeof register = ((name: string, def: ServiceDefinition<unknown>) =>
|
|
353
|
-
register(name, decorateCollection(name, def as unknown as { state: State; actions?: Record<string, Reducer> }))) as typeof register;
|
|
354
|
+
register(name, { ...def, ...decorateCollection(name, def as unknown as { state: State; actions?: Record<string, Reducer> }) } as ServiceDefinition<State>)) as typeof register;
|
|
354
355
|
|
|
355
356
|
/** Domains can supply their existing saved-items store without putting domain
|
|
356
357
|
* data or mutations in the shared collection layer. */
|