anuragshas commited on
Commit
af987b1
·
1 Parent(s): 063f5af

chore: add pre-commit hooks with Husky and lint-staged

Browse files
Files changed (4) hide show
  1. .husky/pre-commit +4 -0
  2. README.md +12 -0
  3. package-lock.json +736 -0
  4. package.json +17 -2
.husky/pre-commit ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
3
+
4
+ npm test && npm run lint && npx lint-staged
README.md CHANGED
@@ -46,3 +46,15 @@ Or individually:
46
  - `npm run lint:html`
47
  - `npm run lint:css`
48
  - `npm run lint:js`
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  - `npm run lint:html`
47
  - `npm run lint:css`
48
  - `npm run lint:js`
49
+
50
+ ## Git Hooks (Husky)
51
+
52
+ Husky is configured to run tests, linters, and lint-staged automatically on each commit.
53
+ After installing dependencies, run:
54
+ ```
55
+ npm run prepare
56
+ ```
57
+ Now, any `git commit` will:
58
+ - run `npm test`
59
+ - run `npm run lint`
60
+ - run `lint-staged` to fix staged files
package-lock.json CHANGED
@@ -10,6 +10,8 @@
10
  "devDependencies": {
11
  "eslint": "^8.0.0",
12
  "htmlhint": "^0.15.0",
 
 
13
  "npm-run-all": "^4.1.5",
14
  "stylelint": "^15.0.0",
15
  "stylelint-config-standard": "^32.0.0"
@@ -351,6 +353,35 @@
351
  "url": "https://github.com/sponsors/epoberezkin"
352
  }
353
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
354
  "node_modules/ansi-regex": {
355
  "version": "5.0.1",
356
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -646,6 +677,136 @@
646
  "url": "https://github.com/chalk/chalk?sponsor=1"
647
  }
648
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
649
  "node_modules/color-convert": {
650
  "version": "2.0.1",
651
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -673,6 +834,13 @@
673
  "dev": true,
674
  "license": "MIT"
675
  },
 
 
 
 
 
 
 
676
  "node_modules/combined-stream": {
677
  "version": "1.0.8",
678
  "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -1037,6 +1205,13 @@
1037
  "node": ">= 0.4"
1038
  }
1039
  },
 
 
 
 
 
 
 
1040
  "node_modules/emoji-regex": {
1041
  "version": "8.0.0",
1042
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -1354,6 +1529,44 @@
1354
  "node": ">=0.10.0"
1355
  }
1356
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1357
  "node_modules/fast-deep-equal": {
1358
  "version": "3.1.3",
1359
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -1627,6 +1840,19 @@
1627
  "node": ">= 0.4"
1628
  }
1629
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
1630
  "node_modules/get-symbol-description": {
1631
  "version": "1.1.0",
1632
  "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
@@ -2029,6 +2255,32 @@
2029
  "node": ">=8"
2030
  }
2031
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2032
  "node_modules/ignore": {
2033
  "version": "5.3.2",
2034
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -2481,6 +2733,19 @@
2481
  "url": "https://github.com/sponsors/ljharb"
2482
  }
2483
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
2484
  "node_modules/is-string": {
2485
  "version": "1.1.1",
2486
  "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
@@ -2688,6 +2953,16 @@
2688
  "node": ">= 0.8.0"
2689
  }
2690
  },
 
 
 
 
 
 
 
 
 
 
2691
  "node_modules/lines-and-columns": {
2692
  "version": "1.2.4",
2693
  "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
@@ -2695,6 +2970,135 @@
2695
  "dev": true,
2696
  "license": "MIT"
2697
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2698
  "node_modules/load-json-file": {
2699
  "version": "4.0.0",
2700
  "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
@@ -2741,6 +3145,98 @@
2741
  "dev": true,
2742
  "license": "MIT"
2743
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2744
  "node_modules/lru-cache": {
2745
  "version": "6.0.0",
2746
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -2886,6 +3382,13 @@
2886
  "url": "https://github.com/sponsors/sindresorhus"
2887
  }
2888
  },
 
 
 
 
 
 
 
2889
  "node_modules/merge2": {
2890
  "version": "1.4.1",
2891
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -2933,6 +3436,19 @@
2933
  "node": ">= 0.6"
2934
  }
2935
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
2936
  "node_modules/min-indent": {
2937
  "version": "1.0.1",
2938
  "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
@@ -3222,6 +3738,35 @@
3222
  "which": "bin/which"
3223
  }
3224
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3225
  "node_modules/object-inspect": {
3226
  "version": "1.13.4",
3227
  "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
@@ -3276,6 +3821,22 @@
3276
  "wrappy": "1"
3277
  }
3278
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3279
  "node_modules/optionator": {
3280
  "version": "0.9.4",
3281
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -3869,6 +4430,56 @@
3869
  "node": ">=4"
3870
  }
3871
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3872
  "node_modules/reusify": {
3873
  "version": "1.1.0",
3874
  "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
@@ -3880,6 +4491,13 @@
3880
  "node": ">=0.10.0"
3881
  }
3882
  },
 
 
 
 
 
 
 
