# React CLI

A CLI tool for build modern web application and libraries

# Installation

Below Steps:-

> `npm i -g @zohodesk/react-cli`

# Usage

## Step 1

> `mkdir <your-project-folder> && cd mkdir <your-project-folder>`

## Step 2

- create `package.json` file
- add this to your `package.json`

```json
{
  "scripts": {
    "start": "react-cli start",
    "build": "react-cli build"
  }
}
```

## Step 3

- create below files
- `src/index.js`
- `src/index.html`

## Step 4

Now to run app

> `npm run start`

---

# Change Logs

# 1.1.26 (06-09-2024)

**Features**

  - Add a new className format that mirrors the class names used in the source code.
   ```
    app: {
      displayClassName: true
    }
   ```

  - option given to disable the HtmlWebpackPlugin.
   ```
    app: {
      generateHtml: true
    }
   ``` 
  - Control the rendering order of async CSS chunks.
  ```
    css: {
      enable: true,
      className: <ID of the tag before which all async CSS chunks should be rendered.>
    }
    ``` 
   

# 1.1.25 (12-08-2024) 

 - mp3 files support added

# 1.1.24 (29-06-2024)

- Worker loading logic fixes.

# 1.1.23 (28-06-2024)

**Features**

  - alias feature added for library, application and jest. To enable it , configure your `react-cli.config.js` as below

  ```
     {
      alias: {
        "@components": './src/components, 
      }
     }
  ```

  - For devmapping  config jsConfig.json ad below 

  ```
    {
      "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@components/*":   [ "./src/components/*"],
        }
      }
    }
  ```

  - Customized Script loading strategy added. To enabled it, configure your `react-cli.config.js` as below

      ```  
          {
            app: {
              htmlTemplate: {
                customScriptLoadingStrategey: {
                  enable: true,
                  options: {
                    async: [/.*js$/],
                    defer: [/^main.*\.js$/]
                  }
                }
              }
            }
          }
      ```

**Changes**

  - Worker loading logic

# 1.1.22 (6-6-2024) 

**Changes** 

  - Bug fix in Typescript

# 1.1.21 (4-6-2024)

- TypeScript support has been added for the application, library, and Jest.

- The `enable_typescript` option has been added in the react-cli.config.js. Set it to true to enable TypeScript

- Support for adding plugins is now available. To use this, configure your react-cli.config.js file as follows:

   ```
      babelCustomizationForLibrary: {
        babelPlugins: [<`your plugins`>]
      },
   ```
- The Memory leak issue while downloading i18n and CSS files has been fixed


# 1.1.20-exp.1

**Changes**

- Added memory leak fixes for script, links tags

**Feature**
- Custom Script loading strategy support for initial html script tags.

# 1.1.19-exp.18

**Changes**

- To do further build size optimization by utilizing webpack provided config.

```
  innerGraph: true,
  usedExports: true,
  sideEffects: true
```

# 1.1.20 (27-5-2024)

**Feature**

- enhancedReactLiveConverter.js added and imported in  docLoader file

- stats.json file creation deleted, if `enable_stats` option is false.

# 1.1.19 (5-2-2024)

**Feature:-**

- Added config to remove additon of `babel/react` extend code for 'spread' operator usage on JSX.

# 1.1.18 (30-01-2024)

**Feature:-**

- MJS loader support added.
- We can enable/disable this feature by `npm run start --enableMjsLoader=true/false` default value will be `false`.
 
```
app: {
  enableMjsLoader : true/false
}
```

# 1.1.17 (24.1.2024)

**Feature:-**

- Updated browser data used for querying target browsers, which lead to reduced polyfills in our bundle.

```
npm run updateTargetBrowserVersions // to update browser targets
```

**Fixes**

- added prop types removal for es6 bundling, which is missed.

# 1.1.16 (25-10-2023)

**Feature:-**

- Support for running devURL in a Kubernetes (k8s) environment has been added.

In order to support k8's, we need to the change the server url:- 

Follow the below steps to enable support for k8's in your app:-

  1.Add the following config in your react-cli.config.js file:-
 
```
app: {
  server: {
    domain : 'kubernetes'
  }
}
```

# 1.1.15 (11-10-2023)

**Feature:-**

- externals was added to  Prevent bundling of certain imported packages and retrieve these external dependencies at runtime.
- to use externals, we use the following pattern in `app > externals` :

For example
```
   externals: {
    <key> : <value>
   }
```
# 1.1.14 (11-9-2023)

**Feature:-**

- Value Replacer supports `^` before and `$` after the word to consider the whole word for replacement. Only if the exact word comes as value, there will be a replacement made.

**Issue Fix**

- 'space' character on variable conversion changes to undefined fixed.
- calc(100%) variable conversion to undefined fixed.
- height value if text converts to undefined, issue fixed.

# 1.1.13 (4-9-2023)

**Changes**

- Fixed the issue related to the resource cleanup plugin. (EfcResouceCleanupPlugin)


# 1.1.12 (1-9-2023)

**Features**

- Generating stats.json file for the build assets only in production mode. To use this feature we need to add `stats > enable` or cli flags `enable_stats`.
- Added Resource Cleanup plugin to cleanup resource retained by build tool. this plugin is controlled by custom attributes enable flag.

