angular-slickgrid 4.3.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +179 -181
- package/app/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts +5 -9
- package/app/modules/angular-slickgrid/index.d.ts +1 -1
- package/app/modules/angular-slickgrid/services/index.d.ts +0 -1
- package/docs/assets/lib/multiple-select/README.md +17 -17
- package/esm2020/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +14 -15
- package/esm2020/app/modules/angular-slickgrid/constants.mjs +2 -1
- package/esm2020/app/modules/angular-slickgrid/extensions/index.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +2 -2
- package/esm2020/app/modules/angular-slickgrid/global-grid-options.mjs +3 -3
- package/esm2020/app/modules/angular-slickgrid/index.mjs +2 -2
- package/esm2020/app/modules/angular-slickgrid/models/angularComponentOutput.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/gridOption.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/index.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/slickGrid.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +7 -12
- package/esm2020/app/modules/angular-slickgrid/services/angularUtil.service.mjs +4 -4
- package/esm2020/app/modules/angular-slickgrid/services/container.service.mjs +4 -4
- package/esm2020/app/modules/angular-slickgrid/services/index.mjs +1 -2
- package/esm2020/app/modules/angular-slickgrid/services/translater.service.mjs +4 -4
- package/esm2020/app/modules/angular-slickgrid/services/utilities.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/slickgrid-config.mjs +1 -1
- package/esm2020/public_api.mjs +1 -1
- package/fesm2015/angular-slickgrid.mjs +34 -137
- package/fesm2015/angular-slickgrid.mjs.map +1 -1
- package/fesm2020/angular-slickgrid.mjs +33 -136
- package/fesm2020/angular-slickgrid.mjs.map +1 -1
- package/i18n/en.json +90 -89
- package/i18n/fr.json +91 -90
- package/{angular-slickgrid.d.ts → index.d.ts} +0 -0
- package/package.json +13 -15
- package/test/cypress/node_modules/@4tw/cypress-drag-drop/README.md +169 -0
- package/test/cypress/node_modules/@cypress/request/README.md +1038 -0
- package/test/cypress/node_modules/@cypress/xvfb/README.md +48 -0
- package/test/cypress/node_modules/@cypress/xvfb/node_modules/debug/README.md +437 -0
- package/test/cypress/node_modules/@types/node/README.md +16 -0
- package/test/cypress/node_modules/@types/sinonjs__fake-timers/README.md +16 -0
- package/test/cypress/node_modules/@types/sizzle/README.md +16 -0
- package/test/cypress/node_modules/@types/yauzl/README.md +16 -0
- package/test/cypress/node_modules/@types/yauzl/node_modules/@types/node/README.md +16 -0
- package/test/cypress/node_modules/aggregate-error/README.md +61 -0
- package/test/cypress/node_modules/ansi-colors/README.md +315 -0
- package/test/cypress/node_modules/ansi-escapes/README.md +245 -0
- package/test/cypress/node_modules/ansi-regex/README.md +78 -0
- package/test/cypress/node_modules/ansi-styles/README.md +152 -0
- package/test/cypress/node_modules/arch/README.md +71 -0
- package/test/cypress/node_modules/asn1/README.md +50 -0
- package/test/cypress/node_modules/assert-plus/README.md +162 -0
- package/test/cypress/node_modules/astral-regex/README.md +46 -0
- package/test/cypress/node_modules/async/README.md +60 -0
- package/test/cypress/node_modules/asynckit/README.md +233 -0
- package/test/cypress/node_modules/at-least-node/README.md +25 -0
- package/test/cypress/node_modules/aws-sign2/README.md +4 -0
- package/test/cypress/node_modules/aws4/README.md +183 -0
- package/test/cypress/node_modules/balanced-match/README.md +91 -0
- package/test/cypress/node_modules/base64-js/README.md +34 -0
- package/test/cypress/node_modules/bcrypt-pbkdf/README.md +45 -0
- package/test/cypress/node_modules/blob-util/README.md +623 -0
- package/test/cypress/node_modules/bluebird/README.md +57 -0
- package/test/cypress/node_modules/brace-expansion/README.md +129 -0
- package/test/cypress/node_modules/buffer/README.md +410 -0
- package/test/cypress/node_modules/buffer-crc32/README.md +47 -0
- package/test/cypress/node_modules/cachedir/README.md +27 -0
- package/test/cypress/node_modules/caseless/README.md +45 -0
- package/test/cypress/node_modules/chalk/README.md +293 -0
- package/test/cypress/node_modules/chalk/node_modules/supports-color/README.md +76 -0
- package/test/cypress/node_modules/check-more-types/README.md +952 -0
- package/test/cypress/node_modules/ci-info/README.md +114 -0
- package/test/cypress/node_modules/clean-stack/README.md +76 -0
- package/test/cypress/node_modules/cli-cursor/README.md +55 -0
- package/test/cypress/node_modules/cli-table3/README.md +218 -0
- package/test/cypress/node_modules/cli-truncate/README.md +139 -0
- package/test/cypress/node_modules/color-convert/README.md +68 -0
- package/test/cypress/node_modules/color-name/README.md +11 -0
- package/test/cypress/node_modules/colorette/README.md +102 -0
- package/test/cypress/node_modules/colors/README.md +221 -0
- package/test/cypress/node_modules/combined-stream/README.md +138 -0
- package/test/cypress/node_modules/commander/README.md +737 -0
- package/test/cypress/node_modules/common-tags/README.md +687 -0
- package/test/cypress/node_modules/core-util-is/README.md +3 -0
- package/test/cypress/node_modules/cross-spawn/README.md +96 -0
- package/test/cypress/node_modules/cypress/README.md +25 -0
- package/test/cypress/node_modules/cypress/angular/README.md +85 -0
- package/test/cypress/node_modules/cypress/mount-utils/README.md +21 -0
- package/test/cypress/node_modules/cypress/react/README.md +119 -0
- package/test/cypress/node_modules/cypress/svelte/README.md +83 -0
- package/test/cypress/node_modules/cypress/vue/README.md +88 -0
- package/test/cypress/node_modules/cypress/vue2/README.md +77 -0
- package/test/cypress/node_modules/dashdash/README.md +574 -0
- package/test/cypress/node_modules/dayjs/README.md +128 -0
- package/test/cypress/node_modules/debug/README.md +455 -0
- package/test/cypress/node_modules/delayed-stream/README.md +141 -0
- package/test/cypress/node_modules/ecc-jsbn/README.md +8 -0
- package/test/cypress/node_modules/emoji-regex/README.md +73 -0
- package/test/cypress/node_modules/end-of-stream/README.md +54 -0
- package/test/cypress/node_modules/enquirer/README.md +1752 -0
- package/test/cypress/node_modules/escape-string-regexp/README.md +27 -0
- package/test/cypress/node_modules/eventemitter2/README.md +809 -0
- package/test/cypress/node_modules/execa/README.md +656 -0
- package/test/cypress/node_modules/executable/README.md +64 -0
- package/test/cypress/node_modules/extend/README.md +81 -0
- package/test/cypress/node_modules/extract-zip/README.md +57 -0
- package/test/cypress/node_modules/extract-zip/node_modules/debug/README.md +455 -0
- package/test/cypress/node_modules/extsprintf/README.md +46 -0
- package/test/cypress/node_modules/fd-slicer/README.md +199 -0
- package/test/cypress/node_modules/figures/README.md +139 -0
- package/test/cypress/node_modules/forever-agent/README.md +4 -0
- package/test/cypress/node_modules/form-data/README.md +234 -0
- package/test/cypress/node_modules/fs-extra/README.md +264 -0
- package/test/cypress/node_modules/fs.realpath/README.md +33 -0
- package/test/cypress/node_modules/get-stream/README.md +124 -0
- package/test/cypress/node_modules/getos/README.md +79 -0
- package/test/cypress/node_modules/getpass/README.md +32 -0
- package/test/cypress/node_modules/glob/README.md +375 -0
- package/test/cypress/node_modules/global-dirs/README.md +72 -0
- package/test/cypress/node_modules/graceful-fs/README.md +133 -0
- package/test/cypress/node_modules/has-flag/README.md +89 -0
- package/test/cypress/node_modules/http-signature/README.md +80 -0
- package/test/cypress/node_modules/human-signals/README.md +155 -0
- package/test/cypress/node_modules/ieee754/README.md +51 -0
- package/test/cypress/node_modules/indent-string/README.md +70 -0
- package/test/cypress/node_modules/inflight/README.md +37 -0
- package/test/cypress/node_modules/inherits/README.md +42 -0
- package/test/cypress/node_modules/ini/README.md +102 -0
- package/test/cypress/node_modules/is-ci/README.md +50 -0
- package/test/cypress/node_modules/is-fullwidth-code-point/README.md +39 -0
- package/test/cypress/node_modules/is-installed-globally/README.md +31 -0
- package/test/cypress/node_modules/is-path-inside/README.md +63 -0
- package/test/cypress/node_modules/is-stream/README.md +57 -0
- package/test/cypress/node_modules/is-typedarray/README.md +16 -0
- package/test/cypress/node_modules/isexe/README.md +51 -0
- package/test/cypress/node_modules/isstream/README.md +66 -0
- package/test/cypress/node_modules/jsbn/README.md +175 -0
- package/test/cypress/node_modules/json-schema/README.md +3 -0
- package/test/cypress/node_modules/json-stringify-safe/README.md +52 -0
- package/test/cypress/node_modules/jsonfile/README.md +205 -0
- package/test/cypress/node_modules/jsonfile/node_modules/universalify/README.md +76 -0
- package/test/cypress/node_modules/jsprim/README.md +287 -0
- package/test/cypress/node_modules/lazy-ass/README.md +269 -0
- package/test/cypress/node_modules/listr2/README.md +17 -0
- package/test/cypress/node_modules/lodash/README.md +39 -0
- package/test/cypress/node_modules/lodash.once/README.md +18 -0
- package/test/cypress/node_modules/log-symbols/README.md +51 -0
- package/test/cypress/node_modules/log-update/README.md +97 -0
- package/test/cypress/node_modules/log-update/node_modules/slice-ansi/README.md +66 -0
- package/test/cypress/node_modules/log-update/node_modules/wrap-ansi/README.md +97 -0
- package/test/cypress/node_modules/lru-cache/README.md +166 -0
- package/test/cypress/node_modules/merge-stream/README.md +78 -0
- package/test/cypress/node_modules/mime-db/README.md +102 -0
- package/test/cypress/node_modules/mime-types/README.md +123 -0
- package/test/cypress/node_modules/mimic-fn/README.md +69 -0
- package/test/cypress/node_modules/minimatch/README.md +209 -0
- package/test/cypress/node_modules/ms/README.md +60 -0
- package/test/cypress/node_modules/npm-run-path/README.md +115 -0
- package/test/cypress/node_modules/once/README.md +79 -0
- package/test/cypress/node_modules/onetime/README.md +94 -0
- package/test/cypress/node_modules/ospath/README.md +53 -0
- package/test/cypress/node_modules/p-map/README.md +89 -0
- package/test/cypress/node_modules/path-is-absolute/README.md +59 -0
- package/test/cypress/node_modules/path-key/README.md +61 -0
- package/test/cypress/node_modules/pend/README.md +41 -0
- package/test/cypress/node_modules/performance-now/README.md +30 -0
- package/test/cypress/node_modules/pify/README.md +119 -0
- package/test/cypress/node_modules/pretty-bytes/README.md +131 -0
- package/test/cypress/node_modules/proxy-from-env/README.md +131 -0
- package/test/cypress/node_modules/psl/README.md +215 -0
- package/test/cypress/node_modules/pump/README.md +65 -0
- package/test/cypress/node_modules/punycode/README.md +122 -0
- package/test/cypress/node_modules/qs/README.md +475 -0
- package/test/cypress/node_modules/request-progress/README.md +78 -0
- package/test/cypress/node_modules/restore-cursor/README.md +26 -0
- package/test/cypress/node_modules/rimraf/README.md +101 -0
- package/test/cypress/node_modules/rxjs/README.md +147 -0
- package/test/cypress/node_modules/rxjs/_esm2015/README.md +147 -0
- package/test/cypress/node_modules/rxjs/_esm5/README.md +147 -0
- package/test/cypress/node_modules/rxjs/src/README.md +147 -0
- package/test/cypress/node_modules/safe-buffer/README.md +584 -0
- package/test/cypress/node_modules/safer-buffer/README.md +156 -0
- package/test/cypress/node_modules/semver/README.md +566 -0
- package/test/cypress/node_modules/shebang-command/README.md +34 -0
- package/test/cypress/node_modules/shebang-regex/README.md +33 -0
- package/test/cypress/node_modules/signal-exit/README.md +39 -0
- package/test/cypress/node_modules/slice-ansi/README.md +72 -0
- package/test/cypress/node_modules/sshpk/README.md +804 -0
- package/test/cypress/node_modules/string-width/README.md +50 -0
- package/test/cypress/node_modules/strip-ansi/README.md +46 -0
- package/test/cypress/node_modules/strip-final-newline/README.md +30 -0
- package/test/cypress/node_modules/supports-color/README.md +77 -0
- package/test/cypress/node_modules/throttleit/README.md +32 -0
- package/test/cypress/node_modules/tmp/README.md +365 -0
- package/test/cypress/node_modules/tough-cookie/README.md +527 -0
- package/test/cypress/node_modules/tslib/README.md +142 -0
- package/test/cypress/node_modules/tunnel-agent/README.md +4 -0
- package/test/cypress/node_modules/tweetnacl/README.md +459 -0
- package/test/cypress/node_modules/type-fest/README.md +760 -0
- package/test/cypress/node_modules/universalify/README.md +76 -0
- package/test/cypress/node_modules/untildify/README.md +30 -0
- package/test/cypress/node_modules/uuid/README.md +505 -0
- package/test/cypress/node_modules/verror/README.md +528 -0
- package/test/cypress/node_modules/verror/node_modules/extsprintf/README.md +46 -0
- package/test/cypress/node_modules/which/README.md +54 -0
- package/test/cypress/node_modules/wrap-ansi/README.md +91 -0
- package/test/cypress/node_modules/wrappy/README.md +36 -0
- package/test/cypress/node_modules/yallist/README.md +204 -0
- package/test/cypress/node_modules/yauzl/README.md +658 -0
- package/app/modules/angular-slickgrid/services/bsDropdown.service.d.ts +0 -31
- package/esm2020/app/modules/angular-slickgrid/services/bsDropdown.service.mjs +0 -103
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# cross-spawn
|
|
2
|
+
|
|
3
|
+
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url]
|
|
4
|
+
|
|
5
|
+
[npm-url]:https://npmjs.org/package/cross-spawn
|
|
6
|
+
[downloads-image]:https://img.shields.io/npm/dm/cross-spawn.svg
|
|
7
|
+
[npm-image]:https://img.shields.io/npm/v/cross-spawn.svg
|
|
8
|
+
[travis-url]:https://travis-ci.org/moxystudio/node-cross-spawn
|
|
9
|
+
[travis-image]:https://img.shields.io/travis/moxystudio/node-cross-spawn/master.svg
|
|
10
|
+
[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn
|
|
11
|
+
[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn/master.svg
|
|
12
|
+
[codecov-url]:https://codecov.io/gh/moxystudio/node-cross-spawn
|
|
13
|
+
[codecov-image]:https://img.shields.io/codecov/c/github/moxystudio/node-cross-spawn/master.svg
|
|
14
|
+
[david-dm-url]:https://david-dm.org/moxystudio/node-cross-spawn
|
|
15
|
+
[david-dm-image]:https://img.shields.io/david/moxystudio/node-cross-spawn.svg
|
|
16
|
+
[david-dm-dev-url]:https://david-dm.org/moxystudio/node-cross-spawn?type=dev
|
|
17
|
+
[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/node-cross-spawn.svg
|
|
18
|
+
|
|
19
|
+
A cross platform solution to node's spawn and spawnSync.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
Node.js version 8 and up:
|
|
25
|
+
`$ npm install cross-spawn`
|
|
26
|
+
|
|
27
|
+
Node.js version 7 and under:
|
|
28
|
+
`$ npm install cross-spawn@6`
|
|
29
|
+
|
|
30
|
+
## Why
|
|
31
|
+
|
|
32
|
+
Node has issues when using spawn on Windows:
|
|
33
|
+
|
|
34
|
+
- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318)
|
|
35
|
+
- It does not support [shebangs](https://en.wikipedia.org/wiki/Shebang_(Unix))
|
|
36
|
+
- Has problems running commands with [spaces](https://github.com/nodejs/node/issues/7367)
|
|
37
|
+
- Has problems running commands with posix relative paths (e.g.: `./my-folder/my-executable`)
|
|
38
|
+
- Has an [issue](https://github.com/moxystudio/node-cross-spawn/issues/82) with command shims (files in `node_modules/.bin/`), where arguments with quotes and parenthesis would result in [invalid syntax error](https://github.com/moxystudio/node-cross-spawn/blob/e77b8f22a416db46b6196767bcd35601d7e11d54/test/index.test.js#L149)
|
|
39
|
+
- No `options.shell` support on node `<v4.8`
|
|
40
|
+
|
|
41
|
+
All these issues are handled correctly by `cross-spawn`.
|
|
42
|
+
There are some known modules, such as [win-spawn](https://github.com/ForbesLindesay/win-spawn), that try to solve this but they are either broken or provide faulty escaping of shell arguments.
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Usage
|
|
46
|
+
|
|
47
|
+
Exactly the same way as node's [`spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) or [`spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options), so it's a drop in replacement.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
const spawn = require('cross-spawn');
|
|
52
|
+
|
|
53
|
+
// Spawn NPM asynchronously
|
|
54
|
+
const child = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });
|
|
55
|
+
|
|
56
|
+
// Spawn NPM synchronously
|
|
57
|
+
const result = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' });
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## Caveats
|
|
62
|
+
|
|
63
|
+
### Using `options.shell` as an alternative to `cross-spawn`
|
|
64
|
+
|
|
65
|
+
Starting from node `v4.8`, `spawn` has a `shell` option that allows you run commands from within a shell. This new option solves
|
|
66
|
+
the [PATHEXT](https://github.com/joyent/node/issues/2318) issue but:
|
|
67
|
+
|
|
68
|
+
- It's not supported in node `<v4.8`
|
|
69
|
+
- You must manually escape the command and arguments which is very error prone, specially when passing user input
|
|
70
|
+
- There are a lot of other unresolved issues from the [Why](#why) section that you must take into account
|
|
71
|
+
|
|
72
|
+
If you are using the `shell` option to spawn a command in a cross platform way, consider using `cross-spawn` instead. You have been warned.
|
|
73
|
+
|
|
74
|
+
### `options.shell` support
|
|
75
|
+
|
|
76
|
+
While `cross-spawn` adds support for `options.shell` in node `<v4.8`, all of its enhancements are disabled.
|
|
77
|
+
|
|
78
|
+
This mimics the Node.js behavior. More specifically, the command and its arguments will not be automatically escaped nor shebang support will be offered. This is by design because if you are using `options.shell` you are probably targeting a specific platform anyway and you don't want things to get into your way.
|
|
79
|
+
|
|
80
|
+
### Shebangs support
|
|
81
|
+
|
|
82
|
+
While `cross-spawn` handles shebangs on Windows, its support is limited. More specifically, it just supports `#!/usr/bin/env <program>` where `<program>` must not contain any arguments.
|
|
83
|
+
If you would like to have the shebang support improved, feel free to contribute via a pull-request.
|
|
84
|
+
|
|
85
|
+
Remember to always test your code on Windows!
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## Tests
|
|
89
|
+
|
|
90
|
+
`$ npm test`
|
|
91
|
+
`$ npm test -- --watch` during development
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## License
|
|
95
|
+
|
|
96
|
+
Released under the [MIT License](https://www.opensource.org/licenses/mit-license.php).
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Cypress
|
|
2
|
+
|
|
3
|
+
Fast, easy and reliable testing for anything that runs in a browser.
|
|
4
|
+
|
|
5
|
+
## What is this?
|
|
6
|
+
|
|
7
|
+
[Cypress](https://www.cypress.io/) comes packaged as an `npm` module, which is all you need to get started testing.
|
|
8
|
+
|
|
9
|
+
After installing you'll be able to:
|
|
10
|
+
|
|
11
|
+
- Open Cypress from the CLI
|
|
12
|
+
- Run Cypress from the CLI
|
|
13
|
+
- `require` Cypress as a module
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
Please check our [system requirements](https://on.cypress.io/installing-cypress).
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npm install --save-dev cypress
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Documentation
|
|
24
|
+
|
|
25
|
+
Please [visit our documentation](https://on.cypress.io/cli) for a full list of commands and examples.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# @cypress/angular
|
|
2
|
+
|
|
3
|
+
Mount Angular components in the open source [Cypress.io](https://www.cypress.io/) test runner **v7.0.0+**
|
|
4
|
+
|
|
5
|
+
> **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [Angular Component Testing Docs](https://docs.cypress.io/guides/component-testing/quickstart-angular#Configuring-Component-Testing) for mounting Angular components. Installing and importing `mount` from `@cypress/angular` should only be used for advanced use-cases.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
- Requires Cypress v7.0.0 or later
|
|
10
|
+
- Requires [Node](https://nodejs.org/en/) version 12 or above
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
npm install --save-dev @cypress/angular
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Run
|
|
17
|
+
|
|
18
|
+
Open cypress test runner
|
|
19
|
+
```
|
|
20
|
+
npx cypress open --component
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If you need to run test in CI
|
|
24
|
+
```
|
|
25
|
+
npx cypress run --component
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
For more information, please check the official docs for [running Cypress](https://on.cypress.io/guides/getting-started/opening-the-app#Quick-Configuration) and for [component testing](https://on.cypress.io/guides/component-testing/writing-your-first-component-test).
|
|
29
|
+
|
|
30
|
+
## API
|
|
31
|
+
|
|
32
|
+
- `mount` is the most important function, allows to mount a given Angular component as a mini web application and interact with it using Cypress commands
|
|
33
|
+
- `MountConfig` Configuration used to configure your test
|
|
34
|
+
- `createOutputSpy` factory function that creates new EventEmitter for your component and spies on it's `emit` method.
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { mount } from '@cypress/angular'
|
|
40
|
+
import { HelloWorldComponent } from './hello-world.component'
|
|
41
|
+
|
|
42
|
+
describe('HelloWorldComponent', () => {
|
|
43
|
+
it('works', () => {
|
|
44
|
+
mount(HelloWorldComponent)
|
|
45
|
+
// now use standard Cypress commands
|
|
46
|
+
cy.contains('Hello World!').should('be.visible')
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import { mount } from '@cypress/angular'
|
|
53
|
+
import { HelloWorldComponent } from './hello-world.component'
|
|
54
|
+
|
|
55
|
+
describe('HelloWorldComponent', () => {
|
|
56
|
+
it('works', () => {
|
|
57
|
+
mount('<app-hello-world></app-hello-world>', {
|
|
58
|
+
declarations: [HelloWorldComponent]
|
|
59
|
+
})
|
|
60
|
+
// now use standard Cypress commands
|
|
61
|
+
cy.contains('Hello World!').should('be.visible')
|
|
62
|
+
})
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Look at the examples in [cypress-component-testing-apps](https://github.com/cypress-io/cypress-component-testing-apps) repo. Here in the `angular` and `angular-standalone` folders are the two example applications showing various testing scenarios.
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
## Compatibility
|
|
70
|
+
|
|
71
|
+
| @cypress/angular | cypress |
|
|
72
|
+
| -------------- | ------- |
|
|
73
|
+
| >= v1 | >= v10.5 |
|
|
74
|
+
|
|
75
|
+
## Development
|
|
76
|
+
|
|
77
|
+
Run `yarn build` to compile and sync packages to the `cypress` cli package.
|
|
78
|
+
|
|
79
|
+
## License
|
|
80
|
+
|
|
81
|
+
[](https://github.com/cypress-io/cypress/blob/master/LICENSE)
|
|
82
|
+
|
|
83
|
+
This project is licensed under the terms of the [MIT license](/LICENSE).
|
|
84
|
+
|
|
85
|
+
## [Changelog](./CHANGELOG.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# @cypress/mount-utils
|
|
2
|
+
|
|
3
|
+
> **Note** this package is not meant to be used outside of cypress component testing.
|
|
4
|
+
|
|
5
|
+
This librares exports some shared types and utility functions designed to build adapters for components frameworks.
|
|
6
|
+
|
|
7
|
+
It is used in:
|
|
8
|
+
|
|
9
|
+
- [`@cypress/react`](https://github.com/cypress-io/cypress/tree/develop/npm/react)
|
|
10
|
+
- [`@cypress/vue`](https://github.com/cypress-io/cypress/tree/develop/npm/vue)
|
|
11
|
+
|
|
12
|
+
## Compatibility
|
|
13
|
+
|
|
14
|
+
| @cypress/mount-utils | cypress |
|
|
15
|
+
| -------------------- | ------- |
|
|
16
|
+
| <= v1 | <= v9 |
|
|
17
|
+
| >= v2 | >= v10 |
|
|
18
|
+
|
|
19
|
+
## Changelog
|
|
20
|
+
|
|
21
|
+
[Changelog](./CHANGELOG.md)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# @cypress/react
|
|
2
|
+
|
|
3
|
+
Mount React components in the open source [Cypress.io](https://www.cypress.io/) test runner **v7.0.0+**
|
|
4
|
+
|
|
5
|
+
> **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [React Component Testing Docs](https://docs.cypress.io/guides/component-testing/quickstart-react#Configuring-Component-Testing) for mounting React components. Installing and importing `mount` from `@cypress/react` should only be used for advanced use-cases.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
- Requires Cypress v7.0.0 or later
|
|
10
|
+
- Requires [Node](https://nodejs.org/en/) version 12 or above
|
|
11
|
+
|
|
12
|
+
```sh
|
|
13
|
+
npm install --save-dev @cypress/react
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Run
|
|
17
|
+
|
|
18
|
+
Open cypress test runner
|
|
19
|
+
```
|
|
20
|
+
npx cypress open --component
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If you need to run test in CI
|
|
24
|
+
```
|
|
25
|
+
npx cypress run --component
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
For more information, please check the official docs for [running Cypress](https://on.cypress.io/guides/getting-started/opening-the-app#Quick-Configuration) and for [component testing](https://on.cypress.io/guides/component-testing/writing-your-first-component-test).
|
|
29
|
+
|
|
30
|
+
## API
|
|
31
|
+
|
|
32
|
+
- `mount` is the most important function, allows to mount a given React component as a mini web application and interact with it using Cypress commands
|
|
33
|
+
- `createMount` factory function that creates new `mount` function with default options
|
|
34
|
+
- `unmount` removes previously mounted component, mostly useful to test how the component cleans up after itself
|
|
35
|
+
- `mountHook` mounts a given React Hook in a test component for full testing, see `hooks` example
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import React from 'react'
|
|
41
|
+
import { mount } from '@cypress/react'
|
|
42
|
+
import { HelloWorld } from './hello-world.jsx'
|
|
43
|
+
describe('HelloWorld component', () => {
|
|
44
|
+
it('works', () => {
|
|
45
|
+
mount(<HelloWorld />)
|
|
46
|
+
// now use standard Cypress commands
|
|
47
|
+
cy.contains('Hello World!').should('be.visible')
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Look at the examples in [cypress/component](cypress/component) folder. Here is the list of examples showing various testing scenarios.
|
|
53
|
+
|
|
54
|
+
## Options
|
|
55
|
+
|
|
56
|
+
In most cases, the component already imports its own styles, thus it looks "right" during the test. If you need another CSS, the simplest way is to import it from the spec file:
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
// src/Footer.spec.js
|
|
60
|
+
import './styles/main.css'
|
|
61
|
+
import Footer from './Footer'
|
|
62
|
+
it('looks right', () => {
|
|
63
|
+
// styles are applied
|
|
64
|
+
mount(<Footer />)
|
|
65
|
+
})
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Extra styles
|
|
69
|
+
|
|
70
|
+
You can pass additional styles, css files and external stylesheets to load, see [docs/styles.md](./docs/styles.md) for the full list of options.
|
|
71
|
+
|
|
72
|
+
```js
|
|
73
|
+
const todo = {
|
|
74
|
+
id: '123',
|
|
75
|
+
title: 'Write more tests',
|
|
76
|
+
}
|
|
77
|
+
mount(<Todo todo={todo} />, {
|
|
78
|
+
stylesheets: [
|
|
79
|
+
'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.css',
|
|
80
|
+
],
|
|
81
|
+
})
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
You may also specify the `ReactDOM` package to use. This can be useful in complex monorepo setups that have different versions of React and React DOM installed. If you see an error relating to [mismatching versions of React or React DOM](https://reactjs.org/warnings/invalid-hook-call-warning.html#mismatching-versions-of-react-and-react-dom), this may be the solution. You can do this using the `ReactDom` option:
|
|
85
|
+
|
|
86
|
+
```jsx
|
|
87
|
+
// if you have multiple versions of ReactDom in your monorepo
|
|
88
|
+
import ReactDom from 'react-dom'
|
|
89
|
+
|
|
90
|
+
mount(<Todo todo={todo} />, {
|
|
91
|
+
stylesheets: [
|
|
92
|
+
'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.css',
|
|
93
|
+
],
|
|
94
|
+
ReactDom
|
|
95
|
+
})
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Compatibility
|
|
99
|
+
|
|
100
|
+
| @cypress/react | cypress |
|
|
101
|
+
| -------------- | ------- |
|
|
102
|
+
| <= v5 | <= v9 |
|
|
103
|
+
| >= v6 | >= v10 |
|
|
104
|
+
|
|
105
|
+
## Development
|
|
106
|
+
|
|
107
|
+
Run `yarn build` to compile and sync packages to the `cypress` cli package.
|
|
108
|
+
|
|
109
|
+
Run `yarn cy:open` to open Cypress component testing against real-world examples.
|
|
110
|
+
|
|
111
|
+
Run `yarn test` to execute headless Cypress tests.
|
|
112
|
+
|
|
113
|
+
## License
|
|
114
|
+
|
|
115
|
+
[](https://github.com/cypress-io/cypress/blob/master/LICENSE)
|
|
116
|
+
|
|
117
|
+
This project is licensed under the terms of the [MIT license](/LICENSE).
|
|
118
|
+
|
|
119
|
+
## [Changelog](./CHANGELOG.md)
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# @cypress/svelte
|
|
2
|
+
|
|
3
|
+
Mount Svelte components in the open source [Cypress.io](https://www.cypress.io/) test runner **v10.7.0+**
|
|
4
|
+
|
|
5
|
+
> **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [Svelte Component Testing Docs](https://docs.cypress.io/guides/component-testing/quickstart-svelte#Configuring-Component-Testing) for mounting Svelte components. Installing and importing `mount` from `@cypress/svelte` should only be used for advanced use-cases.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
- Requires Svelte >= 3
|
|
10
|
+
- Requires Cypress v10.7.0 or later
|
|
11
|
+
- Requires [Node](https://nodejs.org/en/) version 12 or above
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
npm install --save-dev @cypress/svelte
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Run
|
|
18
|
+
|
|
19
|
+
Open cypress test runner
|
|
20
|
+
```
|
|
21
|
+
npx cypress open --component
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If you need to run test in CI
|
|
25
|
+
```
|
|
26
|
+
npx cypress run --component
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
For more information, please check the official docs for [running Cypress](https://on.cypress.io/guides/getting-started/opening-the-app#Quick-Configuration) and for [component testing](https://on.cypress.io/guides/component-testing/writing-your-first-component-test).
|
|
30
|
+
|
|
31
|
+
## Example
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
import { mount } from '@cypress/svelte'
|
|
35
|
+
import HelloWorld from './HelloWorld.svelte'
|
|
36
|
+
|
|
37
|
+
describe('HelloWorld component', () => {
|
|
38
|
+
it('works', () => {
|
|
39
|
+
mount(HelloWorld)
|
|
40
|
+
// now use standard Cypress commands
|
|
41
|
+
cy.contains('Hello World!').should('be.visible')
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Options
|
|
47
|
+
|
|
48
|
+
In most cases, the component already imports its own styles, thus it looks "right" during the test. If you need another CSS, the simplest way is to import it from the spec file:
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
// src/HelloWorld.svelte
|
|
52
|
+
import './styles/main.css'
|
|
53
|
+
import HelloWorld from './HelloWorld.svelte'
|
|
54
|
+
|
|
55
|
+
it('looks right', () => {
|
|
56
|
+
// styles are applied
|
|
57
|
+
mount(HelloWorld)
|
|
58
|
+
})
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
> Note: Global styles can be imported in your component support file, allowing the styles to apply to all mounted components.
|
|
62
|
+
|
|
63
|
+
## Compatibility
|
|
64
|
+
|
|
65
|
+
| @cypress/svelte | cypress |
|
|
66
|
+
| -------------- | ------- |
|
|
67
|
+
| >= v1 | >= v10 |
|
|
68
|
+
|
|
69
|
+
## Development
|
|
70
|
+
|
|
71
|
+
Run `yarn build` to compile and sync packages to the `cypress` cli package.
|
|
72
|
+
|
|
73
|
+
Run `yarn cy:open` to open Cypress component testing against real-world examples.
|
|
74
|
+
|
|
75
|
+
Run `yarn test` to execute headless Cypress tests.
|
|
76
|
+
|
|
77
|
+
## License
|
|
78
|
+
|
|
79
|
+
[](https://github.com/cypress-io/cypress/blob/master/LICENSE)
|
|
80
|
+
|
|
81
|
+
This project is licensed under the terms of the [MIT license](/LICENSE).
|
|
82
|
+
|
|
83
|
+
## [Changelog](./CHANGELOG.md)
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# @cypress/vue
|
|
2
|
+
|
|
3
|
+
Mount Vue components in the open source [Cypress.io](https://www.cypress.io/) test runner **v7.0.0+**
|
|
4
|
+
|
|
5
|
+
> **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [Vue Component Testing Docs](https://docs.cypress.io/guides/component-testing/quickstart-vue#Configuring-Component-Testing) for mounting Vue components. Installing and importing `mount` from `@cypress/vue` should only be used for advanced use-cases.
|
|
6
|
+
|
|
7
|
+
### How is this different from @cypress/vue2?
|
|
8
|
+
Cypress packages the current version of Vue under @cypress/vue, and older versions under separate package names. Use [@cypress/vue2](https://github.com/cypress-io/cypress/tree/develop/npm/vue2) if you're still using vue@2, and this package if you're on vue@3.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
- Requires Cypress v7.0.0 or later
|
|
13
|
+
- Requires [Node](https://nodejs.org/en/) version 12 or above
|
|
14
|
+
- Requires Vue 3.x. If you are using Vue 2.x, you want [@cypress/vue2](https://github.com/cypress-io/cypress/tree/develop/npm/vue2) instead.
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npm i -D @cypress/vue
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Usage and Examples
|
|
21
|
+
|
|
22
|
+
```js
|
|
23
|
+
// components/HelloWorld.spec.js
|
|
24
|
+
import { mount } from '@cypress/vue'
|
|
25
|
+
import { HelloWorld } from './HelloWorld.vue'
|
|
26
|
+
describe('HelloWorld component', () => {
|
|
27
|
+
it('works', () => {
|
|
28
|
+
mount(HelloWorld)
|
|
29
|
+
// now use standard Cypress commands
|
|
30
|
+
cy.contains('Hello World!').should('be.visible')
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Look at the examples in [cypress/component](cypress/component) folder. Here is the list of examples showing various testing scenarios.
|
|
36
|
+
|
|
37
|
+
### Options
|
|
38
|
+
|
|
39
|
+
You can pass additional styles, css files and external stylesheets to load, see [docs/styles.md](./docs/styles.md) for full list.
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
import Todo from './Todo.vue'
|
|
43
|
+
const todo = {
|
|
44
|
+
id: '123',
|
|
45
|
+
title: 'Write more tests',
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
mount(Todo, {
|
|
49
|
+
propsData: { todo },
|
|
50
|
+
stylesheets: [
|
|
51
|
+
'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.css',
|
|
52
|
+
],
|
|
53
|
+
})
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Global Vue Options
|
|
57
|
+
|
|
58
|
+
You can pass extensions (global components, mixins, modules to use)
|
|
59
|
+
when mounting Vue component. Use `{ extensions: { ... }}` object inside
|
|
60
|
+
the `options`.
|
|
61
|
+
|
|
62
|
+
- `components` - object of 'id' and components to register globally, see [Components](npm/vue/cypress/component/basic/components) example
|
|
63
|
+
- `use` (alias `plugins`) - list of plugins, see [Plugins](npm/vue/cypress/component/basic/plugins)
|
|
64
|
+
- `mixin` (alias `mixins`) - list of global mixins, see [Mixins](npm/vue/cypress/component/basic/mixins) example
|
|
65
|
+
- `filters` - hash of global filters, see [Filters](npm/vue/cypress/component/basic/filters) example
|
|
66
|
+
|
|
67
|
+
## Development
|
|
68
|
+
|
|
69
|
+
Run `yarn build` to compile and sync packages to the `cypress` cli package.
|
|
70
|
+
|
|
71
|
+
Run `yarn cy:open` to open Cypress component testing against real-world examples.
|
|
72
|
+
|
|
73
|
+
Run `yarn test` to execute headless Cypress tests.
|
|
74
|
+
|
|
75
|
+
## Compatibility
|
|
76
|
+
|
|
77
|
+
| @cypress/vue | cypress |
|
|
78
|
+
| ------------ | ------- |
|
|
79
|
+
| <= v3 | <= v9 |
|
|
80
|
+
| >= v4 | >= v10 |
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
[](https://github.com/cypress-io/cypress/blob/master/LICENSE)
|
|
85
|
+
|
|
86
|
+
This project is licensed under the terms of the [MIT license](/LICENSE).
|
|
87
|
+
|
|
88
|
+
## [Changelog](./CHANGELOG.md)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# @cypress/vue2
|
|
2
|
+
|
|
3
|
+
Mount Vue components in the open source [Cypress.io](https://www.cypress.io/) test runner **v7.0.0+**
|
|
4
|
+
|
|
5
|
+
> **Note:** This package is bundled with the `cypress` package and should not need to be installed separately. See the [Vue Component Testing Docs](https://docs.cypress.io/guides/component-testing/quickstart-vue#Configuring-Component-Testing) for mounting Vue components. Installing and importing `mount` from `@cypress/vue` should only be used for advanced use-cases.
|
|
6
|
+
|
|
7
|
+
### How is this different from @cypress/vue?
|
|
8
|
+
Cypress packages the current version of Vue under @cypress/vue, and older versions under separate package names. Use [@cypress/vue](https://github.com/cypress-io/cypress/tree/develop/npm/vue) if you're up to date, and this package if you're still using vue@2.
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
- Requires Cypress v7.0.0 or later
|
|
13
|
+
- Requires [Node](https://nodejs.org/en/) version 12 or above
|
|
14
|
+
- Requires Vue 2.x. If you are using Vue 3.0.0 or later, you want [@cypress/vue](https://github.com/cypress-io/cypress/tree/develop/npm/vue) instead.
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
npm i -D @cypress/vue2
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Usage and Examples
|
|
21
|
+
|
|
22
|
+
```js
|
|
23
|
+
// components/HelloWorld.spec.js
|
|
24
|
+
import { mount } from '@cypress/vue2'
|
|
25
|
+
import { HelloWorld } from './HelloWorld.vue'
|
|
26
|
+
describe('HelloWorld component', () => {
|
|
27
|
+
it('works', () => {
|
|
28
|
+
mount(HelloWorld)
|
|
29
|
+
// now use standard Cypress commands
|
|
30
|
+
cy.contains('Hello World!').should('be.visible')
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Options
|
|
36
|
+
|
|
37
|
+
You can pass additional styles, css files and external stylesheets to load, see [docs/styles.md](./docs/styles.md) for full list.
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import Todo from './Todo.vue'
|
|
41
|
+
const todo = {
|
|
42
|
+
id: '123',
|
|
43
|
+
title: 'Write more tests',
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
mount(Todo, {
|
|
47
|
+
propsData: { todo },
|
|
48
|
+
stylesheets: [
|
|
49
|
+
'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.css',
|
|
50
|
+
],
|
|
51
|
+
})
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Global Vue Options
|
|
55
|
+
|
|
56
|
+
You can pass extensions (global components, mixins, modules to use)
|
|
57
|
+
when mounting Vue component. Use `{ extensions: { ... }}` object inside
|
|
58
|
+
the `options`.
|
|
59
|
+
|
|
60
|
+
- `components` - object of 'id' and components to register globally, see [Components](cypress/component/basic/components) example
|
|
61
|
+
- `use` (alias `plugins`) - list of plugins, see [Plugins](cypress/component/basic/plugins)
|
|
62
|
+
- `mixin` (alias `mixins`) - list of global mixins, see [Mixins](cypress/component/basic/mixins) example
|
|
63
|
+
- `filters` - hash of global filters, see [Filters](cypress/component/basic/filters) example
|
|
64
|
+
|
|
65
|
+
## Compatibility
|
|
66
|
+
|
|
67
|
+
| @cypress/vue2 | cypress |
|
|
68
|
+
| ------------- | ------- |
|
|
69
|
+
| >= v1 | >= v10 |
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
[](https://github.com/cypress-io/cypress/blob/master/LICENSE)
|
|
74
|
+
|
|
75
|
+
This project is licensed under the terms of the [MIT license](/LICENSE).
|
|
76
|
+
|
|
77
|
+
## [Changelog](./CHANGELOG.md)
|