3883
  "node_modules/rimraf": {
3884
  "version": "3.0.2",
3885
  "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -4248,6 +4866,16 @@
4248
  "node": ">= 0.4"
4249
  }
4250
  },
 
 
 
 
 
 
 
 
 
 
4251
  "node_modules/string-width": {
4252
  "version": "4.2.3",
4253
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -4364,6 +4992,19 @@
4364
  "node": ">=4"
4365
  }
4366
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
4367
  "node_modules/strip-indent": {
4368
  "version": "4.0.0",
4369
  "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
@@ -4933,6 +5574,91 @@
4933
  "node": ">=0.10.0"
4934
  }
4935
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4936
  "node_modules/wrappy": {
4937
  "version": "1.0.2",
4938
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -4968,6 +5694,16 @@
4968
  "dev": true,
4969
  "license": "ISC"
4970
  },
 
 
 
 
 
 
 
 
 
 
4971
  "node_modules/yargs-parser": {
4972
  "version": "20.2.9",
4973
  "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
 
10
  "devDependencies": {
11
  "eslint": "^8.0.0",
12
  "htmlhint": "^0.15.0",
13
+ "husky": "^8.0.3",
14
+ "lint-staged": "^13.3.0",
15
  "npm-run-all": "^4.1.5",
16
  "stylelint": "^15.0.0",
17
  "stylelint-config-standard": "^32.0.0"
 
353
  "url": "https://github.com/sponsors/epoberezkin"
354
  }
355
  },
356
+ "node_modules/ansi-escapes": {
357
+ "version": "5.0.0",
358
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz",
359
+ "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==",
360
+ "dev": true,
361
+ "license": "MIT",
362
+ "dependencies": {
363
+ "type-fest": "^1.0.2"
364
+ },
365
+ "engines": {
366
+ "node": ">=12"
367
+ },
368
+ "funding": {
369
+ "url": "https://github.com/sponsors/sindresorhus"
370
+ }
371
+ },
372
+ "node_modules/ansi-escapes/node_modules/type-fest": {
373
+ "version": "1.4.0",
374
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
375
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
376
+ "dev": true,
377
+ "license": "(MIT OR CC0-1.0)",
378
+ "engines": {
379
+ "node": ">=10"
380
+ },
381
+ "funding": {
382
+ "url": "https://github.com/sponsors/sindresorhus"
383
+ }
384
+ },
385
  "node_modules/ansi-regex": {
386
  "version": "5.0.1",
387
  "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
 
677
  "url": "https://github.com/chalk/chalk?sponsor=1"
678
  }
679
  },