**Changes**

- Added a new config `stats` to control stats file generation.
- Using Existing custom attributes flag, we can control resource cleanup plugin.

# 1.1.11 (4-8-2023)

**Changes**

- we have renamed our default config file as `react-cli.config.js` instead of `build.config.js`. But we still support `build.config.js` we will remove it in later major version.

- Prop-type, Prop description, Default Props support for docs given.
- Docs and Docs_Code UI updated.

**Features:-**

- custom classname prefix for separate packages now supported.
- to use custom classnames for specific patterns, we use the following pattern in `app > customClassNamePrefix` or `docs > customClassNamePrefix` :

```
"customClassNamePrefix" : [
  {
    "enable": true,
    "prefix": "[required-prefix]",
    "patterns":[
      "**/[path-name]/**/*.css"
    ]
  }
]
```

For example,

```
"customClassNamePrefix": [
  {
    "enable": true,
    "prefix": "zdSvg",
    "patterns": [
      "**/@zohodesk/svg/**/*.css"
    ]
  },
],
```

**Issue Fix:**

- typo fix, (../src/common/runPreProcess.js) to (../lib/common/runPreProcess.js) in cli.js our code.

# 1.1.10 (2-8-2023)

**Issue Fix:**

- undefined plugin postcss issue fixed for docs.
- unnecessary deprecation warning stopped. (for exclude config)

# 1.1.9 (25-7-2023)

**Features:-**

- we have added config file support for react-cli schema. the default config file name `build.config.js` support added. In `build.config.js` you must export configuration object under `config` key. And Note: `build.config.js` is high priority then `package.json` `react-cli` config.
- added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.
  only will be activate when `resourceHints` => `allowPrefetchingMultipleChunks` as `true`
- added support for pattern as function for custom chunks split logic.
- added options to split chunks base config in the key `app` => `customChunksBaseConfig` as object
- added `postCssPluginOrder` feature :

  - If `app > postCssPluginOrder` or `docs > postCssPluginOrder` is set to "false", default plugin order will be followed.
  - If `app > postCssPluginOrder` or `docs > postCssPluginOrder` is set to "true", order preserved in `plugins` Object will be considered.
  - If `app > postCssPluginOrder` or `docs > postCssPluginOrder` is set to an array with plugins in a custom order, the custom order will be considered.

- We use the same plugin names as in `patterns` for the plugins to execute successfully.

**Issue Fix**

- fixed file path separator issue with split chunks config for vendor exclude list for windows (that was work well for mac and ubuntu only issue in windows).
- fixed cssUniqueness pattern not working in docs.

**Changes**

- previously all custom chunks are enforce true, no we have given support for enforce false for chunks on splitChunks config.

# 1.1.8

**Issue Fix**

- Docs fix for Selector Replace 'always require argument' issue.

# 1.1.7

**Feature**

- Markdown parser feature added in docs
  For more info please refer to :
  [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/MarkdownParser.md)

# 1.1.6-exp.2

- fixed file path separator issue with split chunks config for vendor exclude list.
- added support for not doing enforce true for chunks on splitChunks config.

# 1.1.5-exp.5

- fixed the issues regarding custom chunks base config schema.

# 1.1.5-exp.4

- added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.

# 1.1.5-exp.3

- added options to split chunks base config
- added support for passing custom chunks split logic as function.

# 1.1.6

**Issue Fix**

- local install react-cli spawnSync Error fix in npm 8
- babel version update issue fix (Cannot read properties of undefined (reading 'file')) and (BABEL_TRANSFORM_ERROR)

# 1.1.5-exp.2

**Issue Fix**

- local install react-cli spawnSync Error fix in npm 8

# 1.1.5

**Issue Fix**

- include pattern fix for variable converter plugin fixed

# 1.1.4

**Issue Fix**

- global install react-cli spawnSync Error fix
- `0px` variable value conversion issue fixed
- pattern exclude for postcss plugins case fixed

# 1.1.3

**Issue Fix**

- local install react-cli spawnSync Error fix

# 1.1.2

**Issue Fix**

- ReactLiveConverter filepath changed to 'reactLiveConverter.js' in docLoader file

# 1.1.1

**Issue Fix**

- docs component name incorrect in windows, when using --enableReactLive issue fixed.

**Feature Update**

- Support for desk-library to use Selector Replace plugin using individual script. To use `react-cli selectorReplacer [source] [target]`

# 1.1.0

**Feature Update**

- Support for desk-library to use variable conversion plugin using individual script. To use `react-cli variableConverter [source] [target]`
- pattern filter changes, new filter system instead of exclude to include or exclude files for plugins.
  For more info please refer to :
  [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/patternFiltering.md)
- React Live feature implemented for Docs.
  [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/ReactLive.md)

# 1.0.3-beta.1

**Issue Fix**

- nock api not working issue fixed. This error throwing in @zohodesk/react-cli@1.0.2 version. but working in older versions ( 0.0.1-beta.178 )

# 1.0.3

**Feature Update**

