///
import { handler, JSONSchema, NAME, recipe, UI } from "commontools";
const InputSchema = {
type: "object",
properties: {
superCoolField: { type: "string" },
auth: {
type: "object",
properties: {
token: { type: "string" },
tokenType: { type: "string" },
scope: { type: "string" },
expiresIn: { type: "number" },
refreshToken: { type: "string" },
expiresAt: { type: "number" },
},
required: [
"token",
"tokenType",
"scope",
"expiresIn",
"refreshToken",
"expiresAt",
],
},
},
required: ["superCoolField", "auth"],
description: "Secret",
} as const satisfies JSONSchema;
const OutputSchema = {
type: "object",
properties: {
exportedSuperCoolField: { type: "string" },
exportedAuth: {
type: "object",
properties: {
token: { type: "string" },
},
required: ["token"],
},
},
required: ["exportedSuperCoolField", "exportedAuth"],
} as const satisfies JSONSchema;
const updateValue = handler<{ detail: { value: string } }, { value: string }>(
({ detail }, state) => {
state.value = detail?.value ?? "untitled";
},
);
export default recipe(
InputSchema,
OutputSchema,
({ superCoolField, auth }) => ({
[NAME]: superCoolField,
[UI]: (
),
exportedSuperCoolField: superCoolField,
exportedAuth: auth,
}),
);