// Licensed to the Apache Software Foundation (ASF) under one or more contributor
// license agreements; and to You under the Apache License, Version 2.0.

/*
 * Increment input value by 1
 */
function main({ value }) { return { value: value + 1 } }
