function __cfHardenFn(fn: Function) { Object.freeze(fn); const prototype = fn.prototype; if (prototype && typeof prototype === "object") { Object.freeze(prototype); } return fn; } import { __cfHelpers } from "commonfabric"; import { pattern, UI } from "commonfabric"; const define = undefined; const runtimeDeps = undefined; const __cfAmdHooks = undefined; interface Item { id: string; price: number; } interface State { items: Item[]; discount: number; } const __cfPattern_1 = __cfHelpers.pattern(__cf_pattern_input => { const item = __cf_pattern_input.key("element"); return {item.key("id")}; }, { type: "object", properties: { element: { $ref: "#/$defs/Item" } }, required: ["element"], $defs: { Item: { type: "object", properties: { id: { type: "string" }, price: { type: "number" } }, required: ["id", "price"] } } } as const satisfies __cfHelpers.JSONSchema, { anyOf: [{ $ref: "https://commonfabric.org/schemas/vnode.json" }, { $ref: "#/$defs/UIRenderable" }, { type: "object", properties: {} }], $defs: { UIRenderable: { type: "object", properties: { $UI: { $ref: "https://commonfabric.org/schemas/vnode.json" } }, required: ["$UI"] } } } as const satisfies __cfHelpers.JSONSchema); const __cfLift_1 = __cfHelpers.lift<{ item: { price: number; }; state: { discount: number; }; }, number>(({ item, state }) => item.price * state.discount, { type: "object", properties: { item: { type: "object", properties: { price: { type: "number" } }, required: ["price"] }, state: { type: "object", properties: { discount: { type: "number" } }, required: ["discount"] } }, required: ["item", "state"] } as const satisfies __cfHelpers.JSONSchema, { type: "number" } as const satisfies __cfHelpers.JSONSchema); const __cfPattern_2 = __cfHelpers.pattern(__cf_pattern_input => { const item = __cf_pattern_input.key("element"); const state = __cf_pattern_input.key("params", "state"); return ({__cfLift_1({ item: { price: item.key("price") }, state: { discount: state.key("discount") } })}); }, { type: "object", properties: { element: { $ref: "#/$defs/Item" }, params: { type: "object", properties: { state: { type: "object", properties: { discount: { type: "number" } }, required: ["discount"] } }, required: ["state"] } }, required: ["element", "params"], $defs: { Item: { type: "object", properties: { id: { type: "string" }, price: { type: "number" } }, required: ["id", "price"] } } } as const satisfies __cfHelpers.JSONSchema, { anyOf: [{ $ref: "https://commonfabric.org/schemas/vnode.json" }, { $ref: "#/$defs/UIRenderable" }, { type: "object", properties: {} }], $defs: { UIRenderable: { type: "object", properties: { $UI: { $ref: "https://commonfabric.org/schemas/vnode.json" } }, required: ["$UI"] } } } as const satisfies __cfHelpers.JSONSchema); // FIXTURE: map-callback-schema-params // Verifies: mapWithPattern callback schemas omit params when captures are unused // and include params when captures are used // state.items.map((item) => {item.id}) -> required: ["element"] // state.items.map((item) => {item.price * state.discount}) // -> required: ["element", "params"] // Context: Both callbacks are pattern-owned JSX maps over the same receiver; only the second closes over outer state export default pattern((state) => { return { [UI]: (