680
+ "node_modules/cli-cursor": {
681
+ "version": "4.0.0",
682
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz",
683
+ "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==",
684
+ "dev": true,
685
+ "license": "MIT",
686
+ "dependencies": {
687
+ "restore-cursor": "^4.0.0"
688
+ },
689
+ "engines": {
690
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
691
+ },
692
+ "funding": {
693
+ "url": "https://github.com/sponsors/sindresorhus"
694
+ }
695
+ },
696
+ "node_modules/cli-truncate": {
697
+ "version": "3.1.0",
698
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
699
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
700
+ "dev": true,
701
+ "license": "MIT",
702
+ "dependencies": {
703
+ "slice-ansi": "^5.0.0",
704
+ "string-width": "^5.0.0"
705
+ },
706
+ "engines": {
707
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
708
+ },
709
+ "funding": {
710
+ "url": "https://github.com/sponsors/sindresorhus"
711
+ }
712
+ },
713
+ "node_modules/cli-truncate/node_modules/ansi-regex": {
714
+ "version": "6.1.0",
715
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
716
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
717
+ "dev": true,
718
+ "license": "MIT",
719
+ "engines": {
720
+ "node": ">=12"
721
+ },
722
+ "funding": {
723
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
724
+ }
725
+ },
726
+ "node_modules/cli-truncate/node_modules/ansi-styles": {
727
+ "version": "6.2.1",
728
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
729
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
730
+ "dev": true,
731
+ "license": "MIT",
732
+ "engines": {
733
+ "node": ">=12"
734
+ },
735
+ "funding": {
736
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
737
+ }
738
+ },
739
+ "node_modules/cli-truncate/node_modules/emoji-regex": {
740
+ "version": "9.2.2",
741
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
742
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
743
+ "dev": true,
744
+ "license": "MIT"
745
+ },
746
+ "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": {
747
+ "version": "4.0.0",
748
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
749
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
750
+ "dev": true,
751
+ "license": "MIT",
752
+ "engines": {
753
+ "node": ">=12"
754
+ },
755
+ "funding": {
756
+ "url": "https://github.com/sponsors/sindresorhus"
757
+ }
758
+ },
759
+ "node_modules/cli-truncate/node_modules/slice-ansi": {
760
+ "version": "5.0.0",
761
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
762
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
763
+ "dev": true,
764
+ "license": "MIT",
765
+ "dependencies": {
766
+ "ansi-styles": "^6.0.0",
767
+ "is-fullwidth-code-point": "^4.0.0"
768
+ },
769
+ "engines": {
770
+ "node": ">=12"
771
+ },
772
+ "funding": {
773
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
774
+ }
775
+ },
776
+ "node_modules/cli-truncate/node_modules/string-width": {
777
+ "version": "5.1.2",
778
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
779
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
780
+ "dev": true,
781
+ "license": "MIT",
782
+ "dependencies": {
783
+ "eastasianwidth": "^0.2.0",
784
+ "emoji-regex": "^9.2.2",
785
+ "strip-ansi": "^7.0.1"
786
+ },
787
+ "engines": {
788
+ "node": ">=12"
789
+ },
790
+ "funding": {
791
+ "url": "https://github.com/sponsors/sindresorhus"
792
+ }
793
+ },
794
+ "node_modules/cli-truncate/node_modules/strip-ansi": {
795
+ "version": "7.1.0",
796
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
797
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
798
+ "dev": true,
799
+ "license": "MIT",
800
+ "dependencies": {
801
+ "ansi-regex": "^6.0.1"
802
+ },
803
+ "engines": {
804
+ "node": ">=12"
805
+ },
806
+ "funding": {
807
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
808
+ }
809
+ },
810
  "node_modules/color-convert": {
811
  "version": "2.0.1",
812
  "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
 
834
  "dev": true,
835
  "license": "MIT"
836
  },
837
+ "node_modules/colorette": {
838
+ "version": "2.0.20",
839
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
840
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
841
+ "dev": true,
842
+ "license": "MIT"
843
+ },
844
  "node_modules/combined-stream": {
845
  "version": "1.0.8",
846
  "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
 
1205
  "node": ">= 0.4"
1206
  }
1207
  },
1208
+ "node_modules/eastasianwidth": {
1209
+ "version": "0.2.0",
1210
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1211
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
1212
+ "dev": true,
1213
+ "license": "MIT"
1214
+ },
1215
  "node_modules/emoji-regex": {
1216
  "version": "8.0.0",
1217
  "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
 
1529
  "node": ">=0.10.0"
1530
  }
1531
  },
