decidim 0.27.4 → 0.27.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim might be problematic. Click here for more details.

Files changed (214) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -16
  3. data/decidim-core/lib/decidim/webpacker/webpack/.modernizrrc +9 -0
  4. data/decidim.gemspec +65 -0
  5. data/docs/modules/develop/pages/releases.adoc +4 -0
  6. data/docs/modules/install/assets/attachments/.gitkeep +0 -0
  7. data/docs/modules/install/assets/images/.gitkeep +0 -0
  8. data/docs/modules/install/pages/manual.adoc +5 -1
  9. data/docs/modules/install/pages/update.adoc +5 -0
  10. data/docs/modules/install/partials/version_matrix.adoc +13 -0
  11. data/docs/modules/services/pages/maps.adoc +8 -0
  12. data/lib/decidim/gem_manager.rb +38 -0
  13. data/lib/decidim/version.rb +1 -1
  14. data/package-lock.json +32 -26
  15. data/packages/browserslist-config/package.json +1 -1
  16. data/packages/core/package.json +4 -4
  17. data/packages/dev/package.json +1 -1
  18. data/packages/elections/package.json +1 -1
  19. data/packages/eslint-config/package.json +1 -1
  20. data/packages/stylelint-config/package.json +1 -1
  21. data/packages/webpacker/package.json +1 -1
  22. metadata +52 -239
  23. data/lib/decidim/release_manager.rb.new +0 -43
  24. data/packages/core/node_modules/diff/CONTRIBUTING.md +0 -39
  25. data/packages/core/node_modules/diff/LICENSE +0 -31
  26. data/packages/core/node_modules/diff/README.md +0 -211
  27. data/packages/core/node_modules/diff/dist/diff.js +0 -1627
  28. data/packages/core/node_modules/diff/dist/diff.min.js +0 -38
  29. data/packages/core/node_modules/diff/lib/convert/dmp.js +0 -32
  30. data/packages/core/node_modules/diff/lib/convert/xml.js +0 -42
  31. data/packages/core/node_modules/diff/lib/diff/array.js +0 -45
  32. data/packages/core/node_modules/diff/lib/diff/base.js +0 -307
  33. data/packages/core/node_modules/diff/lib/diff/character.js +0 -37
  34. data/packages/core/node_modules/diff/lib/diff/css.js +0 -41
  35. data/packages/core/node_modules/diff/lib/diff/json.js +0 -163
  36. data/packages/core/node_modules/diff/lib/diff/line.js +0 -89
  37. data/packages/core/node_modules/diff/lib/diff/sentence.js +0 -41
  38. data/packages/core/node_modules/diff/lib/diff/word.js +0 -108
  39. data/packages/core/node_modules/diff/lib/index.es6.js +0 -1561
  40. data/packages/core/node_modules/diff/lib/index.js +0 -216
  41. data/packages/core/node_modules/diff/lib/index.mjs +0 -1561
  42. data/packages/core/node_modules/diff/lib/patch/apply.js +0 -238
  43. data/packages/core/node_modules/diff/lib/patch/create.js +0 -272
  44. data/packages/core/node_modules/diff/lib/patch/merge.js +0 -613
  45. data/packages/core/node_modules/diff/lib/patch/parse.js +0 -167
  46. data/packages/core/node_modules/diff/lib/util/array.js +0 -32
  47. data/packages/core/node_modules/diff/lib/util/distance-iterator.js +0 -57
  48. data/packages/core/node_modules/diff/lib/util/params.js +0 -24
  49. data/packages/core/node_modules/diff/package.json +0 -87
  50. data/packages/core/node_modules/diff/release-notes.md +0 -309
  51. data/packages/core/node_modules/diff/runtime.js +0 -3
  52. data/packages/core/package-lock.json +0 -4889
  53. data/packages/webpacker/node_modules/argparse/CHANGELOG.md +0 -216
  54. data/packages/webpacker/node_modules/argparse/LICENSE +0 -254
  55. data/packages/webpacker/node_modules/argparse/README.md +0 -84
  56. data/packages/webpacker/node_modules/argparse/argparse.js +0 -3707
  57. data/packages/webpacker/node_modules/argparse/lib/sub.js +0 -67
  58. data/packages/webpacker/node_modules/argparse/lib/textwrap.js +0 -440
  59. data/packages/webpacker/node_modules/argparse/package.json +0 -31
  60. data/packages/webpacker/node_modules/brace-expansion/LICENSE +0 -21
  61. data/packages/webpacker/node_modules/brace-expansion/README.md +0 -135
  62. data/packages/webpacker/node_modules/brace-expansion/index.js +0 -203
  63. data/packages/webpacker/node_modules/brace-expansion/package.json +0 -46
  64. data/packages/webpacker/node_modules/glob/LICENSE +0 -15
  65. data/packages/webpacker/node_modules/glob/README.md +0 -1214
  66. data/packages/webpacker/node_modules/glob/dist/cjs/package.json +0 -4
  67. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts +0 -3
  68. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts.map +0 -1
  69. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js +0 -270
  70. data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js.map +0 -1
  71. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts +0 -344
  72. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts.map +0 -1
  73. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js +0 -238
  74. data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js.map +0 -1
  75. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts +0 -14
  76. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts.map +0 -1
  77. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js +0 -27
  78. data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js.map +0 -1
  79. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts +0 -20
  80. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts.map +0 -1
  81. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js +0 -103
  82. data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js.map +0 -1
  83. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts +0 -95
  84. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts.map +0 -1
  85. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js +0 -68
  86. data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js.map +0 -1
  87. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts +0 -77
  88. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts.map +0 -1
  89. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js +0 -219
  90. data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js.map +0 -1
  91. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts +0 -59
  92. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts.map +0 -1
  93. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js +0 -309
  94. data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js.map +0 -1
  95. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts +0 -96
  96. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts.map +0 -1
  97. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js +0 -358
  98. data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js.map +0 -1
  99. data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts +0 -344
  100. data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts.map +0 -1
  101. data/packages/webpacker/node_modules/glob/dist/mjs/glob.js +0 -234
  102. data/packages/webpacker/node_modules/glob/dist/mjs/glob.js.map +0 -1
  103. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts +0 -14
  104. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts.map +0 -1
  105. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js +0 -23
  106. data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js.map +0 -1
  107. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts +0 -20
  108. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts.map +0 -1
  109. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js +0 -99
  110. data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js.map +0 -1
  111. data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts +0 -95
  112. data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts.map +0 -1
  113. data/packages/webpacker/node_modules/glob/dist/mjs/index.js +0 -56
  114. data/packages/webpacker/node_modules/glob/dist/mjs/index.js.map +0 -1
  115. data/packages/webpacker/node_modules/glob/dist/mjs/package.json +0 -4
  116. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts +0 -77
  117. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts.map +0 -1
  118. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js +0 -215
  119. data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js.map +0 -1
  120. data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts +0 -59
  121. data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts.map +0 -1
  122. data/packages/webpacker/node_modules/glob/dist/mjs/processor.js +0 -302
  123. data/packages/webpacker/node_modules/glob/dist/mjs/processor.js.map +0 -1
  124. data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts +0 -96
  125. data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts.map +0 -1
  126. data/packages/webpacker/node_modules/glob/dist/mjs/walker.js +0 -352
  127. data/packages/webpacker/node_modules/glob/dist/mjs/walker.js.map +0 -1
  128. data/packages/webpacker/node_modules/glob/package.json +0 -98
  129. data/packages/webpacker/node_modules/js-yaml/CHANGELOG.md +0 -616
  130. data/packages/webpacker/node_modules/js-yaml/LICENSE +0 -21
  131. data/packages/webpacker/node_modules/js-yaml/README.md +0 -246
  132. data/packages/webpacker/node_modules/js-yaml/bin/js-yaml.js +0 -126
  133. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.js +0 -3874
  134. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.min.js +0 -2
  135. data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.mjs +0 -3851
  136. data/packages/webpacker/node_modules/js-yaml/index.js +0 -47
  137. data/packages/webpacker/node_modules/js-yaml/lib/common.js +0 -59
  138. data/packages/webpacker/node_modules/js-yaml/lib/dumper.js +0 -965
  139. data/packages/webpacker/node_modules/js-yaml/lib/exception.js +0 -55
  140. data/packages/webpacker/node_modules/js-yaml/lib/loader.js +0 -1727
  141. data/packages/webpacker/node_modules/js-yaml/lib/schema/core.js +0 -11
  142. data/packages/webpacker/node_modules/js-yaml/lib/schema/default.js +0 -22
  143. data/packages/webpacker/node_modules/js-yaml/lib/schema/failsafe.js +0 -17
  144. data/packages/webpacker/node_modules/js-yaml/lib/schema/json.js +0 -19
  145. data/packages/webpacker/node_modules/js-yaml/lib/schema.js +0 -121
  146. data/packages/webpacker/node_modules/js-yaml/lib/snippet.js +0 -101
  147. data/packages/webpacker/node_modules/js-yaml/lib/type/binary.js +0 -125
  148. data/packages/webpacker/node_modules/js-yaml/lib/type/bool.js +0 -35
  149. data/packages/webpacker/node_modules/js-yaml/lib/type/float.js +0 -97
  150. data/packages/webpacker/node_modules/js-yaml/lib/type/int.js +0 -156
  151. data/packages/webpacker/node_modules/js-yaml/lib/type/map.js +0 -8
  152. data/packages/webpacker/node_modules/js-yaml/lib/type/merge.js +0 -12
  153. data/packages/webpacker/node_modules/js-yaml/lib/type/null.js +0 -35
  154. data/packages/webpacker/node_modules/js-yaml/lib/type/omap.js +0 -44
  155. data/packages/webpacker/node_modules/js-yaml/lib/type/pairs.js +0 -53
  156. data/packages/webpacker/node_modules/js-yaml/lib/type/seq.js +0 -8
  157. data/packages/webpacker/node_modules/js-yaml/lib/type/set.js +0 -29
  158. data/packages/webpacker/node_modules/js-yaml/lib/type/str.js +0 -8
  159. data/packages/webpacker/node_modules/js-yaml/lib/type/timestamp.js +0 -88
  160. data/packages/webpacker/node_modules/js-yaml/lib/type.js +0 -66
  161. data/packages/webpacker/node_modules/js-yaml/package.json +0 -66
  162. data/packages/webpacker/node_modules/minimatch/LICENSE +0 -15
  163. data/packages/webpacker/node_modules/minimatch/README.md +0 -454
  164. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts +0 -2
  165. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map +0 -1
  166. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js +0 -14
  167. data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map +0 -1
  168. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts +0 -19
  169. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts.map +0 -1
  170. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js +0 -589
  171. data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js.map +0 -1
  172. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts +0 -8
  173. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map +0 -1
  174. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js +0 -152
  175. data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js.map +0 -1
  176. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts +0 -12
  177. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts.map +0 -1
  178. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js +0 -22
  179. data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js.map +0 -1
  180. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts +0 -94
  181. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts.map +0 -1
  182. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js +0 -1011
  183. data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js.map +0 -1
  184. data/packages/webpacker/node_modules/minimatch/dist/cjs/package.json +0 -3
  185. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts +0 -17
  186. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts.map +0 -1
  187. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js +0 -24
  188. data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js.map +0 -1
  189. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts +0 -2
  190. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map +0 -1
  191. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +0 -10
  192. data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map +0 -1
  193. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts +0 -19
  194. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts.map +0 -1
  195. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js +0 -585
  196. data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js.map +0 -1
  197. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts +0 -8
  198. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map +0 -1
  199. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js +0 -148
  200. data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js.map +0 -1
  201. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts +0 -12
  202. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts.map +0 -1
  203. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js +0 -18
  204. data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js.map +0 -1
  205. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts +0 -94
  206. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts.map +0 -1
  207. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js +0 -995
  208. data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js.map +0 -1
  209. data/packages/webpacker/node_modules/minimatch/dist/mjs/package.json +0 -3
  210. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts +0 -17
  211. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts.map +0 -1
  212. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js +0 -20
  213. data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js.map +0 -1
  214. data/packages/webpacker/node_modules/minimatch/package.json +0 -86
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.glob = exports.hasMagic = exports.Glob = exports.unescape = exports.escape = exports.sync = exports.iterate = exports.iterateSync = exports.stream = exports.streamSync = exports.globIterate = exports.globIterateSync = exports.globSync = exports.globStream = exports.globStreamSync = void 0;
4
- const minimatch_1 = require("minimatch");
5
- const glob_js_1 = require("./glob.js");
6
- const has_magic_js_1 = require("./has-magic.js");
7
- function globStreamSync(pattern, options = {}) {
8
- return new glob_js_1.Glob(pattern, options).streamSync();
9
- }
10
- exports.globStreamSync = globStreamSync;
11
- function globStream(pattern, options = {}) {
12
- return new glob_js_1.Glob(pattern, options).stream();
13
- }
14
- exports.globStream = globStream;
15
- function globSync(pattern, options = {}) {
16
- return new glob_js_1.Glob(pattern, options).walkSync();
17
- }
18
- exports.globSync = globSync;
19
- async function glob_(pattern, options = {}) {
20
- return new glob_js_1.Glob(pattern, options).walk();
21
- }
22
- function globIterateSync(pattern, options = {}) {
23
- return new glob_js_1.Glob(pattern, options).iterateSync();
24
- }
25
- exports.globIterateSync = globIterateSync;
26
- function globIterate(pattern, options = {}) {
27
- return new glob_js_1.Glob(pattern, options).iterate();
28
- }
29
- exports.globIterate = globIterate;
30
- // aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc
31
- exports.streamSync = globStreamSync;
32
- exports.stream = Object.assign(globStream, { sync: globStreamSync });
33
- exports.iterateSync = globIterateSync;
34
- exports.iterate = Object.assign(globIterate, {
35
- sync: globIterateSync,
36
- });
37
- exports.sync = Object.assign(globSync, {
38
- stream: globStreamSync,
39
- iterate: globIterateSync,
40
- });
41
- /* c8 ignore start */
42
- var minimatch_2 = require("minimatch");
43
- Object.defineProperty(exports, "escape", { enumerable: true, get: function () { return minimatch_2.escape; } });
44
- Object.defineProperty(exports, "unescape", { enumerable: true, get: function () { return minimatch_2.unescape; } });
45
- var glob_js_2 = require("./glob.js");
46
- Object.defineProperty(exports, "Glob", { enumerable: true, get: function () { return glob_js_2.Glob; } });
47
- var has_magic_js_2 = require("./has-magic.js");
48
- Object.defineProperty(exports, "hasMagic", { enumerable: true, get: function () { return has_magic_js_2.hasMagic; } });
49
- /* c8 ignore stop */
50
- exports.glob = Object.assign(glob_, {
51
- glob: glob_,
52
- globSync,
53
- sync: exports.sync,
54
- globStream,
55
- stream: exports.stream,
56
- globStreamSync,
57
- streamSync: exports.streamSync,
58
- globIterate,
59
- iterate: exports.iterate,
60
- globIterateSync,
61
- iterateSync: exports.iterateSync,
62
- Glob: glob_js_1.Glob,
63
- hasMagic: has_magic_js_1.hasMagic,
64
- escape: minimatch_1.escape,
65
- unescape: minimatch_1.unescape,
66
- });
67
- exports.glob.glob = exports.glob;
68
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAS5C,uCAAgC;AAChC,iDAAyC;AAuBzC,SAAgB,cAAc,CAC5B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,CAAA;AAChD,CAAC;AALD,wCAKC;AAsBD,SAAgB,UAAU,CACxB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5C,CAAC;AALD,gCAKC;AAqBD,SAAgB,QAAQ,CACtB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAC9C,CAAC;AALD,4BAKC;AAwBD,KAAK,UAAU,KAAK,CAClB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAqBD,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AALD,0CAKC;AAqBD,SAAgB,WAAW,CACzB,OAA0B,EAC1B,UAAuB,EAAE;IAEzB,OAAO,IAAI,cAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;AAC7C,CAAC;AALD,kCAKC;AAED,iEAAiE;AACpD,QAAA,UAAU,GAAG,cAAc,CAAA;AAC3B,QAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAA;AAC5D,QAAA,WAAW,GAAG,eAAe,CAAA;AAC7B,QAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IAChD,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AACW,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,eAAe;CACzB,CAAC,CAAA;AAEF,qBAAqB;AACrB,uCAA4C;AAAnC,mGAAA,MAAM,OAAA;AAAE,qGAAA,QAAQ,OAAA;AACzB,qCAAgC;AAAvB,+FAAA,IAAI,OAAA;AAOb,+CAAyC;AAAhC,wGAAA,QAAQ,OAAA;AAGjB,oBAAoB;AAEP,QAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,IAAI,EAAE,KAAK;IACX,QAAQ;IACR,IAAI,EAAJ,YAAI;IACJ,UAAU;IACV,MAAM,EAAN,cAAM;IACN,cAAc;IACd,UAAU,EAAV,kBAAU;IACV,WAAW;IACX,OAAO,EAAP,eAAO;IACP,eAAe;IACf,WAAW,EAAX,mBAAW;IACX,IAAI,EAAJ,cAAI;IACJ,QAAQ,EAAR,uBAAQ;IACR,MAAM,EAAN,kBAAM;IACN,QAAQ,EAAR,oBAAQ;CACT,CAAC,CAAA;AACF,YAAI,CAAC,IAAI,GAAG,YAAI,CAAA","sourcesContent":["import { escape, unescape } from 'minimatch'\nimport { Minipass } from 'minipass'\nimport { Path } from 'path-scurry'\nimport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nimport { Glob } from './glob.js'\nimport { hasMagic } from './has-magic.js'\n\n/**\n * Syncronous form of {@link globStream}. Will read all the matches as fast as\n * you consume them, even all in a single tick if you consume them immediately,\n * but will still respond to backpressure if they're not consumed immediately.\n */\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass<Path, Path>\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass<string, string>\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesUnset\n): Minipass<string, string>\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions\n): Minipass<Path, Path> | Minipass<string, string>\nexport function globStreamSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).streamSync()\n}\n\n/**\n * Return a stream that emits all the strings or `Path` objects and\n * then emits `end` when completed.\n */\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Minipass<string, string>\nexport function globStream(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Minipass<Path, Path>\nexport function globStream(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Minipass<string, string>\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions\n): Minipass<Path, Path> | Minipass<string, string>\nexport function globStream(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).stream()\n}\n\n/**\n * Synchronous form of {@link glob}\n */\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Path[]\nexport function globSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions\n): Path[] | string[]\nexport function globSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walkSync()\n}\n\n/**\n * Perform an asynchronous glob search for the pattern(s) specified. Returns\n * [Path](https://isaacs.github.io/path-scurry/classes/PathBase) objects if the\n * {@link withFileTypes} option is set to `true`. See {@link GlobOptions} for\n * full option descriptions.\n */\nasync function glob_(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Promise<string[]>\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Promise<Path[]>\nasync function glob_(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Promise<string[]>\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions\n): Promise<Path[] | string[]>\nasync function glob_(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).walk()\n}\n\n/**\n * Return a sync iterator for walking glob pattern matches.\n */\nexport function globIterateSync(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): Generator<string, void, void>\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): Generator<Path, void, void>\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): Generator<string, void, void>\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions\n): Generator<Path, void, void> | Generator<string, void, void>\nexport function globIterateSync(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterateSync()\n}\n\n/**\n * Return an async iterator for walking glob pattern matches.\n */\nexport function globIterate(\n pattern: string | string[],\n options?: GlobOptionsWithFileTypesUnset | undefined\n): AsyncGenerator<string, void, void>\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesTrue\n): AsyncGenerator<Path, void, void>\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptionsWithFileTypesFalse\n): AsyncGenerator<string, void, void>\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions\n): AsyncGenerator<Path, void, void> | AsyncGenerator<string, void, void>\nexport function globIterate(\n pattern: string | string[],\n options: GlobOptions = {}\n) {\n return new Glob(pattern, options).iterate()\n}\n\n// aliases: glob.sync.stream() glob.stream.sync() glob.sync() etc\nexport const streamSync = globStreamSync\nexport const stream = Object.assign(globStream, { sync: globStreamSync })\nexport const iterateSync = globIterateSync\nexport const iterate = Object.assign(globIterate, {\n sync: globIterateSync,\n})\nexport const sync = Object.assign(globSync, {\n stream: globStreamSync,\n iterate: globIterateSync,\n})\n\n/* c8 ignore start */\nexport { escape, unescape } from 'minimatch'\nexport { Glob } from './glob.js'\nexport type {\n GlobOptions,\n GlobOptionsWithFileTypesFalse,\n GlobOptionsWithFileTypesTrue,\n GlobOptionsWithFileTypesUnset,\n} from './glob.js'\nexport { hasMagic } from './has-magic.js'\nexport type { IgnoreLike } from './ignore.js'\nexport type { MatchStream } from './walker.js'\n/* c8 ignore stop */\n\nexport const glob = Object.assign(glob_, {\n glob: glob_,\n globSync,\n sync,\n globStream,\n stream,\n globStreamSync,\n streamSync,\n globIterate,\n iterate,\n globIterateSync,\n iterateSync,\n Glob,\n hasMagic,\n escape,\n unescape,\n})\nglob.glob = glob\n"]}
@@ -1,77 +0,0 @@
1
- /// <reference types="node" />
2
- import { GLOBSTAR } from 'minimatch';
3
- export type MMPattern = string | RegExp | typeof GLOBSTAR;
4
- export type PatternList = [p: MMPattern, ...rest: MMPattern[]];
5
- export type UNCPatternList = [
6
- p0: '',
7
- p1: '',
8
- p2: string,
9
- p3: string,
10
- ...rest: MMPattern[]
11
- ];
12
- export type DrivePatternList = [p0: string, ...rest: MMPattern[]];
13
- export type AbsolutePatternList = [p0: '', ...rest: MMPattern[]];
14
- export type GlobList = [p: string, ...rest: string[]];
15
- /**
16
- * An immutable-ish view on an array of glob parts and their parsed
17
- * results
18
- */
19
- export declare class Pattern {
20
- #private;
21
- readonly length: number;
22
- constructor(patternList: MMPattern[], globList: string[], index: number, platform: NodeJS.Platform);
23
- /**
24
- * The first entry in the parsed list of patterns
25
- */
26
- pattern(): MMPattern;
27
- /**
28
- * true of if pattern() returns a string
29
- */
30
- isString(): boolean;
31
- /**
32
- * true of if pattern() returns GLOBSTAR
33
- */
34
- isGlobstar(): boolean;
35
- /**
36
- * true if pattern() returns a regexp
37
- */
38
- isRegExp(): boolean;
39
- /**
40
- * The /-joined set of glob parts that make up this pattern
41
- */
42
- globString(): string;
43
- /**
44
- * true if there are more pattern parts after this one
45
- */
46
- hasMore(): boolean;
47
- /**
48
- * The rest of the pattern after this part, or null if this is the end
49
- */
50
- rest(): Pattern | null;
51
- /**
52
- * true if the pattern represents a //unc/path/ on windows
53
- */
54
- isUNC(): boolean;
55
- /**
56
- * True if the pattern starts with a drive letter on Windows
57
- */
58
- isDrive(): boolean;
59
- /**
60
- * True if the pattern is rooted on an absolute path
61
- */
62
- isAbsolute(): boolean;
63
- /**
64
- * consume the root of the pattern, and return it
65
- */
66
- root(): string;
67
- /**
68
- * Check to see if the current globstar pattern is allowed to follow
69
- * a symbolic link.
70
- */
71
- checkFollowGlobstar(): boolean;
72
- /**
73
- * Mark that the current globstar pattern is following a symbolic link
74
- */
75
- markFollowGlobstar(): boolean;
76
- }
77
- //# sourceMappingURL=pattern.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/pattern.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,QAAQ,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,GAAG,IAAI,EAAE,SAAS,EAAE;CACrB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AACjE,MAAM,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAMrD;;;GAGG;AACH,qBAAa,OAAO;;IAIlB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;gBAUrB,WAAW,EAAE,SAAS,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;IA6D3B;;OAEG;IACH,OAAO,IAAI,SAAS;IAIpB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAGnB;;OAEG;IACH,UAAU,IAAI,OAAO;IAGrB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAUpB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,IAAI,OAAO,GAAG,IAAI;IAetB;;OAEG;IACH,KAAK,IAAI,OAAO;IAoBhB;;OAEG;IACH,OAAO,IAAI,OAAO;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;OAEG;IACH,IAAI,IAAI,MAAM;IAOd;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAQ9B;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B"}
@@ -1,219 +0,0 @@
1
- "use strict";
2
- // this is just a very light wrapper around 2 arrays with an offset index
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Pattern = void 0;
5
- const minimatch_1 = require("minimatch");
6
- const isPatternList = (pl) => pl.length >= 1;
7
- const isGlobList = (gl) => gl.length >= 1;
8
- /**
9
- * An immutable-ish view on an array of glob parts and their parsed
10
- * results
11
- */
12
- class Pattern {
13
- #patternList;
14
- #globList;
15
- #index;
16
- length;
17
- #platform;
18
- #rest;
19
- #globString;
20
- #isDrive;
21
- #isUNC;
22
- #isAbsolute;
23
- #followGlobstar = true;
24
- constructor(patternList, globList, index, platform) {
25
- if (!isPatternList(patternList)) {
26
- throw new TypeError('empty pattern list');
27
- }
28
- if (!isGlobList(globList)) {
29
- throw new TypeError('empty glob list');
30
- }
31
- if (globList.length !== patternList.length) {
32
- throw new TypeError('mismatched pattern list and glob list lengths');
33
- }
34
- this.length = patternList.length;
35
- if (index < 0 || index >= this.length) {
36
- throw new TypeError('index out of range');
37
- }
38
- this.#patternList = patternList;
39
- this.#globList = globList;
40
- this.#index = index;
41
- this.#platform = platform;
42
- // normalize root entries of absolute patterns on initial creation.
43
- if (this.#index === 0) {
44
- // c: => ['c:/']
45
- // C:/ => ['C:/']
46
- // C:/x => ['C:/', 'x']
47
- // //host/share => ['//host/share/']
48
- // //host/share/ => ['//host/share/']
49
- // //host/share/x => ['//host/share/', 'x']
50
- // /etc => ['/', 'etc']
51
- // / => ['/']
52
- if (this.isUNC()) {
53
- // '' / '' / 'host' / 'share'
54
- const [p0, p1, p2, p3, ...prest] = this.#patternList;
55
- const [g0, g1, g2, g3, ...grest] = this.#globList;
56
- if (prest[0] === '') {
57
- // ends in /
58
- prest.shift();
59
- grest.shift();
60
- }
61
- const p = [p0, p1, p2, p3, ''].join('/');
62
- const g = [g0, g1, g2, g3, ''].join('/');
63
- this.#patternList = [p, ...prest];
64
- this.#globList = [g, ...grest];
65
- this.length = this.#patternList.length;
66
- }
67
- else if (this.isDrive() || this.isAbsolute()) {
68
- const [p1, ...prest] = this.#patternList;
69
- const [g1, ...grest] = this.#globList;
70
- if (prest[0] === '') {
71
- // ends in /
72
- prest.shift();
73
- grest.shift();
74
- }
75
- const p = p1 + '/';
76
- const g = g1 + '/';
77
- this.#patternList = [p, ...prest];
78
- this.#globList = [g, ...grest];
79
- this.length = this.#patternList.length;
80
- }
81
- }
82
- }
83
- /**
84
- * The first entry in the parsed list of patterns
85
- */
86
- pattern() {
87
- return this.#patternList[this.#index];
88
- }
89
- /**
90
- * true of if pattern() returns a string
91
- */
92
- isString() {
93
- return typeof this.#patternList[this.#index] === 'string';
94
- }
95
- /**
96
- * true of if pattern() returns GLOBSTAR
97
- */
98
- isGlobstar() {
99
- return this.#patternList[this.#index] === minimatch_1.GLOBSTAR;
100
- }
101
- /**
102
- * true if pattern() returns a regexp
103
- */
104
- isRegExp() {
105
- return this.#patternList[this.#index] instanceof RegExp;
106
- }
107
- /**
108
- * The /-joined set of glob parts that make up this pattern
109
- */
110
- globString() {
111
- return (this.#globString =
112
- this.#globString ||
113
- (this.#index === 0
114
- ? this.isAbsolute()
115
- ? this.#globList[0] + this.#globList.slice(1).join('/')
116
- : this.#globList.join('/')
117
- : this.#globList.slice(this.#index).join('/')));
118
- }
119
- /**
120
- * true if there are more pattern parts after this one
121
- */
122
- hasMore() {
123
- return this.length > this.#index + 1;
124
- }
125
- /**
126
- * The rest of the pattern after this part, or null if this is the end
127
- */
128
- rest() {
129
- if (this.#rest !== undefined)
130
- return this.#rest;
131
- if (!this.hasMore())
132
- return (this.#rest = null);
133
- this.#rest = new Pattern(this.#patternList, this.#globList, this.#index + 1, this.#platform);
134
- this.#rest.#isAbsolute = this.#isAbsolute;
135
- this.#rest.#isUNC = this.#isUNC;
136
- this.#rest.#isDrive = this.#isDrive;
137
- return this.#rest;
138
- }
139
- /**
140
- * true if the pattern represents a //unc/path/ on windows
141
- */
142
- isUNC() {
143
- const pl = this.#patternList;
144
- return this.#isUNC !== undefined
145
- ? this.#isUNC
146
- : (this.#isUNC =
147
- this.#platform === 'win32' &&
148
- this.#index === 0 &&
149
- pl[0] === '' &&
150
- pl[1] === '' &&
151
- typeof pl[2] === 'string' &&
152
- !!pl[2] &&
153
- typeof pl[3] === 'string' &&
154
- !!pl[3]);
155
- }
156
- // pattern like C:/...
157
- // split = ['C:', ...]
158
- // XXX: would be nice to handle patterns like `c:*` to test the cwd
159
- // in c: for *, but I don't know of a way to even figure out what that
160
- // cwd is without actually chdir'ing into it?
161
- /**
162
- * True if the pattern starts with a drive letter on Windows
163
- */
164
- isDrive() {
165
- const pl = this.#patternList;
166
- return this.#isDrive !== undefined
167
- ? this.#isDrive
168
- : (this.#isDrive =
169
- this.#platform === 'win32' &&
170
- this.#index === 0 &&
171
- this.length > 1 &&
172
- typeof pl[0] === 'string' &&
173
- /^[a-z]:$/i.test(pl[0]));
174
- }
175
- // pattern = '/' or '/...' or '/x/...'
176
- // split = ['', ''] or ['', ...] or ['', 'x', ...]
177
- // Drive and UNC both considered absolute on windows
178
- /**
179
- * True if the pattern is rooted on an absolute path
180
- */
181
- isAbsolute() {
182
- const pl = this.#patternList;
183
- return this.#isAbsolute !== undefined
184
- ? this.#isAbsolute
185
- : (this.#isAbsolute =
186
- (pl[0] === '' && pl.length > 1) ||
187
- this.isDrive() ||
188
- this.isUNC());
189
- }
190
- /**
191
- * consume the root of the pattern, and return it
192
- */
193
- root() {
194
- const p = this.#patternList[0];
195
- return typeof p === 'string' && this.isAbsolute() && this.#index === 0
196
- ? p
197
- : '';
198
- }
199
- /**
200
- * Check to see if the current globstar pattern is allowed to follow
201
- * a symbolic link.
202
- */
203
- checkFollowGlobstar() {
204
- return !(this.#index === 0 ||
205
- !this.isGlobstar() ||
206
- !this.#followGlobstar);
207
- }
208
- /**
209
- * Mark that the current globstar pattern is following a symbolic link
210
- */
211
- markFollowGlobstar() {
212
- if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)
213
- return false;
214
- this.#followGlobstar = false;
215
- return true;
216
- }
217
- }
218
- exports.Pattern = Pattern;
219
- //# sourceMappingURL=pattern.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["// this is just a very light wrapper around 2 arrays with an offset index\n\nimport { GLOBSTAR } from 'minimatch'\nexport type MMPattern = string | RegExp | typeof GLOBSTAR\n\n// an array of length >= 1\nexport type PatternList = [p: MMPattern, ...rest: MMPattern[]]\nexport type UNCPatternList = [\n p0: '',\n p1: '',\n p2: string,\n p3: string,\n ...rest: MMPattern[]\n]\nexport type DrivePatternList = [p0: string, ...rest: MMPattern[]]\nexport type AbsolutePatternList = [p0: '', ...rest: MMPattern[]]\nexport type GlobList = [p: string, ...rest: string[]]\n\nconst isPatternList = (pl: MMPattern[]): pl is PatternList =>\n pl.length >= 1\nconst isGlobList = (gl: string[]): gl is GlobList => gl.length >= 1\n\n/**\n * An immutable-ish view on an array of glob parts and their parsed\n * results\n */\nexport class Pattern {\n readonly #patternList: PatternList\n readonly #globList: GlobList\n readonly #index: number\n readonly length: number\n readonly #platform: NodeJS.Platform\n #rest?: Pattern | null\n #globString?: string\n #isDrive?: boolean\n #isUNC?: boolean\n #isAbsolute?: boolean\n #followGlobstar: boolean = true\n\n constructor(\n patternList: MMPattern[],\n globList: string[],\n index: number,\n platform: NodeJS.Platform\n ) {\n if (!isPatternList(patternList)) {\n throw new TypeError('empty pattern list')\n }\n if (!isGlobList(globList)) {\n throw new TypeError('empty glob list')\n }\n if (globList.length !== patternList.length) {\n throw new TypeError('mismatched pattern list and glob list lengths')\n }\n this.length = patternList.length\n if (index < 0 || index >= this.length) {\n throw new TypeError('index out of range')\n }\n this.#patternList = patternList\n this.#globList = globList\n this.#index = index\n this.#platform = platform\n\n // normalize root entries of absolute patterns on initial creation.\n if (this.#index === 0) {\n // c: => ['c:/']\n // C:/ => ['C:/']\n // C:/x => ['C:/', 'x']\n // //host/share => ['//host/share/']\n // //host/share/ => ['//host/share/']\n // //host/share/x => ['//host/share/', 'x']\n // /etc => ['/', 'etc']\n // / => ['/']\n if (this.isUNC()) {\n // '' / '' / 'host' / 'share'\n const [p0, p1, p2, p3, ...prest] = this.#patternList\n const [g0, g1, g2, g3, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = [p0, p1, p2, p3, ''].join('/')\n const g = [g0, g1, g2, g3, ''].join('/')\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n } else if (this.isDrive() || this.isAbsolute()) {\n const [p1, ...prest] = this.#patternList\n const [g1, ...grest] = this.#globList\n if (prest[0] === '') {\n // ends in /\n prest.shift()\n grest.shift()\n }\n const p = (p1 as string) + '/'\n const g = g1 + '/'\n this.#patternList = [p, ...prest]\n this.#globList = [g, ...grest]\n this.length = this.#patternList.length\n }\n }\n }\n\n /**\n * The first entry in the parsed list of patterns\n */\n pattern(): MMPattern {\n return this.#patternList[this.#index]\n }\n\n /**\n * true of if pattern() returns a string\n */\n isString(): boolean {\n return typeof this.#patternList[this.#index] === 'string'\n }\n /**\n * true of if pattern() returns GLOBSTAR\n */\n isGlobstar(): boolean {\n return this.#patternList[this.#index] === GLOBSTAR\n }\n /**\n * true if pattern() returns a regexp\n */\n isRegExp(): boolean {\n return this.#patternList[this.#index] instanceof RegExp\n }\n\n /**\n * The /-joined set of glob parts that make up this pattern\n */\n globString(): string {\n return (this.#globString =\n this.#globString ||\n (this.#index === 0\n ? this.isAbsolute()\n ? this.#globList[0] + this.#globList.slice(1).join('/')\n : this.#globList.join('/')\n : this.#globList.slice(this.#index).join('/')))\n }\n\n /**\n * true if there are more pattern parts after this one\n */\n hasMore(): boolean {\n return this.length > this.#index + 1\n }\n\n /**\n * The rest of the pattern after this part, or null if this is the end\n */\n rest(): Pattern | null {\n if (this.#rest !== undefined) return this.#rest\n if (!this.hasMore()) return (this.#rest = null)\n this.#rest = new Pattern(\n this.#patternList,\n this.#globList,\n this.#index + 1,\n this.#platform\n )\n this.#rest.#isAbsolute = this.#isAbsolute\n this.#rest.#isUNC = this.#isUNC\n this.#rest.#isDrive = this.#isDrive\n return this.#rest\n }\n\n /**\n * true if the pattern represents a //unc/path/ on windows\n */\n isUNC(): boolean {\n const pl = this.#patternList\n return this.#isUNC !== undefined\n ? this.#isUNC\n : (this.#isUNC =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n pl[0] === '' &&\n pl[1] === '' &&\n typeof pl[2] === 'string' &&\n !!pl[2] &&\n typeof pl[3] === 'string' &&\n !!pl[3])\n }\n\n // pattern like C:/...\n // split = ['C:', ...]\n // XXX: would be nice to handle patterns like `c:*` to test the cwd\n // in c: for *, but I don't know of a way to even figure out what that\n // cwd is without actually chdir'ing into it?\n /**\n * True if the pattern starts with a drive letter on Windows\n */\n isDrive(): boolean {\n const pl = this.#patternList\n return this.#isDrive !== undefined\n ? this.#isDrive\n : (this.#isDrive =\n this.#platform === 'win32' &&\n this.#index === 0 &&\n this.length > 1 &&\n typeof pl[0] === 'string' &&\n /^[a-z]:$/i.test(pl[0]))\n }\n\n // pattern = '/' or '/...' or '/x/...'\n // split = ['', ''] or ['', ...] or ['', 'x', ...]\n // Drive and UNC both considered absolute on windows\n /**\n * True if the pattern is rooted on an absolute path\n */\n isAbsolute(): boolean {\n const pl = this.#patternList\n return this.#isAbsolute !== undefined\n ? this.#isAbsolute\n : (this.#isAbsolute =\n (pl[0] === '' && pl.length > 1) ||\n this.isDrive() ||\n this.isUNC())\n }\n\n /**\n * consume the root of the pattern, and return it\n */\n root(): string {\n const p = this.#patternList[0]\n return typeof p === 'string' && this.isAbsolute() && this.#index === 0\n ? p\n : ''\n }\n\n /**\n * Check to see if the current globstar pattern is allowed to follow\n * a symbolic link.\n */\n checkFollowGlobstar(): boolean {\n return !(\n this.#index === 0 ||\n !this.isGlobstar() ||\n !this.#followGlobstar\n )\n }\n\n /**\n * Mark that the current globstar pattern is following a symbolic link\n */\n markFollowGlobstar(): boolean {\n if (this.#index === 0 || !this.isGlobstar() || !this.#followGlobstar)\n return false\n this.#followGlobstar = false\n return true\n }\n}\n"]}
@@ -1,59 +0,0 @@
1
- import { MMRegExp } from 'minimatch';
2
- import { Path } from 'path-scurry';
3
- import { Pattern } from './pattern.js';
4
- import { GlobWalkerOpts } from './walker.js';
5
- /**
6
- * A cache of which patterns have been processed for a given Path
7
- */
8
- export declare class HasWalkedCache {
9
- store: Map<string, Set<string>>;
10
- constructor(store?: Map<string, Set<string>>);
11
- copy(): HasWalkedCache;
12
- hasWalked(target: Path, pattern: Pattern): boolean | undefined;
13
- storeWalked(target: Path, pattern: Pattern): void;
14
- }
15
- /**
16
- * A record of which paths have been matched in a given walk step,
17
- * and whether they only are considered a match if they are a directory,
18
- * and whether their absolute or relative path should be returned.
19
- */
20
- export declare class MatchRecord {
21
- store: Map<Path, number>;
22
- add(target: Path, absolute: boolean, ifDir: boolean): void;
23
- entries(): [Path, boolean, boolean][];
24
- }
25
- /**
26
- * A collection of patterns that must be processed in a subsequent step
27
- * for a given path.
28
- */
29
- export declare class SubWalks {
30
- store: Map<Path, Pattern[]>;
31
- add(target: Path, pattern: Pattern): void;
32
- get(target: Path): Pattern[];
33
- entries(): [Path, Pattern[]][];
34
- keys(): Path[];
35
- }
36
- /**
37
- * The class that processes patterns for a given path.
38
- *
39
- * Handles child entry filtering, and determining whether a path's
40
- * directory contents must be read.
41
- */
42
- export declare class Processor {
43
- hasWalkedCache: HasWalkedCache;
44
- matches: MatchRecord;
45
- subwalks: SubWalks;
46
- patterns?: Pattern[];
47
- follow: boolean;
48
- dot: boolean;
49
- opts: GlobWalkerOpts;
50
- constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache);
51
- processPatterns(target: Path, patterns: Pattern[]): this;
52
- subwalkTargets(): Path[];
53
- child(): Processor;
54
- filterEntries(parent: Path, entries: Path[]): Processor;
55
- testGlobstar(e: Path, pattern: Pattern, rest: Pattern | null, absolute: boolean): void;
56
- testRegExp(e: Path, p: MMRegExp, rest: Pattern | null, absolute: boolean): void;
57
- testString(e: Path, p: string, rest: Pattern | null, absolute: boolean): void;
58
- }
59
- //# sourceMappingURL=processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAa,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C;;GAEG;AACH,qBAAa,cAAc;IACzB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;gBACnB,KAAK,GAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAGvD,IAAI;IAGJ,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAGxC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;CAM3C;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY;IACpC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAMnD,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAOtC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IACnB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAY;IACvC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;IAWlC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE;IAS5B,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;IAG9B,IAAI,IAAI,IAAI,EAAE;CAGf;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,cAAoB;IAC3B,QAAQ,WAAiB;IACzB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,cAAc,CAAA;gBAER,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,cAAc;IASjE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;IAwGjD,cAAc,IAAI,IAAI,EAAE;IAIxB,KAAK;IAQL,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS;IAqBvD,YAAY,CACV,CAAC,EAAE,IAAI,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IA8CnB,UAAU,CACR,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,QAAQ,EACX,IAAI,EAAE,OAAO,GAAG,IAAI,EACpB,QAAQ,EAAE,OAAO;IAUnB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO;CASvE"}