- Support for global httpsCerts usage
- Support for global client_packages_group usage
- custom attribute for dynamically loading chunks, In this version we merged changes from [0.0.1-beta.167.1](#0.0.1-beta.167.1).
  **Package Update**
- @zohodesk/client_packages_group@**1.0.1** ==> @zohodesk/client_packages_group@**1.0.2**

# 1.0.2

**Feature Update**

- Selector replace plugin made as a custom postcss-plugin with update to code that was unpublished in package.

# 1.0.1

**Issue Fix**

- variable conversion for px and var(--) values in same declaration was not supported, now it is supported.
- package-lock.json removed from `.npmignore`

**Feature Update**

- exclude added to Selector Plugin

# 1.0.0

## Major Release

**Changes:**

- File support added for `.webp` for `docs`, `dev` and `prod` mode
- File support added for `.webm` for `docs`, `dev` and `prod` mode

**Breaking Changes:**

- We have remove ssl certificate for security reasons.
  So default https server won't run.
  In order to make it work as before you need to specify two things
  1. install `@zohodesk-private/client_dev_cert`
  2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
     unless configaration are proper this may break `start` , `docs` , `nowatchstart`. and mock wms `/wmsmockapi` won't work.
     So Please be carefull when you update this version or above without proper configaration.

# 0.0.1-beta.178

**Changes:**

- File support added for `.webp` for `docs`, `dev` and `prod` mode
- File support added for `.webm` for `docs`, `dev` and `prod` mode

**Breaking Changes:**

- We have remove ssl certificate for security reasons.
  So default https server won't run.
  In order to make it work as before you need to specify two things
  1. install `@zohodesk-private/client_dev_cert`
  2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
     unless configaration are proper this may break `start` , `docs` , `nowatchstart`.
     So Please be carefull when you update this version or above without proper configaration.

# 0.0.1-exp.178.2

**Changes:**

- File support added for `.webm` for `docs`, `dev` and `prod` mode

# 0.0.1-exp.178.1

**Breaking Changes:**

- We have remove ssl certificate for security reasons.
  So default https server won't run.
  In order to make it work as before you need to specify two things
  1. install `@zohodesk-private/client_dev_cert`
  2. `react-cli.app.server.httpsCerts` option example `"httpsCerts": "@zohodesk-private/client_dev_cert"`
     unless configaration are proper this may break `start` , `docs` , `nowatchstart`.
     So Please be carefull when you update this version or above without proper configaration.

# 0.0.1-beta.177

**Changes:**

- We have added extra new Error option `MULTIPLE_OCCURANCES` support for **convert px to custom variables**.
- In case css --variables are not assigned an error will be thrown and logged in `.cli/logs/unassignedVariables.log`. The unassigned variables can be manually assigned in `variableMapping.json` through two keys :
  - `changes` : for the variables that have to be converted, manual values can be added ( eg. "--wms_height": "height" )
  - `ignore` : for the variables that do not have to be considered, they can be added as keys with some value in `ignore` key (eg. "--gc_widget_video_bg": "undefined"). These values will be ignored.
- strict mode can be enabled for checking --variables in `cssVariableReplacementOptions.strictMode`
  For more information and reference, refer to `[details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/VariableConversion.md)

- and this version has same as `0.0.1-exp.176.12`, `0.0.1-exp.176.11`

# 0.0.1-exp.176.12

**Changes:**

- Earlier versions of react-cli, we have been putting video files under images folder in build output, now, we have moved the video files under videos folder in build output.

# 0.0.1-exp.176.11

**Issue Fix:**

- When we use `react-cli.app.publicPaths.callback` this option and video files import, in place of publicPath url, **null** was there instead of file type `video` issue fixed.

# 0.0.1-beta.176

**Features:**

- we have added feature to **increase Selector weight** for all css classes in your project during build time.
  To enable this feature you have to set `react-cli.app.plugins.selectorWeight` as `true` in **package.json**.
  For more [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/SelectorWeight.md)
- Updates to variable replacement are given :
  - css variables with -- are now supported due to the webpack plugin `VariableConversionCollector` that is generated for the same.
  - `DECIMAL_CHECK`, `DECIMAL_REJECT` are two new errors supported.
  - support for text-indent, clip, flex, flex-basis, row-gap, column-gap, gap properties are now given.
    For more information and reference, refer to `[details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/VariableConversion.md)

# 0.0.1-beta.175

**Issue Fix:-**

- When we use "hoverActive" @import in css not working issue fixed

**Features:**

- `minifiy` option supported for minimize index.html file in during build time. You can use this option as "react-cli.app.htmlTemplate.minify" the options are same as https://github.com/jantimon/html-webpack-plugin#minification

# 0.0.1-beta.174

cli has been updated to fix compose issue faced when classname:hover exists and classname does not before compose

**Issue Fix:-**

- In react-cli version `0.0.1-beta.173`, when we use `start` command throws error issue fixed
- while using `cssVariableReplacementOptions`, compose issue faced in css files, when classname:hover exists and classname does not exist issue fixed

**Feature:-**

- `react-cli.test.classnameFormat` option added to change CssModules (Ex: import style from "./a.module.css" ) className transform template unittest case.
  `classnameFormat` default value `[classname]` you can customize it. Example: `[classname]-[hash]`

**Changes:-**

- `jsonFile_test_*.json` files deleted after they used.

# 0.0.1-beta.173

**Features:**

- we have added feature to **convert px to custom variables** for all css files in your project during build time.
  To enable this feature you have to set `react-cli.app.plugins.cssVariableReplacement` as `true` in **package.json**.

Conversion for css Variables from Variables to px in Supportapp completed (`variableIgnore.js` && `pxParserPostcss.js` to be referred to), and px to custom variables through the new `variableModificationPlugin`. Error Log generation can also be converted on enabling

For an more information and reference, refer to `[details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/VariableConversion.md)

# 0.0.1-beta.172

We have renamed some options, For Our future features convenience.
We have given fallback support.
Deprecation Warnings:-

- `react-cli.app.hasRTL` ==> `react-cli.app.plugins.hasRTL`
- `react-cli.app.rtlExclude` ==> `react-cli.app.exclude.rtl`

- `react-cli.docs.hasRTL` ==> `react-cli.docs.plugins.hasRTL`
- `react-cli.docs.rtlExclude` ==> `react-cli.docs.exclude.rtl`
  these options have fallback support.

# 0.0.1-beta.171

Features added :

1. `react-cli.app.mediaQueryHoverActiveString` and `react-cli.docs.mediaQueryHoverActiveString` templates support added for @media(hover: hover) and @media(hover: none) queries. We can modify these to modify respective queries.

# 0.0.1-beta.170

this version has same as `0.0.1-exp.169.1`, `0.0.1-exp.169.2`

# 0.0.1-exp.169.2

1. flags are converted to one variable 'plugin' and used in getCssLoaders.js.
2. files for exclusion can be put in seperate arrays in 'exclude' present in package.json.
3. `combinerMq` has been converted to `combinerMediaQuery` for clarity.

# 0.0.1-exp.169.1

File support added for mp4 for docs dev and prod mode

# 0.0.1-beta.169

this version has same as `0.0.1-exp.168.1`, `0.0.1-exp.168.2`, `0.0.1-exp.168.3` and below and some minor changes

1. `--efc_version=v3` flag added for change efc version via commmand line option
2. `hoverActive` flag added for conversion from usual hover to @media(hover:hover) and @media(hover:none) queries for hover support in mobile.
3. `combinerMq` flag added for combination of the media queries that might be appended or existing media queries that are duplicates to create one media query with all rules put together.

# 0.0.1-exp.168.3

Changes :

1.  code optimization ( made functions for the hoverActive cases making it more easier to access)
2.  handled `hover:ignore`, `active:ignore`, `hoverActive:ignore` cases for usual queries and media queries

# 0.0.1-exp.168.2

Changes :

1. hoverActive case handled with postcss `hover:hover` media query and `hover:none` media query is added
2. flag for hoverActive used to add/remove postcss changes

# 0.0.1-exp.168.1

Changes:-

1. `cliRootPath` option removed `react-cli.app.cliRootPath` in `package.json`
   Due to the reason we updated our logic to find package's executable path.
2. `--efc_output_file=efc-sdk-[version].js` option added to modify efc output file by terminal
3. added logic to print error message during command run, Previously when executable not found error messages not printed

# 0.0.1-beta.168

Changes:-

1. `enableChunkHash` option enabled for dev mode, use it as `react-cli.app.enableChunkHash` in `package.json`
2. `--enable_efc=true` option added to enable efc by terminal
3. unwanted pem files removed

# 0.0.1-exp.167.1

Features:-

- In docs we have added `Description` for Component Props- check out it in `PropTypes` tab

# 0.0.1-beta.167.1

In this version we merged changes from [0.0.1-betaa.138.1](#0.0.1-betaa.138.1).
and with [0.0.1-beta.167](#0.0.1-beta.167) version changes.

# 0.0.1-beta.167

SSL certificate update
this version has same as `0.0.1-exp.166.1`, `0.0.1-exp.166.2` and below and some minor changes
Features:-

- `--shallow_clone` option to `react-cli clone` this option will be usefull for shallow cloning repos in build time we don't need commit messages it will be 2x fast this way
  - Example `react-cli clone --clone_type=git --clone_url=https://some.url --shallow_clone`
- `cliRootPath` option added for npm workspace related path problems
  - Usage `package.json` , "react-cli" => "cliRootPath" stright key
- `unstableDepsInverse` option added for use app need library first priority over react-cli packages
  - Usage `package.json` , "react-cli" => "unstableDepsInverse" stright key

Issue Fix :-

- In devmode initial html not recived after second rebuild issue fix.
- typo fix `devBulid` to `devBuild`.
- `disableES5Transpile` option missed in docs now added.
- docs libAlias not work as app for example in app we always take `es` folder to build for treshaking and reasons,
  But that option not enabled in docs. now it is enabled.
- In `react-cli devbuild` command options not working properly,
  when above command run via terminal not via npm run script options not working
  So we send that options to webpack then it works as expected.
  this behaviour need to check across os and need to be cross check with other commends as well for now we only fixed this

# 0.0.1-exp.166.2

Changes:-

- `-w` option (watch option) added for `react-cli rtl`
  - Example `react-cli rtl ./src ./lib -w`
  <!-- need to handle `react-cli rtl` options  correctly -->
- disableES5Transpile option libAlias added for docs

# 0.0.1-exp.166.1

Changes:-

- `__testUtils__/globals.js` to jest is not mantatory
- disableES5Transpile option libAlias added

# 0.0.1-beta.166

this version has same as `# 0.0.1-exp.164.1`, `# 0.0.1-exp.164.2` and below and some minor changes

- google chorme cors preflight issue fix

# 0.0.1-beta.165

- `valueReplacer` option added in shemas for font name replace related issue handling, for more [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/ValueReplacer.md)
- `valuereplacer` option added in react-cli it takes three
  1. sourceDir
  2. distDir
  3. `copyAll` is boolean flag which is for copy all other file or not. "true" means copy all files.

# 0.0.1-exp.164.1

- extra features in custom chunks reffer [this](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/2.0.0/docs/CustomChunks.md)

# 0.0.1-exp.164.2

- `devbuild` option add to react cli

# 0.0.1-beta.164

- typo fix

# 0.0.1-beta.163

- **Issue Fix:-**

  - if git not installed react-cli throws error for any command due to `getCurrentBranch` in `shemas/index.js` now fixed
  - jest test cases not runnig issue fix (typo moduleNameMapper => libAlias)

- **Features :-**
  - feature added for pre process logic
    - tailer made requirement for preprocess, just write node js file
    - mention file in `"react-cli" => "preprocess" => "runner"`
  - option parse logic added for react-cli (exprimental)
  - `--stop_nodemon` usally preprocessor run in `nodemon` so to stop it this option is provided

# 0.0.1-exp.162.2

- **Optimazation:-**
  - double time minimize optimazation

# 0.0.1-beta.162.1

- **Issue Fix:-**
  - if git not installed react-cli throws error for any command due to `getCurrentBranch` in `shemas/index.js` now fixed

# 0.0.1-beta.161.1

- **Features :-**
  - feature added for pre process logic
    - tailer made requirement for preprocess, just write node js file
    - mention file in `"react-cli" => "preprocess" => "runner"`
  - option parse logic added for react-cli (exprimental)

# 0.0.1-beta.162

- @zohodesk/datetimejs package updated to beta.8

# 0.0.1-beta.161

- **Features :-**
  - feature added for efc `templateFilePath` in `package.json` option palce is `"react-cli" => "efc" => "templateFilePath"`
  - `(('publicPath'))` this placeholder will be replace as publicPath string `publicPath`
  - `(('getInitalAssets'))` this placeholder will be replace as function `getInitalAssets`
  - `getInitalAssets` this function has two arguments `assetsType`, `lang`
    - `assetsType` are `js`, `css`, `i18n`
    - `lang` this argument only works when `i18n` is `assetsType`
  - feature added for efc `cdnStatement`
- **Issue fixes:-**
  - css classname hash change issue fix
  - debug package conflit issue fix in nock in (react-cli test)
  - manifest.json css file name correction issue for rtl and ltr

# 0.0.1-exp.161.2

- Features
  - feature added for efc `templateFilePath` in `package.json` option palce is `"react-cli" => "efc" `
    - `(('publicPath'))` this placeholder will be replace as publicPath string `publicPath`
    - `(('getInitalAssets'))` this placeholder will be replace as function `getInitalAssets`
    - `getInitalAssets` this function has two arguments `assetsType`, `lang`
      - `assetsType` are `js`, `css`, `i18n`
      - `lang` this argument only works when `i18n` is `assetsType`

# 0.0.1-exp.161.1

- Features
  - feature added for efc `cdnStatement`
- Issue fixes:-
  - css classname hash change issue fix
  - debug package conflit issue fix in nock in (react-cli test)
  - manifest.json css file name correction issue for rtl and ltr

# 0.0.1-beta.160

- @zohodesk/normalizer package version updated to 1.0.2

# 0.0.1-beta.159

- @zohodesk/datetimejs package updated to beta.7

# 0.0.1-exp.159

- issue fix:-
  - when rtl ltr css split enable manifest json css filename keys comes with hash .

# 0.0.1-beta.158

- Removing source map files from service worker caching.

# 0.0.1-beta.157

- Experimental version issue fix(Dummy version removed)

# 0.0.1-beta.156

- ReportPublish issue fix

# 0.0.1-beta.155

- get impacted library source files option added

# 0.0.1-beta.154

- mockPrefix option for mock url prefix change
- Issue fix:-
  - un wanted {{--js-smap}} in inital html without enable smap in build

# 0.0.1-beta.153

- Vendor include array added
  - If you need to include any thrid party js in vendor we can use this array

# 0.0.1-beta.152

impact servise related changes:-

- nowatchstart option added. will be used like `react-cli nowatchstart <...options>` this will be used for src file changes no need to reflect (or no need to rebulid on file changes)
- cssselector_zip option added. will be used like `--cssselector-zip=selectormapping.zip`
  only work in two ways
  1. `react-cli start --disable-watch --cssselector-zip=selectormapping.zip` app start command with `--disable-watch` flag and your usaul options
  2. `react-cli nowatchstart --cssselector-zip=selectormapping.zip` app start command's usaul options
  #### Urls are:-
  Below express path are added, For download zip files and
  - `/zips/${zipname}.zip` for css selector maps zip file (contains css_map filies and original css files)
  - `/zips/build.zip` build zip file (contains bundled all files)

# 0.0.1-beta.151

- issue fix:- Docs config 'html-loader' options updated.
- sslcertUpdate feature added
- disable_watch option added. will be used like `--disable-watch` or `--disable-watch=true`
- dev_cache option added. will be used like `--dev_cache` or `--dev_cache=true`

# 0.0.1-beta.150

- issue Fix:- in npm 7 option not working issue fixed
- ssl certificate update

# 0.0.1-beta.149

- css, ltr and rtl chunk split based on [dir=ltr]
- to enable ltr and rtl chunk spilt you have to add config in you package.json
<!-- - [docs for rtl-ltr](src\plugins\RtlSplitPlugin\RtrSplit.md) -->
- we have added some options in EFCPlugin for rtlsplit related features.
- we have expoed require function for only css impact related changes with flag

# 0.0.1-beta.148

- source map enabled in prod mode for debug client
- crossorigin attribute added for scripts

# 0.0.1-beta.147

- reportpublish issue fix

# 0.0.1-beta.146

- while docs run LibraryImactPlugin not constructor issue fix
- css loader added for css impact related changes

# 0.0.1 -beta.145

- LibraryImpactPlugin added
- check impacted source components name if any version update happened with master

# 0.0.1-beta.144

- prod build bug fix

# 0.0.1-beta.143

- `babel-plugin-transform-remove-console` added for remove console properties except error and log
- `console_exculde` script added if suppose enable same in dev mode
- service worker plugin changes
- library impact changes

# 0.0.1-beta.142

- `eslint-plugin-react-hooks` added to eslint support.
- Updated exact versions to eslint plugins installation script.

# 0.0.1-beta.141

- report publish sh fixes
- duplicate removal in impacted componentTest

# 0.0.1-beta.140

- copy-webpack-plugin bug fix

# 0.0.1-beta.139

- copy-webpack-plugin downgrade
- babel runtime plugin issue fix in prod config
- few enhancements

# 0.0.1-betaa.138.1

- new feature added for custom extra attribute for dynamically added tags by webpack.
- To enable this feature you need to enable "react-cli" => "app" => "customAttributes" => "enable"
- For more [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/9eea8df14e55584b2114b5e484ca8b751a4ba191/src/plugins/CustomAttributePlugin.md)

# 0.0.1-beta.138

- sstest library version updated
- unitcase calcluation issues fixed

# 0.0.1-beta.137

- Third party css files loading issue fix

# 0.0.1-beta.136

- eslint support

# 0.0.1-beta.135

- windows publish issue

# 0.0.1-beta.134

- Build Issue Fix

# 0.0.1-beta.133

- CDN Changes in I18nSplitPlugin
- nonce support added for i18n chunks

# 0.0.1-beta.132

- CDN Changes in EFC Plugin

# 0.0.1-beta.131

- Added Cdn Change Plugin

# 0.0.1-beta.130

- Babel 7 migration, ES6 build generation config and polyfill removal
- CopyPlugin issue fix

#0.0.1-beta.129

- Upgraded 'moment' to version 2.29.1 and 'moment-timezone' to version 0.5.32

# 0.0.1-beta.128

- Added support to generate hash for the third party files(TPHashMappingPlugin)

# 0.0.1-beta.127

- service worker plugin - to recursively add multiple directories (recursive=true)

# 0.0.1-beta.126

- issue fix in i18n split plugin

# expremental versions

- 0.0.1-beta.121
- 0.0.1-beta.122
- 0.0.1-beta.123
- 0.0.1-beta.124
- 0.0.1-beta.125

# 0.0.1-beta.120

- issue fix in third party file copying

# expremental versions

- 0.0.1-beta.119
- 0.0.1-beta.118

#0.0.1-beta.117

- createSDkFile otion added for efc
- small fix in i18n split plugin

#0.0.1-beta.116

- thirdparty package move to build (tpFolder in app config)

#0.0.1-beta.115

- Added Web worker support

#0.0.1-beta.114

- i18n split based on chunk
- to enable i18n chunk spilt you have to add config in you package.json

#0.0.1-beta.113

- Upgraded 'fz-i18n' package version to 1.2.0-beta.15

#0.0.1-beta.112

- Duplicate Prefetch Request Issue Fixed (Resource Hint Plugin)
- Service worker plugin changes

#0.0.1-beta.111

- hasRTL, selectorReplace Condition Separated

#0.0.1-beta.110

- SplitChunk Order Issue Fixed
- https url issue Fixed

#0.0.1-beta.109

- @zohodesk/screenshottest package version update (19) and log for the gitlab private api to check the response

#0.0.1-beta.108

- @zohodesk/screenshottest package version update (18)

#0.0.1-beta.107

- changed component without docs finder added

#0.0.1-beta.106

- custom chunk support changes
- css absolute url fix

#0.0.1-beta.105

- @zohodesk/screenshottest package version update (17) with the issue fix

#0.0.1-beta.104

- ModuleStatsPlugin inject false option added to solve the webpack build twice issue

#0.0.1-beta.103

- @zohodesk/screenshottest package version update (16) with the issue fix

#0.0.1-beta.102

- @zohodesk/screenshottest package version update (15) with the issue fix

#0.0.1-beta.101

- 100 changes readme missing
- bundle analyser changes

#0.0.1-beta.100

- @zohodesk/screenshottest package version update with the issue fix
- font public path replace issue for url fonts - fixed

#0.0.1-beta.99

- can't publish already published

#0.0.1-beta.98

- defer break public path adding regex - fixed

#0.0.1-beta.97

- added 'babel-plugin-transform-react-remove-prop-types' in package.json (missed earlier)

#0.0.1-beta.96

- html plugin inject option expose and version udpate 4.2.0
- src html change i18n removal issue fix
- script loading defer added
- added babel plugin to remove proptypes

#0.0.1-beta.95

- schemas/index.js - issue fix

#0.0.1-beta.94

- screenshot test library version update
- ssserver issue fix

#0.0.1-beta.93

- selector replacer for Help Center usecase
- eslint performance plugin
- css classname hash selector support for docs
- service worker plugin

#0.0.1-beta.92

- docs ui fixes and edit mode
- @zohodesk/datetimejs version update

#0.0.1-beta.91

- repo clone command pull issue fix
- docs css change
- SSTest package version downgrade

#0.0.1-beta.90

- added support for copying Timezone data from @zohodesk/datetimejs
- docstool changes

#0.0.1-beta.89

- CSP nonce support for initial assets `{{--CSP-nonce}}`
- introduced new mode to disable react warns in dev mode (dev-no-warn)
- docs ui fix

#0.0.1-beta.88

- Impact run and Master seperate during SSTEST
- docs changes
- filenames and packages addedd in cssHashSelectors option

#0.0.1-beta.87

- run screenshot test for impacted components
- seperate master from the CI flow with the HBase storage
- docs changes
- coverage percentage check disabled

#0.0.1-beta.86

- exclude without js changes for unittest
- express server history fallback refactored

#0.0.1-beta.85

- i18n placeholder removal issue fixed
- css classname prefix moved to option. default is zd

#0.0.1-beta.84

- object spread operator support

#0.0.1-beta.83

- eslint report type by flag
- unitcase file exclude array issue fix
- sstesthack issue fix

#0.0.1-beta.82

- eslint impact run enable - completed
- devplugin cleanupstats filename import issue fix
- coveragecollector return format change

#0.0.1-beta.81

- unit test case syntax error issue fix - removed unwanted dependency `css-modules-require-hook`

#0.0.1-beta.80

- unitcase filecoverage testpath issue fix
- shadowdom support
- postpublish and sstest hack script
- dependencies impact list
- can change runtime chunk's character
- font preload added

#0.0.1-beta.79

- unitcase filecoverage added and also codecoverage with dependencies spec added

#0.0.1-beta.78

- components and dot library's stats added with module stats
- Mini css extract plugin's unwanted logs removed
- runtime chunk added in dev mode
- nodemon windows issue fix
- testinfo failure missing while can't get coverage
- performance eslint plugin added and normalizer moved under zohodesk

#0.0.1-beta.77

- @zohodesk/eslint-plugin-zsecurity version update
- git pull origin with branch name while screenshot test after the branch switch

#0.0.1-beta.76

- breaking issue fix from last version ( prod config issue )

#0.0.1-beta.75

- sstest - reinstall dependencies after switch branch

#0.0.1-beta.74

- docs provider support (Component.\_provider)

#0.0.1-beta.73

#0.0.1-beta.72

- run eslint security rules option enable
- add the reportURL with the result.json file
- mock server post api issue fix

#0.0.1-beta.71

- publicpath hard coding while flatten build issue fix

#0.0.1-beta.70

- css class compression flag enable
- docs src URL update

#0.0.1-beta.69

- babel-plugin-transform-dynamic-import library with webpack.docs.config.js for docs service
- babel-lodash plugin fix with getdevplugin
- cursor blink issue fix for sstest
- in result.json unitcase coverage verified boolean added

#0.0.1-beta.68

- rtl ignore [dir] changes

#0.0.1-beta.67

- babel-plugin-transform-dynamic-import library added with package.json
- schema change with hostname cli option s

#0.0.1-beta.66

- mockport hard coded issue fix

#0.0.1-beta.65

- window rtl build issue fix
- separate rtl build support added like react-cli rtl ./src ./lib

#0.0.1-beta.64

- postcss-rtl issue temp fix so move to @zohodesk/postcss-rtl

#0.0.1-beta.63

- LTR & RTL support added

#0.0.1-beta.62

- componentTest.css entry in components.html

#0.0.1-beta.60

- SSTMiddleware hook added for ssserver
- remove some unwanted class in components.css
- componentTest.css added with common animation break css rules

#0.0.1-beta.59

- vendor files exclude from app
- since the chunk hash issue, moduleIds configured as named

#0.0.1-beta.58

- Push result json with the report zip
- screenshot-test library Version update

#0.0.1-beta.57

- vendor chunk split issue fix

#0.0.1-beta.56

- css ordering issue fix

#0.0.1-beta.55

- prod build performance changes
- css duplication issue fix
- root chunk splitting logic change

#0.0.1-beta.54

- increased css hash size 5 to 10

#0.0.1-beta.53

- generate json file for all the test results during test run
- sstest version update
- some issue fixes

#0.0.1-beta.52

- template src folder missed issue fix because of npmignore all src folder

#0.0.1-beta.51

- template app updated with redux and router by kumaresan(thala)

#0.0.1-beta.50

- window machine css unique issue fix

#0.0.1-beta.49

- dev css unique issue fix

#0.0.1-beta.48

- telephony support css unique changes

#0.0.1-beta.47

- git pull during the branch switch in ssserver
- common util file for pull and switch the branches for both git and hg

#0.0.1-beta.46

- ogg file support and tmpl file support

#0.0.1-beta.45

- checkout branch with force during sstest

#0.0.1-beta.44

- sstest master trigger issue fix

#0.0.1-beta.43

- get component object from docs server by http protocol during sstest
- reach docs server by the IP address of the host.
- get the current branch name by args

#0.0.1-beta.42

- className ssTest added and screenshot test version update

#0.0.1-beta.41

- i18n replace issue fix

- some css changes related to above
- screenshottest version update

#0.0.1-beta.40

- SSTMiddleware added to get hook from webpack build process to start sstest
- run unit test for commited files except the spec file name from name list
- publicpath added for i18n js files

#0.0.1-beta.39

- prod build check issue fix

#0.0.1-beta.38

- all unitcase runs only with master option removed
- prod mode in dev setup flag issue fix

#0.0.1-beta.37

- removed hash for index.html and add publicpath when run prod mode in dev machine
- screenshot version updated
- docs build log issue fix

#0.0.1-beta.36

- reportpublish sh file report generation even if any breakages in test scripts

#0.0.1-beta.35

- full run of spec fils only for master option added
- reportpublish sh for screenshot test report template issue fix

#0.0.1-beta.34

- monitor mockserver changes without affecting static server

#0.0.1-beta.33

- mail sent issue - fix

#0.0.1-beta.32

- ssl cert update
- webpack-bundle-analyzer version update (because of npm audit fix)

#0.0.1-beta.31

- reportpublicpath plugin rename issue fix

#0.0.1-beta.30

- report generate plugin rename
- schema changes for sstest (sstest_remotebranch => sstest_referbranch)
- reportpublish sh update

#0.0.1-beta.29

- screenshot version updated
- unit test case commit coverage issue fix

#0.0.1-beta.28

- Unitcase coverage for changed files issue fix

#0.0.1-beta.27

- prod build size and hash tracking report added

#0.0.1-beta.26

- inlined assets and css assets publicpath collide issue fix

#0.0.1-beta.25

- inline image public path issue fix
- docs css change for sstest

#0.0.1-beta.24

- removed source map generation by default

#0.0.1-beta.23

- windows path issue in i18I18NInjectIntoIndexPlugin plugin

#0.0.1-beta.22

- unusedfilesplugin issue fixed and print valid info

#0.0.1-beta.21

- production build hash details exported in index html

#0.0.1-beta.20

- list the name of un documented component file name

#0.0.1-beta.19

- publicpath callback plugin added

#0.0.1-beta.18

- production build issue fix

#0.0.1-beta.17

- redux version downgraded

#0.0.1-beta.16

- Babel env and react issue fix

#0.0.1-beta.15

- Few issue fixes
- Webpack Manifest Plugin revamped
- @zohodesk/screenshot-test package added

#0.0.1-beta.14

- Removed minify option in css-loader config
- Removed optimize-css-assets-webpack-plugin
- Added UglifyCSS webpack plugin
- Packages version up to dated expect babel-loader
- Docs umd build issue fixed
- CSS public path in all configs

#0.0.1-beta.13

- Breaking issues fix
- Add eslint config file in project root folder
- Removed hot module and SSR concepts
- Public Path change plugin revamp
- Replaced style-loader with MiniCssExtractPlugin for overall

#0.0.1-beta.12

- ResourceHints Plugin added
- able to set public paths for various types of assets
- provided few cli options for existing options
- change ext of files while copy
- cache directory issue fix in dev mode
- script instrument loader added
- eslint windows machine issue fix

#0.0.1-beta.11

- css module extension changed to .modules.css from .mcss

#0.0.1-beta.10

- css module related changes
- unit test case breaking issue fix

#0.0.1-beta.9

- dynamic import support
- unit test case issue fix

#0.0.1-beta.8

- major issue fixes - previous version issues
- eslint new rules added
- reverted babel exclude option

#0.0.1-beta.7

- optionally attributes removal - prod mode
- pre-commit issue fixed
- eslint fix option added
- used exclude instead of include in babel loader
- option lookup issue fixed

#0.0.1-beta.6

- complext proptypes support for docs

#0.0.1-beta.5

- docs slowness issue fix
- jest update issue fix

#0.0.1-beta.4

- css chunk related changes
- manifest json related changes
- css bundle issue fixed

#0.0.1-beta.3

- slowness issue fixed
- efc build issue fixed

  0.0.1-beta.2 changes

- docs changes
- precommit hook issue fix
- compression support
- prod string error fix
- efc build support
- single style tag support

```

```
