open-index/open-npm huggingface dataset:
npm package: @marklogic-community/grove-cli
Description: A command-line tool for generating Grove projects.
Latest version: 1.0.1

# MarkLogic Grove CLI (Command Line Interface)

## Installation

    npm install -g @marklogic-community/grove-cli

This makes the `grove` command available on your command-line.

## Usage

### grove new

Generates a new Grove project as a subdirectory of the current directory. The `new` command offers a choice among project templates. For now, it offers [React](https://project.marklogic.com/repo/projects/NACW/repos/grove-react-template/browse) and [Vue](https://project.marklogic.com/repo/users/gjosten/repos/grove-vue-template/browse) options.

Use it by passing your new Project name.

    grove new my-app

You can see options for this command by running:

    grove new --help

For example, you can pass a `--templateVersion`. This currently corresponds to a branch or tag name in the template's git repository - though, in the future, it may refer to some other named template version.

### grove config

Generates or modifies settings for your application, based on prompts. This is the preferred way to manage configuration files. **Run this command from the parent directory of your generated project.**

**Also: Be sure to check your work into version control before running `config`, so you can see the changes made and back them out if necessary.**

    grove config

You can see options for this command by running:

    grove config --help

### grove demo

**This command is intended for very limited use cases. You should not use it for regular application development. It is for quick demonstrations and requires that MarkLogic is already running and initialized, that all dependencies are in place on the machine where it is invoked, that provided ports are available, etc.**

Generates a new application (as if you ran `grove new`), prompts for some configuration (as if you ran `grove config`), configures MarkLogic, loads sample data, and starts a Grove middle-tier and Webpack development server for front-end assets.

    grove demo my-demo

You can see options for this command by running:

    grove demo --help

For example, you can pass a `--templateVersion`. This currently corresponds to a branch or tag name in the template's git repository - though, in the future, it may refer to some other named template version.
npm package: @marklogic-community/grove-crud-redux
Description: Redux module to model and retrieve MarkLogic documents
Latest version: 1.0.0

# MarkLogic Document Management using Redux

This is a Redux implementation for interaction with MarkLogic documents in the browser. It forms part of the MarkLogic Grove project. See the [reference application](https://github.com/marklogic-community/grove-react-template) for an example of using this library in practice.

## Install

    npm install @marklogic-community/grove-crud-redux --save

## Use

### Actions

#### Override default backend API service wrapper

### Selectors

The provided selectors only know about their slice of state, so your consuming code needs to wrap them to provide their particular slice of state. For example:

```javascript
import {
  actions as documentActions,
  selectors as documentSelectors
} from 'grove-crud-redux';

const bindSelector = (selector, mountPoint) => {
  return (state, ...args) => {
    return selector(state[mountPoint], ...args)
  }
}
const bindSelectors = (selectors, mountPoint) => {
  return Object.keys(selectors).reduce((bound, key) => {
    bound[key] = bindSelector(selectors[key], mountPoint)
    return bound
  }, {})
}

const boundDocumentSelectors = bindSelectors(documentSelectors, 'documents');
```

## 'Ducks' architecture

This roughly follows [the architecture laid out in the re-ducks proposal]( https://github.com/alexnm/re-ducks/blob/f28ecc59d43542b8353948ede0cd3a059ca177dd/README.md):

Specifically, the actionCreators and selectors are the primary external UI. State and reducers should be an implementation detail.

## Contributing

You will need to install the devDependencies:

    npm install

### Building

This project uses [Webpack](https://webpack.js.org/) for building.

    npm run build

### Testing

This project uses [Jest](https://facebook.github.io/jest/) for testing.

    npm test

Or, if you want it to watch for file changes and automatically re-run the tests:

    npm run test:watch

### Linting

This project uses the [Javascript Standard Style](https://standardjs.com/). It will be checked automatically when you run tests, but you will have a greatly improved experience if you [install an ESLint checker in your text editor](https://eslint.org/docs/user-guide/integrations#editors), so linting errors are highlighted immediately.
npm package: @marklogic-community/grove-ml-gradle
Description: Gradle plugin to support automating MarkLogic tasks for Grove
Latest version: 1.0.0

# Grove-ml-gradle

This Grove app is meant to support configuration of MarkLogic databases, app-servers, users, roles, etc. It also supports deployment of application code, and import of content.

## System requirements

The following someware must be pre-installed:

- [MarkLogic Server 7.0-1 or later](https://developer.marklogic.com/products) - The MarkLogic database, and target of configuration
- [Oracle/Sun Java JRE 1.8 or later](http://www.oracle.com/technetwork/java/javase/downloads/index.html) - Run-time for running Gradle

Also used, but downloaded and installed automatically:

- [MarkLogic Content Pump](https://developer.marklogic.com/products/mlcp) - MarkLogic data import tool (included via Gradle)
- [Gradle 4.8](https://gradle.org/) - Build tooling for the Java ecosystem (included using gradle-wrapper)
- [ml-gradle](https://github.com/marklogic-community/ml-gradle): The actual MarkLogic configuration deploy tool (included via Gradle)

## Quick Start (for the Impatient)

On Mac or Linux:

    ./gradlew mlDeploy
    ./gradlew loadSampleData

On Windows:

    gradlew.bat mlDeploy
    gradlew.bat loadSampleData

## Setting up the target enviroment

This deployment tool has been configured to look inside `gradle.properties` for the default settings. Next to that, it will look for environment specific settings via the `environmentName` variable. Adding `-PenvironmentName=dev` to any gradle call will cause the tool to look for a `gradle-dev.properties` for overrides or extra settings. The `environmentName` variable defaults to `local`, so by default any gradle call will look for `gradle-local.properties`.

Note: `gradle-local.properties` is gitignored by default, use it for settings specific to your own development environment, like your personal laptop.

## Deploy your Application

Run the following ml-gradle commands to deploy the application to the chosen MarkLogic
installation. It will create and configure databases, REST servers, users, and
roles for you, and deploy the back-end application code.

    ./gradlew mlDeploy -PenvironmentName=[local|dev|prod]

Or on Windows:

    gradlew.bat mlDeploy -PenvironmentName=[local|dev|prod]

## Loading Sample Data (optional)

The application comes with 3000 JSON documents generated by json-generator.com. They
will allow you to explore all the features you get out of the box in a better way. You
can load them with (MLCP)[https://docs.marklogic.com/guide/ingestion/content-pump] using
ml-gradle.

    ./gradlew loadSampleData

Or on Windows:

    gradlew.bat loadSampleData
npm package: @marklogic-community/grove-user-redux
Description: Redux module to power MarkLogic Grove user state
Latest version: 1.0.0

# User Management in Redux

This Redux module for user authentication forms part of the MarkLogic Grove project. In addition to client state management, it handles API calls to a Grove middle-tier. See the [reference application](https://github.com/marklogic-community/grove-react-template) for an example of using this library in practice.

## Install

    npm install @marklogic-community/grove-user-redux --save