1532
+ "node_modules/eventemitter3": {
1533
+ "version": "5.0.1",
1534
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
1535
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
1536
+ "dev": true,
1537
+ "license": "MIT"
1538
+ },
1539
+ "node_modules/execa": {
1540
+ "version": "7.2.0",
1541
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
1542
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
1543
+ "dev": true,
1544
+ "license": "MIT",
1545
+ "dependencies": {
1546
+ "cross-spawn": "^7.0.3",
1547
+ "get-stream": "^6.0.1",
1548
+ "human-signals": "^4.3.0",
1549
+ "is-stream": "^3.0.0",
1550
+ "merge-stream": "^2.0.0",
1551
+ "npm-run-path": "^5.1.0",
1552
+ "onetime": "^6.0.0",
1553
+ "signal-exit": "^3.0.7",
1554
+ "strip-final-newline": "^3.0.0"
1555
+ },
1556
+ "engines": {
1557
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
1558
+ },
1559
+ "funding": {
1560
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
1561
+ }
1562
+ },
1563
+ "node_modules/execa/node_modules/signal-exit": {
1564
+ "version": "3.0.7",
1565
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
1566
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
1567
+ "dev": true,
1568
+ "license": "ISC"
1569
+ },
1570
  "node_modules/fast-deep-equal": {
1571
  "version": "3.1.3",
1572
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
 
1840
  "node": ">= 0.4"
1841
  }
1842
  },
1843
+ "node_modules/get-stream": {
1844
+ "version": "6.0.1",
1845
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
1846
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
1847
+ "dev": true,
1848
+ "license": "MIT",
1849
+ "engines": {
1850
+ "node": ">=10"
1851
+ },
1852
+ "funding": {
1853
+ "url": "https://github.com/sponsors/sindresorhus"
1854
+ }
1855
+ },
1856
  "node_modules/get-symbol-description": {
1857
  "version": "1.1.0",
1858
  "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
 
2255
  "node": ">=8"
2256
  }
2257
  },
2258
+ "node_modules/human-signals": {
2259
+ "version": "4.3.1",
2260
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
2261
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
2262
+ "dev": true,
2263
+ "license": "Apache-2.0",
2264
+ "engines": {
2265
+ "node": ">=14.18.0"
2266
+ }
2267
+ },
2268
+ "node_modules/husky": {
2269
+ "version": "8.0.3",
2270
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
2271
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
2272
+ "dev": true,
2273
+ "license": "MIT",
2274
+ "bin": {
2275
+ "husky": "lib/bin.js"
2276
+ },
2277
+ "engines": {
2278
+ "node": ">=14"
2279
+ },
2280
+ "funding": {
2281
+ "url": "https://github.com/sponsors/typicode"
2282
+ }
2283
+ },
2284
  "node_modules/ignore": {
2285
  "version": "5.3.2",
2286
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
 
2733
  "url": "https://github.com/sponsors/ljharb"
2734
  }
2735
  },
2736
+ "node_modules/is-stream": {
2737
+ "version": "3.0.0",
2738
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
2739
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
2740
+ "dev": true,
2741
+ "license": "MIT",
2742
+ "engines": {
2743
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
2744
+ },
2745
+ "funding": {
2746
+ "url": "https://github.com/sponsors/sindresorhus"
2747
+ }
2748
+ },
2749
  "node_modules/is-string": {
2750
  "version": "1.1.1",
2751
  "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
 
2953
  "node": ">= 0.8.0"
2954
  }
2955
  },
2956
+ "node_modules/lilconfig": {
2957
+ "version": "2.1.0",
2958
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
2959
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
2960
+ "dev": true,
2961
+ "license": "MIT",
2962
+ "engines": {
2963
+ "node": ">=10"
2964
+ }
2965
+ },
2966
  "node_modules/lines-and-columns": {
2967
  "version": "1.2.4",
2968
  "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
 
2970
  "dev": true,
2971
  "license": "MIT"
2972
  },
