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

packages:
  helloworld:
    actions:
      hello1:
        function: ../src/integration/helloworld/actions/hello.js
        runtime: nodejs
        web: true
        web-export: true
      hello2:
        function: ../src/integration/helloworld/actions/hello.js
        runtime: nodejs
        web: true
        web-export: false
      hello3:
        function: ../src/integration/helloworld/actions/hello.js
        runtime: nodejs
        web: false
        web-export: true
      hello4:
        function: ../src/integration/helloworld/actions/hello.js
        runtime: nodejs
        web: raw
        web-export: true
