immosquare-cleaner 0.1.23 → 0.1.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/lib/immosquare-cleaner/version.rb +1 -1
  3. data/linters/rubocop-3.2.2.yml +1 -0
  4. data/linters/rubocop.yml +2 -0
  5. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/LICENSE +19 -0
  6. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/README.md +71 -0
  7. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +79 -0
  8. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/conf/environments.js +215 -0
  9. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +1104 -0
  10. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +1 -0
  11. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +4333 -0
  12. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +1 -0
  13. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +532 -0
  14. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +523 -0
  15. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +115 -0
  16. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +145 -0
  17. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +238 -0
  18. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +19 -0
  19. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +225 -0
  20. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +1149 -0
  21. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +318 -0
  22. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +29 -0
  23. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/index.js +56 -0
  24. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +191 -0
  25. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +135 -0
  26. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +325 -0
  27. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +63 -0
  28. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +96 -0
  29. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +42 -0
  30. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +149 -0
  31. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/index.d.ts +36 -0
  32. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/index.js +77 -0
  33. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/license +9 -0
  34. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/package.json +47 -0
  35. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/node_modules/strip-json-comments/readme.md +78 -0
  36. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/package.json +82 -0
  37. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/eslintrc/universal.js +9 -0
  38. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/LICENSE +19 -0
  39. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/README.md +57 -0
  40. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/package.json +31 -0
  41. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-all.js +278 -0
  42. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/configs/eslint-recommended.js +76 -0
  43. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@eslint/js/src/index.js +17 -0
  44. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/LICENSE +201 -0
  45. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/README.md +342 -0
  46. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/api.js +1061 -0
  47. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/CHANGELOG.md +8 -0
  48. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/LICENSE +29 -0
  49. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/README.md +234 -0
  50. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/package.json +33 -0
  51. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/index.js +7 -0
  52. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/merge-strategy.js +53 -0
  53. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/object-schema.js +235 -0
  54. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/src/validation-strategy.js +102 -0
  55. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/tests/merge-strategy.js +66 -0
  56. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/tests/object-schema.js +611 -0
  57. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/@humanwhocodes/object-schema/tests/validation-strategy.js +186 -0
  58. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/LICENSE +15 -0
  59. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/README.md +224 -0
  60. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/minimatch.js +947 -0
  61. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
  62. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
  63. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
  64. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
  65. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/node_modules/minimatch/package.json +33 -0
  66. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/@humanwhocodes/config-array/package.json +61 -0
  67. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/index.d.ts +415 -0
  68. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/license +9 -0
  69. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/package.json +68 -0
  70. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/readme.md +341 -0
  71. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/index.js +229 -0
  72. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/templates.js +134 -0
  73. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/chalk/source/util.js +39 -0
  74. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/LICENSE +15 -0
  75. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/README.md +230 -0
  76. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/minimatch.js +947 -0
  77. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
  78. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
  79. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
  80. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
  81. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/minimatch/package.json +33 -0
  82. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/index.d.ts +17 -0
  83. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/index.js +4 -0
  84. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/license +9 -0
  85. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.d.ts +37 -0
  86. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0
  87. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/license +9 -0
  88. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/package.json +55 -0
  89. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +78 -0
  90. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/package.json +54 -0
  91. data/node_modules/@eslint-community/eslint-utils/node_modules/eslint/node_modules/strip-ansi/readme.md +46 -0
  92. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/index.js +162 -0
  93. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/license.md +21 -0
  94. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/package.json +38 -0
  95. data/node_modules/eslint-plugin-import/node_modules/debug/node_modules/ms/readme.md +59 -0
  96. data/node_modules/npm-check-updates/build/package.json +2 -3
  97. data/node_modules/npm-check-updates/build/src/lib/runGlobal.js +18 -11
  98. data/node_modules/npm-check-updates/build/src/lib/runGlobal.js.map +1 -1
  99. data/node_modules/npm-check-updates/build/src/package-managers/bun.js +2 -3
  100. data/node_modules/npm-check-updates/build/src/package-managers/bun.js.map +1 -1
  101. data/node_modules/npm-check-updates/build/src/package-managers/npm.js +12 -8
  102. data/node_modules/npm-check-updates/build/src/package-managers/npm.js.map +1 -1
  103. data/node_modules/npm-check-updates/build/src/package-managers/pnpm.js +37 -14
  104. data/node_modules/npm-check-updates/build/src/package-managers/pnpm.js.map +1 -1
  105. data/node_modules/npm-check-updates/build/src/package-managers/yarn.js +36 -11
  106. data/node_modules/npm-check-updates/build/src/package-managers/yarn.js.map +1 -1
  107. data/node_modules/npm-check-updates/package.json +2 -3
  108. data/node_modules/prettier/LICENSE +3 -3
  109. data/node_modules/prettier/index.cjs +1 -1
  110. data/node_modules/prettier/index.mjs +14 -22
  111. data/node_modules/prettier/package.json +1 -1
  112. data/node_modules/prettier/plugins/acorn.js +10 -10
  113. data/node_modules/prettier/plugins/acorn.mjs +10 -10
  114. data/node_modules/prettier/plugins/angular.js +1 -1
  115. data/node_modules/prettier/plugins/angular.mjs +1 -1
  116. data/node_modules/prettier/plugins/babel.js +8 -8
  117. data/node_modules/prettier/plugins/babel.mjs +8 -8
  118. data/node_modules/prettier/plugins/estree.js +24 -24
  119. data/node_modules/prettier/plugins/estree.mjs +24 -24
  120. data/node_modules/prettier/plugins/flow.js +17 -17
  121. data/node_modules/prettier/plugins/flow.mjs +17 -17
  122. data/node_modules/prettier/plugins/graphql.js +6 -6
  123. data/node_modules/prettier/plugins/graphql.mjs +6 -6
  124. data/node_modules/prettier/plugins/html.js +1 -1
  125. data/node_modules/prettier/plugins/html.mjs +1 -1
  126. data/node_modules/prettier/plugins/markdown.js +1 -1
  127. data/node_modules/prettier/plugins/markdown.mjs +1 -1
  128. data/node_modules/prettier/plugins/meriyah.js +4 -4
  129. data/node_modules/prettier/plugins/meriyah.mjs +4 -4
  130. data/node_modules/prettier/plugins/typescript.js +19 -19
  131. data/node_modules/prettier/plugins/typescript.mjs +19 -19
  132. data/node_modules/prettier/standalone.js +10 -10
  133. data/node_modules/prettier/standalone.mjs +9 -9
  134. data/package.json +2 -2
  135. metadata +95 -4
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @filedescription Merge Strategy Tests
3
+ */
4
+ /* global it, describe, beforeEach */
5
+
6
+ "use strict";
7
+
8
+ //-----------------------------------------------------------------------------
9
+ // Requirements
10
+ //-----------------------------------------------------------------------------
11
+
12
+ const assert = require("chai").assert;
13
+ const { ValidationStrategy } = require("../src/");
14
+
15
+ //-----------------------------------------------------------------------------
16
+ // Class
17
+ //-----------------------------------------------------------------------------
18
+
19
+ describe("ValidationStrategy", () => {
20
+
21
+ describe("boolean", () => {
22
+ it("should not throw an error when the value is a boolean", () => {
23
+ ValidationStrategy.boolean(true);
24
+ });
25
+
26
+ it("should throw an error when the value is null", () => {
27
+ assert.throws(() => {
28
+ ValidationStrategy.boolean(null);
29
+ }, /Expected a Boolean/);
30
+ });
31
+
32
+ it("should throw an error when the value is a string", () => {
33
+ assert.throws(() => {
34
+ ValidationStrategy.boolean("foo");
35
+ }, /Expected a Boolean/);
36
+ });
37
+
38
+ it("should throw an error when the value is a number", () => {
39
+ assert.throws(() => {
40
+ ValidationStrategy.boolean(123);
41
+ }, /Expected a Boolean/);
42
+ });
43
+
44
+ it("should throw an error when the value is an object", () => {
45
+ assert.throws(() => {
46
+ ValidationStrategy.boolean({});
47
+ }, /Expected a Boolean/);
48
+ });
49
+ });
50
+
51
+ describe("number", () => {
52
+ it("should not throw an error when the value is a number", () => {
53
+ ValidationStrategy.number(25);
54
+ });
55
+
56
+ it("should throw an error when the value is null", () => {
57
+ assert.throws(() => {
58
+ ValidationStrategy.number(null);
59
+ }, /Expected a number/);
60
+ });
61
+
62
+ it("should throw an error when the value is a string", () => {
63
+ assert.throws(() => {
64
+ ValidationStrategy.number("foo");
65
+ }, /Expected a number/);
66
+ });
67
+
68
+ it("should throw an error when the value is a boolean", () => {
69
+ assert.throws(() => {
70
+ ValidationStrategy.number(true);
71
+ }, /Expected a number/);
72
+ });
73
+
74
+ it("should throw an error when the value is an object", () => {
75
+ assert.throws(() => {
76
+ ValidationStrategy.number({});
77
+ }, /Expected a number/);
78
+ });
79
+ });
80
+
81
+ describe("object", () => {
82
+ it("should not throw an error when the value is an object", () => {
83
+ ValidationStrategy.object({});
84
+ });
85
+
86
+ it("should throw an error when the value is null", () => {
87
+ assert.throws(() => {
88
+ ValidationStrategy.object(null);
89
+ }, /Expected an object/);
90
+ });
91
+
92
+ it("should throw an error when the value is a string", () => {
93
+ assert.throws(() => {
94
+ ValidationStrategy.object("");
95
+ }, /Expected an object/);
96
+ });
97
+ });
98
+
99
+ describe("array", () => {
100
+ it("should not throw an error when the value is an array", () => {
101
+ ValidationStrategy.array([]);
102
+ });
103
+
104
+ it("should throw an error when the value is null", () => {
105
+ assert.throws(() => {
106
+ ValidationStrategy.array(null);
107
+ }, /Expected an array/);
108
+ });
109
+
110
+ it("should throw an error when the value is a string", () => {
111
+ assert.throws(() => {
112
+ ValidationStrategy.array("");
113
+ }, /Expected an array/);
114
+ });
115
+
116
+ it("should throw an error when the value is an object", () => {
117
+ assert.throws(() => {
118
+ ValidationStrategy.array({});
119
+ }, /Expected an array/);
120
+ });
121
+ });
122
+
123
+ describe("object?", () => {
124
+ it("should not throw an error when the value is an object", () => {
125
+ ValidationStrategy["object?"]({});
126
+ });
127
+
128
+ it("should not throw an error when the value is null", () => {
129
+ ValidationStrategy["object?"](null);
130
+ });
131
+
132
+ it("should throw an error when the value is a string", () => {
133
+ assert.throws(() => {
134
+ ValidationStrategy["object?"]("");
135
+ }, /Expected an object/);
136
+ });
137
+ });
138
+
139
+ describe("string", () => {
140
+ it("should not throw an error when the value is a string", () => {
141
+ ValidationStrategy.string("foo");
142
+ });
143
+
144
+ it("should not throw an error when the value is an empty string", () => {
145
+ ValidationStrategy.string("");
146
+ });
147
+
148
+ it("should throw an error when the value is null", () => {
149
+ assert.throws(() => {
150
+ ValidationStrategy.string(null);
151
+ }, /Expected a string/);
152
+ });
153
+
154
+ it("should throw an error when the value is an object", () => {
155
+ assert.throws(() => {
156
+ ValidationStrategy.string({});
157
+ }, /Expected a string/);
158
+ });
159
+ });
160
+
161
+ describe("string!", () => {
162
+ it("should not throw an error when the value is an string", () => {
163
+ ValidationStrategy["string!"]("foo");
164
+ });
165
+
166
+ it("should throw an error when the value is an empty string", () => {
167
+ assert.throws(() => {
168
+ ValidationStrategy["string!"]("");
169
+ }, /Expected a non-empty string/);
170
+ });
171
+
172
+ it("should throw an error when the value is null", () => {
173
+ assert.throws(() => {
174
+ ValidationStrategy["string!"](null);
175
+ }, /Expected a non-empty string/);
176
+ });
177
+
178
+ it("should throw an error when the value is an object", () => {
179
+ assert.throws(() => {
180
+ ValidationStrategy["string!"]({});
181
+ }, /Expected a non-empty string/);
182
+ });
183
+ });
184
+
185
+
186
+ });
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,224 @@
1
+ # minimatch
2
+
3
+ A minimal matching utility.
4
+
5
+ [![Build Status](https://travis-ci.org/isaacs/minimatch.svg?branch=master)](http://travis-ci.org/isaacs/minimatch)
6
+
7
+
8
+ This is the matching library used internally by npm.
9
+
10
+ It works by converting glob expressions into JavaScript `RegExp`
11
+ objects.
12
+
13
+ ## Usage
14
+
15
+ ```javascript
16
+ var minimatch = require("minimatch")
17
+
18
+ minimatch("bar.foo", "*.foo") // true!
19
+ minimatch("bar.foo", "*.bar") // false!
20
+ minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
21
+ ```
22
+
23
+ ## Features
24
+
25
+ Supports these glob features:
26
+
27
+ * Brace Expansion
28
+ * Extended glob matching
29
+ * "Globstar" `**` matching
30
+
31
+ See:
32
+
33
+ * `man sh`
34
+ * `man bash`
35
+ * `man 3 fnmatch`
36
+ * `man 5 gitignore`
37
+
38
+ ## Minimatch Class
39
+
40
+ Create a minimatch object by instantiating the `minimatch.Minimatch` class.
41
+
42
+ ```javascript
43
+ var Minimatch = require("minimatch").Minimatch
44
+ var mm = new Minimatch(pattern, options)
45
+ ```
46
+
47
+ ### Properties
48
+
49
+ * `pattern` The original pattern the minimatch object represents.
50
+ * `options` The options supplied to the constructor.
51
+ * `set` A 2-dimensional array of regexp or string expressions.
52
+ Each row in the
53
+ array corresponds to a brace-expanded pattern. Each item in the row
54
+ corresponds to a single path-part. For example, the pattern
55
+ `{a,b/c}/d` would expand to a set of patterns like:
56
+
57
+ [ [ a, d ]
58
+ , [ b, c, d ] ]
59
+
60
+ If a portion of the pattern doesn't have any "magic" in it
61
+ (that is, it's something like `"foo"` rather than `fo*o?`), then it
62
+ will be left as a string rather than converted to a regular
63
+ expression.
64
+
65
+ * `regexp` Created by the `makeRe` method. A single regular expression
66
+ expressing the entire pattern. This is useful in cases where you wish
67
+ to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
68
+ * `negate` True if the pattern is negated.
69
+ * `comment` True if the pattern is a comment.
70
+ * `empty` True if the pattern is `""`.
71
+
72
+ ### Methods
73
+
74
+ * `makeRe` Generate the `regexp` member if necessary, and return it.
75
+ Will return `false` if the pattern is invalid.
76
+ * `match(fname)` Return true if the filename matches the pattern, or
77
+ false otherwise.
78
+ * `matchOne(fileArray, patternArray, partial)` Take a `/`-split
79
+ filename, and match it against a single row in the `regExpSet`. This
80
+ method is mainly for internal use, but is exposed so that it can be
81
+ used by a glob-walker that needs to avoid excessive filesystem calls.
82
+
83
+ All other methods are internal, and will be called as necessary.
84
+
85
+ ### minimatch(path, pattern, options)
86
+
87
+ Main export. Tests a path against the pattern using the options.
88
+
89
+ ```javascript
90
+ var isJS = minimatch(file, "*.js", { matchBase: true })
91
+ ```
92
+
93
+ ### minimatch.filter(pattern, options)
94
+
95
+ Returns a function that tests its
96
+ supplied argument, suitable for use with `Array.filter`. Example:
97
+
98
+ ```javascript
99
+ var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
100
+ ```
101
+
102
+ ### minimatch.match(list, pattern, options)
103
+
104
+ Match against the list of
105
+ files, in the style of fnmatch or glob. If nothing is matched, and
106
+ options.nonull is set, then return a list containing the pattern itself.
107
+
108
+ ```javascript
109
+ var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
110
+ ```
111
+
112
+ ### minimatch.makeRe(pattern, options)
113
+
114
+ Make a regular expression object from the pattern.
115
+
116
+ ## Options
117
+
118
+ All options are `false` by default.
119
+
120
+ ### debug
121
+
122
+ Dump a ton of stuff to stderr.
123
+
124
+ ### nobrace
125
+
126
+ Do not expand `{a,b}` and `{1..3}` brace sets.
127
+
128
+ ### noglobstar
129
+
130
+ Disable `**` matching against multiple folder names.
131
+
132
+ ### dot
133
+
134
+ Allow patterns to match filenames starting with a period, even if
135
+ the pattern does not explicitly have a period in that spot.
136
+
137
+ Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
138
+ is set.
139
+
140
+ ### noext
141
+
142
+ Disable "extglob" style patterns like `+(a|b)`.
143
+
144
+ ### nocase
145
+
146
+ Perform a case-insensitive match.
147
+
148
+ ### nonull
149
+
150
+ When a match is not found by `minimatch.match`, return a list containing
151
+ the pattern itself if this option is set. When not set, an empty list
152
+ is returned if there are no matches.
153
+
154
+ ### matchBase
155
+
156
+ If set, then patterns without slashes will be matched
157
+ against the basename of the path if it contains slashes. For example,
158
+ `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
159
+
160
+ ### nocomment
161
+
162
+ Suppress the behavior of treating `#` at the start of a pattern as a
163
+ comment.
164
+
165
+ ### nonegate
166
+
167
+ Suppress the behavior of treating a leading `!` character as negation.
168
+
169
+ ### flipNegate
170
+
171
+ Returns from negate expressions the same as if they were not negated.
172
+ (Ie, true on a hit, false on a miss.)
173
+
174
+ ### partial
175
+
176
+ Compare a partial path to a pattern. As long as the parts of the path that
177
+ are present are not contradicted by the pattern, it will be treated as a
178
+ match. This is useful in applications where you're walking through a
179
+ folder structure, and don't yet have the full path, but want to ensure that
180
+ you do not walk down paths that can never be a match.
181
+
182
+ For example,
183
+
184
+ ```js
185
+ minimatch('/a/b', '/a/*/c/d', { partial: true }) // true, might be /a/b/c/d
186
+ minimatch('/a/b', '/**/d', { partial: true }) // true, might be /a/b/.../d
187
+ minimatch('/x/y/z', '/a/**/z', { partial: true }) // false, because x !== a
188
+ ```
189
+
190
+ ## Comparisons to other fnmatch/glob implementations
191
+
192
+ While strict compliance with the existing standards is a worthwhile
193
+ goal, some discrepancies exist between minimatch and other
194
+ implementations, and are intentional.
195
+
196
+ If the pattern starts with a `!` character, then it is negated. Set the
197
+ `nonegate` flag to suppress this behavior, and treat leading `!`
198
+ characters normally. This is perhaps relevant if you wish to start the
199
+ pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
200
+ characters at the start of a pattern will negate the pattern multiple
201
+ times.
202
+
203
+ If a pattern starts with `#`, then it is treated as a comment, and
204
+ will not match anything. Use `\#` to match a literal `#` at the
205
+ start of a line, or set the `nocomment` flag to suppress this behavior.
206
+
207
+ The double-star character `**` is supported by default, unless the
208
+ `noglobstar` flag is set. This is supported in the manner of bsdglob
209
+ and bash 4.1, where `**` only has special significance if it is the only
210
+ thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
211
+ `a/**b` will not.
212
+
213
+ If an escaped pattern has no matches, and the `nonull` flag is set,
214
+ then minimatch.match returns the pattern as-provided, rather than
215
+ interpreting the character escapes. For example,
216
+ `minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
217
+ `"*a?"`. This is akin to setting the `nullglob` option in bash, except
218
+ that it does not resolve escaped pattern characters.
219
+
220
+ If brace expansion is not disabled, then it is performed before any
221
+ other interpretation of the glob pattern. Thus, a pattern like
222
+ `+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
223
+ **first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
224
+ checked for validity. Since those two are valid, matching proceeds.