2973
+ "node_modules/lint-staged": {
2974
+ "version": "13.3.0",
2975
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz",
2976
+ "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==",
2977
+ "dev": true,
2978
+ "license": "MIT",
2979
+ "dependencies": {
2980
+ "chalk": "5.3.0",
2981
+ "commander": "11.0.0",
2982
+ "debug": "4.3.4",
2983
+ "execa": "7.2.0",
2984
+ "lilconfig": "2.1.0",
2985
+ "listr2": "6.6.1",
2986
+ "micromatch": "4.0.5",
2987
+ "pidtree": "0.6.0",
2988
+ "string-argv": "0.3.2",
2989
+ "yaml": "2.3.1"
2990
+ },
2991
+ "bin": {
2992
+ "lint-staged": "bin/lint-staged.js"
2993
+ },
2994
+ "engines": {
2995
+ "node": "^16.14.0 || >=18.0.0"
2996
+ },
2997
+ "funding": {
2998
+ "url": "https://opencollective.com/lint-staged"
2999
+ }
3000
+ },
3001
+ "node_modules/lint-staged/node_modules/chalk": {
3002
+ "version": "5.3.0",
3003
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
3004
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
3005
+ "dev": true,
3006
+ "license": "MIT",
3007
+ "engines": {
3008
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
3009
+ },
3010
+ "funding": {
3011
+ "url": "https://github.com/chalk/chalk?sponsor=1"
3012
+ }
3013
+ },
3014
+ "node_modules/lint-staged/node_modules/commander": {
3015
+ "version": "11.0.0",
3016
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
3017
+ "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
3018
+ "dev": true,
3019
+ "license": "MIT",
3020
+ "engines": {
3021
+ "node": ">=16"
3022
+ }
3023
+ },
3024
+ "node_modules/lint-staged/node_modules/debug": {
3025
+ "version": "4.3.4",
3026
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3027
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3028
+ "dev": true,
3029
+ "license": "MIT",
3030
+ "dependencies": {
3031
+ "ms": "2.1.2"
3032
+ },
3033
+ "engines": {
3034
+ "node": ">=6.0"
3035
+ },
3036
+ "peerDependenciesMeta": {
3037
+ "supports-color": {
3038
+ "optional": true
3039
+ }
3040
+ }
3041
+ },
3042
+ "node_modules/lint-staged/node_modules/micromatch": {
3043
+ "version": "4.0.5",
3044
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
3045
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
3046
+ "dev": true,
3047
+ "license": "MIT",
3048
+ "dependencies": {
3049
+ "braces": "^3.0.2",
3050
+ "picomatch": "^2.3.1"
3051
+ },
3052
+ "engines": {
3053
+ "node": ">=8.6"
3054
+ }
3055
+ },
3056
+ "node_modules/lint-staged/node_modules/ms": {
3057
+ "version": "2.1.2",
3058
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3059
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3060
+ "dev": true,
3061
+ "license": "MIT"
3062
+ },
3063
+ "node_modules/lint-staged/node_modules/pidtree": {
3064
+ "version": "0.6.0",
3065
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
3066
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
3067
+ "dev": true,
3068
+ "license": "MIT",
3069
+ "bin": {
3070
+ "pidtree": "bin/pidtree.js"
3071
+ },
3072
+ "engines": {
3073
+ "node": ">=0.10"
3074
+ }
3075
+ },
3076
+ "node_modules/listr2": {
3077
+ "version": "6.6.1",
3078
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz",
3079
+ "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==",
3080
+ "dev": true,
3081
+ "license": "MIT",
3082
+ "dependencies": {
3083
+ "cli-truncate": "^3.1.0",
3084
+ "colorette": "^2.0.20",
3085
+ "eventemitter3": "^5.0.1",
3086
+ "log-update": "^5.0.1",
3087
+ "rfdc": "^1.3.0",
3088
+ "wrap-ansi": "^8.1.0"
3089
+ },
3090
+ "engines": {
3091
+ "node": ">=16.0.0"
3092
+ },
3093
+ "peerDependencies": {
3094
+ "enquirer": ">= 2.3.0 < 3"
3095
+ },
3096
+ "peerDependenciesMeta": {
3097
+ "enquirer": {
3098
+ "optional": true
3099
+ }
3100
+ }
3101
+ },
3102
  "node_modules/load-json-file": {
3103
  "version": "4.0.0",
3104
  "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
 
3145
  "dev": true,
3146
  "license": "MIT"
3147
  },
