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,309 +0,0 @@
1
- "use strict";
2
- // synchronous utility for filtering entries and calculating subwalks
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Processor = exports.SubWalks = exports.MatchRecord = exports.HasWalkedCache = void 0;
5
- const minimatch_1 = require("minimatch");
6
- /**
7
- * A cache of which patterns have been processed for a given Path
8
- */
9
- class HasWalkedCache {
10
- store;
11
- constructor(store = new Map()) {
12
- this.store = store;
13
- }
14
- copy() {
15
- return new HasWalkedCache(new Map(this.store));
16
- }
17
- hasWalked(target, pattern) {
18
- return this.store.get(target.fullpath())?.has(pattern.globString());
19
- }
20
- storeWalked(target, pattern) {
21
- const fullpath = target.fullpath();
22
- const cached = this.store.get(fullpath);
23
- if (cached)
24
- cached.add(pattern.globString());
25
- else
26
- this.store.set(fullpath, new Set([pattern.globString()]));
27
- }
28
- }
29
- exports.HasWalkedCache = HasWalkedCache;
30
- /**
31
- * A record of which paths have been matched in a given walk step,
32
- * and whether they only are considered a match if they are a directory,
33
- * and whether their absolute or relative path should be returned.
34
- */
35
- class MatchRecord {
36
- store = new Map();
37
- add(target, absolute, ifDir) {
38
- const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
39
- const current = this.store.get(target);
40
- this.store.set(target, current === undefined ? n : n & current);
41
- }
42
- // match, absolute, ifdir
43
- entries() {
44
- return [...this.store.entries()].map(([path, n]) => [
45
- path,
46
- !!(n & 2),
47
- !!(n & 1),
48
- ]);
49
- }
50
- }
51
- exports.MatchRecord = MatchRecord;
52
- /**
53
- * A collection of patterns that must be processed in a subsequent step
54
- * for a given path.
55
- */
56
- class SubWalks {
57
- store = new Map();
58
- add(target, pattern) {
59
- if (!target.canReaddir()) {
60
- return;
61
- }
62
- const subs = this.store.get(target);
63
- if (subs) {
64
- if (!subs.find(p => p.globString() === pattern.globString())) {
65
- subs.push(pattern);
66
- }
67
- }
68
- else
69
- this.store.set(target, [pattern]);
70
- }
71
- get(target) {
72
- const subs = this.store.get(target);
73
- /* c8 ignore start */
74
- if (!subs) {
75
- throw new Error('attempting to walk unknown path');
76
- }
77
- /* c8 ignore stop */
78
- return subs;
79
- }
80
- entries() {
81
- return this.keys().map(k => [k, this.store.get(k)]);
82
- }
83
- keys() {
84
- return [...this.store.keys()].filter(t => t.canReaddir());
85
- }
86
- }
87
- exports.SubWalks = SubWalks;
88
- /**
89
- * The class that processes patterns for a given path.
90
- *
91
- * Handles child entry filtering, and determining whether a path's
92
- * directory contents must be read.
93
- */
94
- class Processor {
95
- hasWalkedCache;
96
- matches = new MatchRecord();
97
- subwalks = new SubWalks();
98
- patterns;
99
- follow;
100
- dot;
101
- opts;
102
- constructor(opts, hasWalkedCache) {
103
- this.opts = opts;
104
- this.follow = !!opts.follow;
105
- this.dot = !!opts.dot;
106
- this.hasWalkedCache = hasWalkedCache
107
- ? hasWalkedCache.copy()
108
- : new HasWalkedCache();
109
- }
110
- processPatterns(target, patterns) {
111
- this.patterns = patterns;
112
- const processingSet = patterns.map(p => [target, p]);
113
- // map of paths to the magic-starting subwalks they need to walk
114
- // first item in patterns is the filter
115
- for (let [t, pattern] of processingSet) {
116
- this.hasWalkedCache.storeWalked(t, pattern);
117
- const root = pattern.root();
118
- const absolute = pattern.isAbsolute() && this.opts.absolute !== false;
119
- // start absolute patterns at root
120
- if (root) {
121
- t = t.resolve(root === '/' && this.opts.root !== undefined
122
- ? this.opts.root
123
- : root);
124
- const rest = pattern.rest();
125
- if (!rest) {
126
- this.matches.add(t, true, false);
127
- continue;
128
- }
129
- else {
130
- pattern = rest;
131
- }
132
- }
133
- if (t.isENOENT())
134
- continue;
135
- let p;
136
- let rest;
137
- let changed = false;
138
- while (typeof (p = pattern.pattern()) === 'string' &&
139
- (rest = pattern.rest())) {
140
- const c = t.resolve(p);
141
- // we can be reasonably sure that .. is a readable dir
142
- if (c.isUnknown() && p !== '..')
143
- break;
144
- t = c;
145
- pattern = rest;
146
- changed = true;
147
- }
148
- p = pattern.pattern();
149
- rest = pattern.rest();
150
- if (changed) {
151
- if (this.hasWalkedCache.hasWalked(t, pattern))
152
- continue;
153
- this.hasWalkedCache.storeWalked(t, pattern);
154
- }
155
- // now we have either a final string for a known entry,
156
- // more strings for an unknown entry,
157
- // or a pattern starting with magic, mounted on t.
158
- if (typeof p === 'string') {
159
- // must be final entry
160
- if (!rest) {
161
- const ifDir = p === '..' || p === '' || p === '.';
162
- this.matches.add(t.resolve(p), absolute, ifDir);
163
- }
164
- else {
165
- this.subwalks.add(t, pattern);
166
- }
167
- continue;
168
- }
169
- else if (p === minimatch_1.GLOBSTAR) {
170
- // if no rest, match and subwalk pattern
171
- // if rest, process rest and subwalk pattern
172
- // if it's a symlink, but we didn't get here by way of a
173
- // globstar match (meaning it's the first time THIS globstar
174
- // has traversed a symlink), then we follow it. Otherwise, stop.
175
- if (!t.isSymbolicLink() ||
176
- this.follow ||
177
- pattern.checkFollowGlobstar()) {
178
- this.subwalks.add(t, pattern);
179
- }
180
- const rp = rest?.pattern();
181
- const rrest = rest?.rest();
182
- if (!rest || ((rp === '' || rp === '.') && !rrest)) {
183
- // only HAS to be a dir if it ends in **/ or **/.
184
- // but ending in ** will match files as well.
185
- this.matches.add(t, absolute, rp === '' || rp === '.');
186
- }
187
- else {
188
- if (rp === '..') {
189
- // this would mean you're matching **/.. at the fs root,
190
- // and no thanks, I'm not gonna test that specific case.
191
- /* c8 ignore start */
192
- const tp = t.parent || t;
193
- /* c8 ignore stop */
194
- if (!rrest)
195
- this.matches.add(tp, absolute, true);
196
- else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
197
- this.subwalks.add(tp, rrest);
198
- }
199
- }
200
- }
201
- }
202
- else if (p instanceof RegExp) {
203
- this.subwalks.add(t, pattern);
204
- }
205
- }
206
- return this;
207
- }
208
- subwalkTargets() {
209
- return this.subwalks.keys();
210
- }
211
- child() {
212
- return new Processor(this.opts, this.hasWalkedCache);
213
- }
214
- // return a new Processor containing the subwalks for each
215
- // child entry, and a set of matches, and
216
- // a hasWalkedCache that's a copy of this one
217
- // then we're going to call
218
- filterEntries(parent, entries) {
219
- const patterns = this.subwalks.get(parent);
220
- // put matches and entry walks into the results processor
221
- const results = this.child();
222
- for (const e of entries) {
223
- for (const pattern of patterns) {
224
- const absolute = pattern.isAbsolute();
225
- const p = pattern.pattern();
226
- const rest = pattern.rest();
227
- if (p === minimatch_1.GLOBSTAR) {
228
- results.testGlobstar(e, pattern, rest, absolute);
229
- }
230
- else if (p instanceof RegExp) {
231
- results.testRegExp(e, p, rest, absolute);
232
- }
233
- else {
234
- results.testString(e, p, rest, absolute);
235
- }
236
- }
237
- }
238
- return results;
239
- }
240
- testGlobstar(e, pattern, rest, absolute) {
241
- if (this.dot || !e.name.startsWith('.')) {
242
- if (!pattern.hasMore()) {
243
- this.matches.add(e, absolute, false);
244
- }
245
- if (e.canReaddir()) {
246
- // if we're in follow mode or it's not a symlink, just keep
247
- // testing the same pattern. If there's more after the globstar,
248
- // then this symlink consumes the globstar. If not, then we can
249
- // follow at most ONE symlink along the way, so we mark it, which
250
- // also checks to ensure that it wasn't already marked.
251
- if (this.follow || !e.isSymbolicLink()) {
252
- this.subwalks.add(e, pattern);
253
- }
254
- else if (e.isSymbolicLink()) {
255
- if (rest && pattern.checkFollowGlobstar()) {
256
- this.subwalks.add(e, rest);
257
- }
258
- else if (pattern.markFollowGlobstar()) {
259
- this.subwalks.add(e, pattern);
260
- }
261
- }
262
- }
263
- }
264
- // if the NEXT thing matches this entry, then also add
265
- // the rest.
266
- if (rest) {
267
- const rp = rest.pattern();
268
- if (typeof rp === 'string' &&
269
- // dots and empty were handled already
270
- rp !== '..' &&
271
- rp !== '' &&
272
- rp !== '.') {
273
- this.testString(e, rp, rest.rest(), absolute);
274
- }
275
- else if (rp === '..') {
276
- /* c8 ignore start */
277
- const ep = e.parent || e;
278
- /* c8 ignore stop */
279
- this.subwalks.add(ep, rest);
280
- }
281
- else if (rp instanceof RegExp) {
282
- this.testRegExp(e, rp, rest.rest(), absolute);
283
- }
284
- }
285
- }
286
- testRegExp(e, p, rest, absolute) {
287
- if (!p.test(e.name))
288
- return;
289
- if (!rest) {
290
- this.matches.add(e, absolute, false);
291
- }
292
- else {
293
- this.subwalks.add(e, rest);
294
- }
295
- }
296
- testString(e, p, rest, absolute) {
297
- // should never happen?
298
- if (!e.isNamed(p))
299
- return;
300
- if (!rest) {
301
- this.matches.add(e, absolute, false);
302
- }
303
- else {
304
- this.subwalks.add(e, rest);
305
- }
306
- }
307
- }
308
- exports.Processor = Processor;
309
- //# sourceMappingURL=processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/processor.ts"],"names":[],"mappings":"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","sourcesContent":["// synchronous utility for filtering entries and calculating subwalks\n\nimport { GLOBSTAR, MMRegExp } from 'minimatch'\nimport { Path } from 'path-scurry'\nimport { MMPattern, Pattern } from './pattern.js'\nimport { GlobWalkerOpts } from './walker.js'\n\n/**\n * A cache of which patterns have been processed for a given Path\n */\nexport class HasWalkedCache {\n store: Map<string, Set<string>>\n constructor(store: Map<string, Set<string>> = new Map()) {\n this.store = store\n }\n copy() {\n return new HasWalkedCache(new Map(this.store))\n }\n hasWalked(target: Path, pattern: Pattern) {\n return this.store.get(target.fullpath())?.has(pattern.globString())\n }\n storeWalked(target: Path, pattern: Pattern) {\n const fullpath = target.fullpath()\n const cached = this.store.get(fullpath)\n if (cached) cached.add(pattern.globString())\n else this.store.set(fullpath, new Set([pattern.globString()]))\n }\n}\n\n/**\n * A record of which paths have been matched in a given walk step,\n * and whether they only are considered a match if they are a directory,\n * and whether their absolute or relative path should be returned.\n */\nexport class MatchRecord {\n store: Map<Path, number> = new Map()\n add(target: Path, absolute: boolean, ifDir: boolean) {\n const n = (absolute ? 2 : 0) | (ifDir ? 1 : 0)\n const current = this.store.get(target)\n this.store.set(target, current === undefined ? n : n & current)\n }\n // match, absolute, ifdir\n entries(): [Path, boolean, boolean][] {\n return [...this.store.entries()].map(([path, n]) => [\n path,\n !!(n & 2),\n !!(n & 1),\n ])\n }\n}\n\n/**\n * A collection of patterns that must be processed in a subsequent step\n * for a given path.\n */\nexport class SubWalks {\n store: Map<Path, Pattern[]> = new Map()\n add(target: Path, pattern: Pattern) {\n if (!target.canReaddir()) {\n return\n }\n const subs = this.store.get(target)\n if (subs) {\n if (!subs.find(p => p.globString() === pattern.globString())) {\n subs.push(pattern)\n }\n } else this.store.set(target, [pattern])\n }\n get(target: Path): Pattern[] {\n const subs = this.store.get(target)\n /* c8 ignore start */\n if (!subs) {\n throw new Error('attempting to walk unknown path')\n }\n /* c8 ignore stop */\n return subs\n }\n entries(): [Path, Pattern[]][] {\n return this.keys().map(k => [k, this.store.get(k) as Pattern[]])\n }\n keys(): Path[] {\n return [...this.store.keys()].filter(t => t.canReaddir())\n }\n}\n\n/**\n * The class that processes patterns for a given path.\n *\n * Handles child entry filtering, and determining whether a path's\n * directory contents must be read.\n */\nexport class Processor {\n hasWalkedCache: HasWalkedCache\n matches = new MatchRecord()\n subwalks = new SubWalks()\n patterns?: Pattern[]\n follow: boolean\n dot: boolean\n opts: GlobWalkerOpts\n\n constructor(opts: GlobWalkerOpts, hasWalkedCache?: HasWalkedCache) {\n this.opts = opts\n this.follow = !!opts.follow\n this.dot = !!opts.dot\n this.hasWalkedCache = hasWalkedCache\n ? hasWalkedCache.copy()\n : new HasWalkedCache()\n }\n\n processPatterns(target: Path, patterns: Pattern[]) {\n this.patterns = patterns\n const processingSet: [Path, Pattern][] = patterns.map(p => [target, p])\n\n // map of paths to the magic-starting subwalks they need to walk\n // first item in patterns is the filter\n\n for (let [t, pattern] of processingSet) {\n this.hasWalkedCache.storeWalked(t, pattern)\n\n const root = pattern.root()\n const absolute = pattern.isAbsolute() && this.opts.absolute !== false\n\n // start absolute patterns at root\n if (root) {\n t = t.resolve(\n root === '/' && this.opts.root !== undefined\n ? this.opts.root\n : root\n )\n const rest = pattern.rest()\n if (!rest) {\n this.matches.add(t, true, false)\n continue\n } else {\n pattern = rest\n }\n }\n\n if (t.isENOENT()) continue\n\n let p: MMPattern\n let rest: Pattern | null\n let changed = false\n while (\n typeof (p = pattern.pattern()) === 'string' &&\n (rest = pattern.rest())\n ) {\n const c = t.resolve(p)\n // we can be reasonably sure that .. is a readable dir\n if (c.isUnknown() && p !== '..') break\n t = c\n pattern = rest\n changed = true\n }\n p = pattern.pattern()\n rest = pattern.rest()\n if (changed) {\n if (this.hasWalkedCache.hasWalked(t, pattern)) continue\n this.hasWalkedCache.storeWalked(t, pattern)\n }\n\n // now we have either a final string for a known entry,\n // more strings for an unknown entry,\n // or a pattern starting with magic, mounted on t.\n if (typeof p === 'string') {\n // must be final entry\n if (!rest) {\n const ifDir = p === '..' || p === '' || p === '.'\n this.matches.add(t.resolve(p), absolute, ifDir)\n } else {\n this.subwalks.add(t, pattern)\n }\n continue\n } else if (p === GLOBSTAR) {\n // if no rest, match and subwalk pattern\n // if rest, process rest and subwalk pattern\n // if it's a symlink, but we didn't get here by way of a\n // globstar match (meaning it's the first time THIS globstar\n // has traversed a symlink), then we follow it. Otherwise, stop.\n if (\n !t.isSymbolicLink() ||\n this.follow ||\n pattern.checkFollowGlobstar()\n ) {\n this.subwalks.add(t, pattern)\n }\n const rp = rest?.pattern()\n const rrest = rest?.rest()\n if (!rest || ((rp === '' || rp === '.') && !rrest)) {\n // only HAS to be a dir if it ends in **/ or **/.\n // but ending in ** will match files as well.\n this.matches.add(t, absolute, rp === '' || rp === '.')\n } else {\n if (rp === '..') {\n // this would mean you're matching **/.. at the fs root,\n // and no thanks, I'm not gonna test that specific case.\n /* c8 ignore start */\n const tp = t.parent || t\n /* c8 ignore stop */\n if (!rrest) this.matches.add(tp, absolute, true)\n else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {\n this.subwalks.add(tp, rrest)\n }\n }\n }\n } else if (p instanceof RegExp) {\n this.subwalks.add(t, pattern)\n }\n }\n\n return this\n }\n\n subwalkTargets(): Path[] {\n return this.subwalks.keys()\n }\n\n child() {\n return new Processor(this.opts, this.hasWalkedCache)\n }\n\n // return a new Processor containing the subwalks for each\n // child entry, and a set of matches, and\n // a hasWalkedCache that's a copy of this one\n // then we're going to call\n filterEntries(parent: Path, entries: Path[]): Processor {\n const patterns = this.subwalks.get(parent)\n // put matches and entry walks into the results processor\n const results = this.child()\n for (const e of entries) {\n for (const pattern of patterns) {\n const absolute = pattern.isAbsolute()\n const p = pattern.pattern()\n const rest = pattern.rest()\n if (p === GLOBSTAR) {\n results.testGlobstar(e, pattern, rest, absolute)\n } else if (p instanceof RegExp) {\n results.testRegExp(e, p, rest, absolute)\n } else {\n results.testString(e, p, rest, absolute)\n }\n }\n }\n return results\n }\n\n testGlobstar(\n e: Path,\n pattern: Pattern,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (this.dot || !e.name.startsWith('.')) {\n if (!pattern.hasMore()) {\n this.matches.add(e, absolute, false)\n }\n if (e.canReaddir()) {\n // if we're in follow mode or it's not a symlink, just keep\n // testing the same pattern. If there's more after the globstar,\n // then this symlink consumes the globstar. If not, then we can\n // follow at most ONE symlink along the way, so we mark it, which\n // also checks to ensure that it wasn't already marked.\n if (this.follow || !e.isSymbolicLink()) {\n this.subwalks.add(e, pattern)\n } else if (e.isSymbolicLink()) {\n if (rest && pattern.checkFollowGlobstar()) {\n this.subwalks.add(e, rest)\n } else if (pattern.markFollowGlobstar()) {\n this.subwalks.add(e, pattern)\n }\n }\n }\n }\n // if the NEXT thing matches this entry, then also add\n // the rest.\n if (rest) {\n const rp = rest.pattern()\n if (\n typeof rp === 'string' &&\n // dots and empty were handled already\n rp !== '..' &&\n rp !== '' &&\n rp !== '.'\n ) {\n this.testString(e, rp, rest.rest(), absolute)\n } else if (rp === '..') {\n /* c8 ignore start */\n const ep = e.parent || e\n /* c8 ignore stop */\n this.subwalks.add(ep, rest)\n } else if (rp instanceof RegExp) {\n this.testRegExp(e, rp, rest.rest(), absolute)\n }\n }\n }\n\n testRegExp(\n e: Path,\n p: MMRegExp,\n rest: Pattern | null,\n absolute: boolean\n ) {\n if (!p.test(e.name)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n\n testString(e: Path, p: string, rest: Pattern | null, absolute: boolean) {\n // should never happen?\n if (!e.isNamed(p)) return\n if (!rest) {\n this.matches.add(e, absolute, false)\n } else {\n this.subwalks.add(e, rest)\n }\n }\n}\n"]}
@@ -1,96 +0,0 @@
1
- /// <reference types="node" />
2
- /**
3
- * Single-use utility classes to provide functionality to the {@link Glob}
4
- * methods.
5
- *
6
- * @module
7
- */
8
- import { Minipass } from 'minipass';
9
- import { Path } from 'path-scurry';
10
- import { IgnoreLike } from './ignore.js';
11
- import { Pattern } from './pattern.js';
12
- import { Processor } from './processor.js';
13
- export interface GlobWalkerOpts {
14
- absolute?: boolean;
15
- allowWindowsEscape?: boolean;
16
- cwd?: string | URL;
17
- dot?: boolean;
18
- dotRelative?: boolean;
19
- follow?: boolean;
20
- ignore?: string | string[] | IgnoreLike;
21
- mark?: boolean;
22
- matchBase?: boolean;
23
- maxDepth?: number;
24
- nobrace?: boolean;
25
- nocase?: boolean;
26
- nodir?: boolean;
27
- noext?: boolean;
28
- noglobstar?: boolean;
29
- platform?: NodeJS.Platform;
30
- posix?: boolean;
31
- realpath?: boolean;
32
- root?: string;
33
- stat?: boolean;
34
- signal?: AbortSignal;
35
- windowsPathsNoEscape?: boolean;
36
- withFileTypes?: boolean;
37
- }
38
- export type GWOFileTypesTrue = GlobWalkerOpts & {
39
- withFileTypes: true;
40
- };
41
- export type GWOFileTypesFalse = GlobWalkerOpts & {
42
- withFileTypes: false;
43
- };
44
- export type GWOFileTypesUnset = GlobWalkerOpts & {
45
- withFileTypes?: undefined;
46
- };
47
- export type Result<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Path : O extends GWOFileTypesFalse ? string : O extends GWOFileTypesUnset ? string : Path | string;
48
- export type Matches<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>;
49
- export type MatchStream<O extends GlobWalkerOpts> = O extends GWOFileTypesTrue ? Minipass<Path, Path> : O extends GWOFileTypesFalse ? Minipass<string, string> : O extends GWOFileTypesUnset ? Minipass<string, string> : Minipass<Path | string, Path | string>;
50
- /**
51
- * basic walking utilities that all the glob walker types use
52
- */
53
- export declare abstract class GlobUtil<O extends GlobWalkerOpts = GlobWalkerOpts> {
54
- #private;
55
- path: Path;
56
- patterns: Pattern[];
57
- opts: O;
58
- seen: Set<Path>;
59
- paused: boolean;
60
- aborted: boolean;
61
- signal?: AbortSignal;
62
- maxDepth: number;
63
- constructor(patterns: Pattern[], path: Path, opts: O);
64
- pause(): void;
65
- resume(): void;
66
- onResume(fn: () => any): void;
67
- matchCheck(e: Path, ifDir: boolean): Promise<Path | undefined>;
68
- matchCheckTest(e: Path | undefined, ifDir: boolean): Path | undefined;
69
- matchCheckSync(e: Path, ifDir: boolean): Path | undefined;
70
- abstract matchEmit(p: Result<O>): void;
71
- abstract matchEmit(p: string | Path): void;
72
- matchFinish(e: Path, absolute: boolean): void;
73
- match(e: Path, absolute: boolean, ifDir: boolean): Promise<void>;
74
- matchSync(e: Path, absolute: boolean, ifDir: boolean): void;
75
- walkCB(target: Path, patterns: Pattern[], cb: () => any): void;
76
- walkCB2(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
77
- walkCB3(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
78
- walkCBSync(target: Path, patterns: Pattern[], cb: () => any): void;
79
- walkCB2Sync(target: Path, patterns: Pattern[], processor: Processor, cb: () => any): any;
80
- walkCB3Sync(target: Path, entries: Path[], processor: Processor, cb: () => any): void;
81
- }
82
- export declare class GlobWalker<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> {
83
- matches: O extends GWOFileTypesTrue ? Set<Path> : O extends GWOFileTypesFalse ? Set<string> : O extends GWOFileTypesUnset ? Set<string> : Set<Path | string>;
84
- constructor(patterns: Pattern[], path: Path, opts: O);
85
- matchEmit(e: Result<O>): void;
86
- walk(): Promise<Matches<O>>;
87
- walkSync(): Matches<O>;
88
- }
89
- export declare class GlobStream<O extends GlobWalkerOpts = GlobWalkerOpts> extends GlobUtil<O> {
90
- results: O extends GWOFileTypesTrue ? Minipass<Path, Path> : O extends GWOFileTypesFalse ? Minipass<string, string> : O extends GWOFileTypesUnset ? Minipass<string, string> : Minipass<Path | string, Path | string>;
91
- constructor(patterns: Pattern[], path: Path, opts: O);
92
- matchEmit(e: Result<O>): void;
93
- stream(): MatchStream<O>;
94
- streamSync(): MatchStream<O>;
95
- }
96
- //# sourceMappingURL=walker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../../src/walker.ts"],"names":[],"mappings":"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"}