3148
+ "node_modules/log-update": {
3149
+ "version": "5.0.1",
3150
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz",
3151
+ "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==",
3152
+ "dev": true,
3153
+ "license": "MIT",
3154
+ "dependencies": {
3155
+ "ansi-escapes": "^5.0.0",
3156
+ "cli-cursor": "^4.0.0",
3157
+ "slice-ansi": "^5.0.0",
3158
+ "strip-ansi": "^7.0.1",
3159
+ "wrap-ansi": "^8.0.1"
3160
+ },
3161
+ "engines": {
3162
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
3163
+ },
3164
+ "funding": {
3165
+ "url": "https://github.com/sponsors/sindresorhus"
3166
+ }
3167
+ },
3168
+ "node_modules/log-update/node_modules/ansi-regex": {
3169
+ "version": "6.1.0",
3170
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
3171
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
3172
+ "dev": true,
3173
+ "license": "MIT",
3174
+ "engines": {
3175
+ "node": ">=12"
3176
+ },
3177
+ "funding": {
3178
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
3179
+ }
3180
+ },
3181
+ "node_modules/log-update/node_modules/ansi-styles": {
3182
+ "version": "6.2.1",
3183
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
3184
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
3185
+ "dev": true,
3186
+ "license": "MIT",
3187
+ "engines": {
3188
+ "node": ">=12"
3189
+ },
3190
+ "funding": {
3191
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
3192
+ }
3193
+ },
3194
+ "node_modules/log-update/node_modules/is-fullwidth-code-point": {
3195
+ "version": "4.0.0",
3196
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
3197
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
3198
+ "dev": true,
3199
+ "license": "MIT",
3200
+ "engines": {
3201
+ "node": ">=12"
3202
+ },
3203
+ "funding": {
3204
+ "url": "https://github.com/sponsors/sindresorhus"
3205
+ }
3206
+ },
3207
+ "node_modules/log-update/node_modules/slice-ansi": {
3208
+ "version": "5.0.0",
3209
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
3210
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
3211
+ "dev": true,
3212
+ "license": "MIT",
3213
+ "dependencies": {
3214
+ "ansi-styles": "^6.0.0",
3215
+ "is-fullwidth-code-point": "^4.0.0"
3216
+ },
3217
+ "engines": {
3218
+ "node": ">=12"
3219
+ },
3220
+ "funding": {
3221
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
3222
+ }
3223
+ },
3224
+ "node_modules/log-update/node_modules/strip-ansi": {
3225
+ "version": "7.1.0",
3226
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
3227
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
3228
+ "dev": true,
3229
+ "license": "MIT",
3230
+ "dependencies": {
3231
+ "ansi-regex": "^6.0.1"
3232
+ },
3233
+ "engines": {
3234
+ "node": ">=12"
3235
+ },
3236
+ "funding": {
3237
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
3238
+ }
3239
+ },
3240
  "node_modules/lru-cache": {
3241
  "version": "6.0.0",
3242
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
 
3382
  "url": "https://github.com/sponsors/sindresorhus"
3383
  }
3384
  },
3385
+ "node_modules/merge-stream": {
3386
+ "version": "2.0.0",
3387
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
3388
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
3389
+ "dev": true,
3390
+ "license": "MIT"
3391
+ },
3392
  "node_modules/merge2": {
3393
  "version": "1.4.1",
3394
  "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
 
3436
  "node": ">= 0.6"
3437
  }
3438
  },
3439
+ "node_modules/mimic-fn": {
3440
+ "version": "4.0.0",
3441
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
3442
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
3443
+ "dev": true,
3444
+ "license": "MIT",
3445
+ "engines": {
3446
+ "node": ">=12"
3447
+ },
3448
+ "funding": {
3449
+ "url": "https://github.com/sponsors/sindresorhus"
3450
+ }
3451
+ },
3452
  "node_modules/min-indent": {
3453
  "version": "1.0.1",
3454
  "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
 
3738
  "which": "bin/which"
3739
  }
3740
  },
3741
+ "node_modules/npm-run-path": {
3742
+ "version": "5.3.0",
3743
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
3744
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
3745
+ "dev": true,
3746
+ "license": "MIT",
3747
+ "dependencies": {
3748
+ "path-key": "^4.0.0"
3749
+ },
3750
+ "engines": {
3751
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
3752
+ },
3753
+ "funding": {
3754
+ "url": "https://github.com/sponsors/sindresorhus"
3755
+ }
3756
+ },
3757
+ "node_modules/npm-run-path/node_modules/path-key": {
3758
+ "version": "4.0.0",
3759
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
3760
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
3761
+ "dev": true,
3762
+ "license": "MIT",
3763
+ "engines": {
3764
+ "node": ">=12"
3765
+ },
3766
+ "funding": {
3767
+ "url": "https://github.com/sponsors/sindresorhus"
3768
+ }
3769
+ },
3770
  "node_modules/object-inspect": {
3771
  "version": "1.13.4",
3772
  "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
 
3821
  "wrappy": "1"
3822
  }
3823
  },
3824
+ "node_modules/onetime": {
3825
+ "version": "6.0.0",
3826
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
3827
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
3828
+ "dev": true,
3829
+ "license": "MIT",
3830
+ "dependencies": {
3831
+ "mimic-fn": "^4.0.0"
3832
+ },
3833
+ "engines": {
3834
+ "node": ">=12"
3835
+ },
3836
+ "funding": {
3837
+ "url": "https://github.com/sponsors/sindresorhus"
3838
+ }
3839
+ },
3840
  "node_modules/optionator": {
3841
  "version": "0.9.4",
3842
  "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
 
4430
  "node": ">=4"
4431
  }
4432
  },
4433
+ "node_modules/restore-cursor": {
4434
+ "version": "4.0.0",
4435
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz",
4436
+ "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==",
4437
+ "dev": true,
4438
+ "license": "MIT",
4439
+ "dependencies": {
4440
+ "onetime": "^5.1.0",
4441
+ "signal-exit": "^3.0.2"
4442
+ },
4443
+ "engines": {
4444
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
4445
+ },
4446
+ "funding": {
4447
+ "url": "https://github.com/sponsors/sindresorhus"
4448
+ }
4449
+ },
4450
+ "node_modules/restore-cursor/node_modules/mimic-fn": {
4451
+ "version": "2.1.0",
4452
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
4453
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
4454
+ "dev": true,
4455
+ "license": "MIT",
4456
+ "engines": {
4457
+ "node": ">=6"
4458
+ }
4459
+ },
4460
+ "node_modules/restore-cursor/node_modules/onetime": {
4461
+ "version": "5.1.2",
4462
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
4463
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
4464
+ "dev": true,
4465
+ "license": "MIT",
4466
+ "dependencies": {
4467
+ "mimic-fn": "^2.1.0"
4468
+ },
4469
+ "engines": {
4470
+ "node": ">=6"
4471
+ },
4472
+ "funding": {
4473
+ "url": "https://github.com/sponsors/sindresorhus"
4474
+ }
4475
+ },
4476
+ "node_modules/restore-cursor/node_modules/signal-exit": {
4477
+ "version": "3.0.7",
4478
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
4479
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
4480
+ "dev": true,
4481
+ "license": "ISC"
4482
+ },
4483
  "node_modules/reusify": {
4484
  "version": "1.1.0",
4485
  "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
 
4491
  "node": ">=0.10.0"
4492
  }
4493
  },
4494
+ "node_modules/rfdc": {
4495
+ "version": "1.4.1",
4496
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
4497
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
4498
+ "dev": true,
4499
+ "license": "MIT"
4500
+ },
4501
  "node_modules/rimraf": {
4502
  "version": "3.0.2",
4503
  "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
 
4866
  "node": ">= 0.4"
4867
  }
4868
  },
4869
+ "node_modules/string-argv": {
4870
+ "version": "0.3.2",
4871
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
4872
+ "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
4873
+ "dev": true,
4874
+ "license": "MIT",
4875
+ "engines": {
4876
+ "node": ">=0.6.19"
4877
+ }
4878
+ },
4879
  "node_modules/string-width": {
4880
  "version": "4.2.3",
4881
  "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
 
4992
  "node": ">=4"
4993
  }
4994
  },
4995
+ "node_modules/strip-final-newline": {
4996
+ "version": "3.0.0",
4997
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
4998
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
4999
+ "dev": true,
5000
+ "license": "MIT",
5001
+ "engines": {
5002
+ "node": ">=12"
5003
+ },
5004
+ "funding": {
5005
+ "url": "https://github.com/sponsors/sindresorhus"
5006
+ }
5007
+ },
5008
  "node_modules/strip-indent": {
5009
  "version": "4.0.0",
5010
  "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
 
5574
  "node": ">=0.10.0"
5575
  }
5576
  },
5577
+ "node_modules/wrap-ansi": {
5578
+ "version": "8.1.0",
5579
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
5580
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
5581
+ "dev": true,
5582
+ "license": "MIT",
5583
+ "dependencies": {
5584
+ "ansi-styles": "^6.1.0",
5585
+ "string-width": "^5.0.1",
5586
+ "strip-ansi": "^7.0.1"
5587
+ },
5588
+ "engines": {
5589
+ "node": ">=12"
5590
+ },
5591
+ "funding": {
5592
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
5593
+ }
5594
+ },
5595
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
5596
+ "version": "6.1.0",
5597
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
5598
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
5599
+ "dev": true,
5600
+ "license": "MIT",
5601
+ "engines": {
5602
+ "node": ">=12"
5603
+ },
5604
+ "funding": {
5605
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
5606
+ }
5607
+ },
5608
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
5609
+ "version": "6.2.1",
5610
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
5611
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
5612
+ "dev": true,
5613
+ "license": "MIT",
5614
+ "engines": {
5615
+ "node": ">=12"
5616
+ },
5617
+ "funding": {
5618
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
5619
+ }
5620
+ },
5621
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
5622
+ "version": "9.2.2",
5623
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
5624
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
5625
+ "dev": true,
5626
+ "license": "MIT"
5627
+ },
5628
+ "node_modules/wrap-ansi/node_modules/string-width": {
5629
+ "version": "5.1.2",
5630
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
5631
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
5632
+ "dev": true,
5633
+ "license": "MIT",
5634
+ "dependencies": {
5635
+ "eastasianwidth": "^0.2.0",
5636
+ "emoji-regex": "^9.2.2",
5637
+ "strip-ansi": "^7.0.1"
5638
+ },
5639
+ "engines": {
5640
+ "node": ">=12"
5641
+ },
5642
+ "funding": {
5643
+ "url": "https://github.com/sponsors/sindresorhus"
5644
+ }
5645
+ },
5646
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
5647
+ "version": "7.1.0",
5648
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
5649
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
5650
+ "dev": true,
5651
+ "license": "MIT",
5652
+ "dependencies": {
5653
+ "ansi-regex": "^6.0.1"
5654
+ },
5655
+ "engines": {
5656
+ "node": ">=12"
5657
+ },
5658
+ "funding": {
5659
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
5660
+ }
5661
+ },
5662
  "node_modules/wrappy": {
5663
  "version": "1.0.2",
5664
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 
5694
  "dev": true,
5695
  "license": "ISC"
5696
  },
5697
+ "node_modules/yaml": {
5698
+ "version": "2.3.1",
5699
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
5700
+ "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
5701
+ "dev": true,
5702
+ "license": "ISC",
5703
+ "engines": {
5704
+ "node": ">= 14"
5705
+ }
5706
+ },
5707
  "node_modules/yargs-parser": {
5708
  "version": "20.2.9",
5709
  "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
package.json CHANGED
@@ -3,16 +3,31 @@
3
  "version": "1.0.0",
4
  "description": "Client-side quotation generator with linting setup",
5
  "scripts": {
 
6
  "lint:js": "eslint script.js tests",
7
  "lint:css": "stylelint '**/*.css'",
8
  "lint:html": "htmlhint index.html",
9
- "lint": "npm-run-all lint:html lint:css lint:js"
 
10
  },
11
  "devDependencies": {
12
  "eslint": "^8.0.0",
13
  "htmlhint": "^0.15.0",
 
 
14
  "npm-run-all": "^4.1.5",
15
  "stylelint": "^15.0.0",
16
  "stylelint-config-standard": "^32.0.0"
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
- }
 
3
  "version": "1.0.0",
4
  "description": "Client-side quotation generator with linting setup",
5
  "scripts": {
6
+ "prepare": "husky install",
7
  "lint:js": "eslint script.js tests",
8
  "lint:css": "stylelint '**/*.css'",
9
  "lint:html": "htmlhint index.html",
10
+ "lint": "npm-run-all lint:html lint:css lint:js",
11
+ "test": "node tests/test.js"
12
  },
13
  "devDependencies": {
14
  "eslint": "^8.0.0",
15
  "htmlhint": "^0.15.0",
16
+ "husky": "^8.0.3",
17
+ "lint-staged": "^13.3.0",
18
  "npm-run-all": "^4.1.5",
19
  "stylelint": "^15.0.0",
20
  "stylelint-config-standard": "^32.0.0"
21
+ },
22
+ "lint-staged": {
23
+ "*.js": [
24
+ "eslint --cache --fix"
25
+ ],
26
+ "*.css": [
27
+ "stylelint --fix"
28
+ ],
29
+ "*.html": [
30
+ "htmlhint"
31
+ ]
32
  }
33
+ }