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.
- checksums.yaml +4 -4
- data/Rakefile +7 -16
- data/decidim-core/lib/decidim/webpacker/webpack/.modernizrrc +9 -0
- data/decidim.gemspec +65 -0
- data/docs/modules/develop/pages/releases.adoc +4 -0
- data/docs/modules/install/assets/attachments/.gitkeep +0 -0
- data/docs/modules/install/assets/images/.gitkeep +0 -0
- data/docs/modules/install/pages/manual.adoc +5 -1
- data/docs/modules/install/pages/update.adoc +5 -0
- data/docs/modules/install/partials/version_matrix.adoc +13 -0
- data/docs/modules/services/pages/maps.adoc +8 -0
- data/lib/decidim/gem_manager.rb +38 -0
- data/lib/decidim/version.rb +1 -1
- data/package-lock.json +32 -26
- data/packages/browserslist-config/package.json +1 -1
- data/packages/core/package.json +4 -4
- data/packages/dev/package.json +1 -1
- data/packages/elections/package.json +1 -1
- data/packages/eslint-config/package.json +1 -1
- data/packages/stylelint-config/package.json +1 -1
- data/packages/webpacker/package.json +1 -1
- metadata +52 -239
- data/lib/decidim/release_manager.rb.new +0 -43
- data/packages/core/node_modules/diff/CONTRIBUTING.md +0 -39
- data/packages/core/node_modules/diff/LICENSE +0 -31
- data/packages/core/node_modules/diff/README.md +0 -211
- data/packages/core/node_modules/diff/dist/diff.js +0 -1627
- data/packages/core/node_modules/diff/dist/diff.min.js +0 -38
- data/packages/core/node_modules/diff/lib/convert/dmp.js +0 -32
- data/packages/core/node_modules/diff/lib/convert/xml.js +0 -42
- data/packages/core/node_modules/diff/lib/diff/array.js +0 -45
- data/packages/core/node_modules/diff/lib/diff/base.js +0 -307
- data/packages/core/node_modules/diff/lib/diff/character.js +0 -37
- data/packages/core/node_modules/diff/lib/diff/css.js +0 -41
- data/packages/core/node_modules/diff/lib/diff/json.js +0 -163
- data/packages/core/node_modules/diff/lib/diff/line.js +0 -89
- data/packages/core/node_modules/diff/lib/diff/sentence.js +0 -41
- data/packages/core/node_modules/diff/lib/diff/word.js +0 -108
- data/packages/core/node_modules/diff/lib/index.es6.js +0 -1561
- data/packages/core/node_modules/diff/lib/index.js +0 -216
- data/packages/core/node_modules/diff/lib/index.mjs +0 -1561
- data/packages/core/node_modules/diff/lib/patch/apply.js +0 -238
- data/packages/core/node_modules/diff/lib/patch/create.js +0 -272
- data/packages/core/node_modules/diff/lib/patch/merge.js +0 -613
- data/packages/core/node_modules/diff/lib/patch/parse.js +0 -167
- data/packages/core/node_modules/diff/lib/util/array.js +0 -32
- data/packages/core/node_modules/diff/lib/util/distance-iterator.js +0 -57
- data/packages/core/node_modules/diff/lib/util/params.js +0 -24
- data/packages/core/node_modules/diff/package.json +0 -87
- data/packages/core/node_modules/diff/release-notes.md +0 -309
- data/packages/core/node_modules/diff/runtime.js +0 -3
- data/packages/core/package-lock.json +0 -4889
- data/packages/webpacker/node_modules/argparse/CHANGELOG.md +0 -216
- data/packages/webpacker/node_modules/argparse/LICENSE +0 -254
- data/packages/webpacker/node_modules/argparse/README.md +0 -84
- data/packages/webpacker/node_modules/argparse/argparse.js +0 -3707
- data/packages/webpacker/node_modules/argparse/lib/sub.js +0 -67
- data/packages/webpacker/node_modules/argparse/lib/textwrap.js +0 -440
- data/packages/webpacker/node_modules/argparse/package.json +0 -31
- data/packages/webpacker/node_modules/brace-expansion/LICENSE +0 -21
- data/packages/webpacker/node_modules/brace-expansion/README.md +0 -135
- data/packages/webpacker/node_modules/brace-expansion/index.js +0 -203
- data/packages/webpacker/node_modules/brace-expansion/package.json +0 -46
- data/packages/webpacker/node_modules/glob/LICENSE +0 -15
- data/packages/webpacker/node_modules/glob/README.md +0 -1214
- data/packages/webpacker/node_modules/glob/dist/cjs/package.json +0 -4
- data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts +0 -3
- data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js +0 -270
- data/packages/webpacker/node_modules/glob/dist/cjs/src/bin.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts +0 -344
- data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js +0 -238
- data/packages/webpacker/node_modules/glob/dist/cjs/src/glob.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts +0 -14
- data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js +0 -27
- data/packages/webpacker/node_modules/glob/dist/cjs/src/has-magic.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts +0 -20
- data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js +0 -103
- data/packages/webpacker/node_modules/glob/dist/cjs/src/ignore.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts +0 -95
- data/packages/webpacker/node_modules/glob/dist/cjs/src/index.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js +0 -68
- data/packages/webpacker/node_modules/glob/dist/cjs/src/index.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts +0 -77
- data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js +0 -219
- data/packages/webpacker/node_modules/glob/dist/cjs/src/pattern.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts +0 -59
- data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js +0 -309
- data/packages/webpacker/node_modules/glob/dist/cjs/src/processor.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts +0 -96
- data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js +0 -358
- data/packages/webpacker/node_modules/glob/dist/cjs/src/walker.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts +0 -344
- data/packages/webpacker/node_modules/glob/dist/mjs/glob.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/glob.js +0 -234
- data/packages/webpacker/node_modules/glob/dist/mjs/glob.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts +0 -14
- data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js +0 -23
- data/packages/webpacker/node_modules/glob/dist/mjs/has-magic.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts +0 -20
- data/packages/webpacker/node_modules/glob/dist/mjs/ignore.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js +0 -99
- data/packages/webpacker/node_modules/glob/dist/mjs/ignore.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts +0 -95
- data/packages/webpacker/node_modules/glob/dist/mjs/index.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/index.js +0 -56
- data/packages/webpacker/node_modules/glob/dist/mjs/index.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/package.json +0 -4
- data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts +0 -77
- data/packages/webpacker/node_modules/glob/dist/mjs/pattern.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js +0 -215
- data/packages/webpacker/node_modules/glob/dist/mjs/pattern.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts +0 -59
- data/packages/webpacker/node_modules/glob/dist/mjs/processor.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/processor.js +0 -302
- data/packages/webpacker/node_modules/glob/dist/mjs/processor.js.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts +0 -96
- data/packages/webpacker/node_modules/glob/dist/mjs/walker.d.ts.map +0 -1
- data/packages/webpacker/node_modules/glob/dist/mjs/walker.js +0 -352
- data/packages/webpacker/node_modules/glob/dist/mjs/walker.js.map +0 -1
- data/packages/webpacker/node_modules/glob/package.json +0 -98
- data/packages/webpacker/node_modules/js-yaml/CHANGELOG.md +0 -616
- data/packages/webpacker/node_modules/js-yaml/LICENSE +0 -21
- data/packages/webpacker/node_modules/js-yaml/README.md +0 -246
- data/packages/webpacker/node_modules/js-yaml/bin/js-yaml.js +0 -126
- data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.js +0 -3874
- data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.min.js +0 -2
- data/packages/webpacker/node_modules/js-yaml/dist/js-yaml.mjs +0 -3851
- data/packages/webpacker/node_modules/js-yaml/index.js +0 -47
- data/packages/webpacker/node_modules/js-yaml/lib/common.js +0 -59
- data/packages/webpacker/node_modules/js-yaml/lib/dumper.js +0 -965
- data/packages/webpacker/node_modules/js-yaml/lib/exception.js +0 -55
- data/packages/webpacker/node_modules/js-yaml/lib/loader.js +0 -1727
- data/packages/webpacker/node_modules/js-yaml/lib/schema/core.js +0 -11
- data/packages/webpacker/node_modules/js-yaml/lib/schema/default.js +0 -22
- data/packages/webpacker/node_modules/js-yaml/lib/schema/failsafe.js +0 -17
- data/packages/webpacker/node_modules/js-yaml/lib/schema/json.js +0 -19
- data/packages/webpacker/node_modules/js-yaml/lib/schema.js +0 -121
- data/packages/webpacker/node_modules/js-yaml/lib/snippet.js +0 -101
- data/packages/webpacker/node_modules/js-yaml/lib/type/binary.js +0 -125
- data/packages/webpacker/node_modules/js-yaml/lib/type/bool.js +0 -35
- data/packages/webpacker/node_modules/js-yaml/lib/type/float.js +0 -97
- data/packages/webpacker/node_modules/js-yaml/lib/type/int.js +0 -156
- data/packages/webpacker/node_modules/js-yaml/lib/type/map.js +0 -8
- data/packages/webpacker/node_modules/js-yaml/lib/type/merge.js +0 -12
- data/packages/webpacker/node_modules/js-yaml/lib/type/null.js +0 -35
- data/packages/webpacker/node_modules/js-yaml/lib/type/omap.js +0 -44
- data/packages/webpacker/node_modules/js-yaml/lib/type/pairs.js +0 -53
- data/packages/webpacker/node_modules/js-yaml/lib/type/seq.js +0 -8
- data/packages/webpacker/node_modules/js-yaml/lib/type/set.js +0 -29
- data/packages/webpacker/node_modules/js-yaml/lib/type/str.js +0 -8
- data/packages/webpacker/node_modules/js-yaml/lib/type/timestamp.js +0 -88
- data/packages/webpacker/node_modules/js-yaml/lib/type.js +0 -66
- data/packages/webpacker/node_modules/js-yaml/package.json +0 -66
- data/packages/webpacker/node_modules/minimatch/LICENSE +0 -15
- data/packages/webpacker/node_modules/minimatch/README.md +0 -454
- data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts +0 -2
- data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js +0 -14
- data/packages/webpacker/node_modules/minimatch/dist/cjs/assert-valid-pattern.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts +0 -19
- data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js +0 -589
- data/packages/webpacker/node_modules/minimatch/dist/cjs/ast.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts +0 -8
- data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js +0 -152
- data/packages/webpacker/node_modules/minimatch/dist/cjs/brace-expressions.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts +0 -12
- data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js +0 -22
- data/packages/webpacker/node_modules/minimatch/dist/cjs/escape.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts +0 -94
- data/packages/webpacker/node_modules/minimatch/dist/cjs/index.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js +0 -1011
- data/packages/webpacker/node_modules/minimatch/dist/cjs/index.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/package.json +0 -3
- data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts +0 -17
- data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js +0 -24
- data/packages/webpacker/node_modules/minimatch/dist/cjs/unescape.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts +0 -2
- data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js +0 -10
- data/packages/webpacker/node_modules/minimatch/dist/mjs/assert-valid-pattern.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts +0 -19
- data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js +0 -585
- data/packages/webpacker/node_modules/minimatch/dist/mjs/ast.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts +0 -8
- data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js +0 -148
- data/packages/webpacker/node_modules/minimatch/dist/mjs/brace-expressions.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts +0 -12
- data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js +0 -18
- data/packages/webpacker/node_modules/minimatch/dist/mjs/escape.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts +0 -94
- data/packages/webpacker/node_modules/minimatch/dist/mjs/index.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js +0 -995
- data/packages/webpacker/node_modules/minimatch/dist/mjs/index.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/package.json +0 -3
- data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts +0 -17
- data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.d.ts.map +0 -1
- data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js +0 -20
- data/packages/webpacker/node_modules/minimatch/dist/mjs/unescape.js.map +0 -1
- data/packages/webpacker/node_modules/minimatch/package.json +0 -86
@@ -1,238 +0,0 @@
|
|
1
|
-
/*istanbul ignore start*/
|
2
|
-
"use strict";
|
3
|
-
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
5
|
-
value: true
|
6
|
-
});
|
7
|
-
exports.applyPatch = applyPatch;
|
8
|
-
exports.applyPatches = applyPatches;
|
9
|
-
|
10
|
-
/*istanbul ignore end*/
|
11
|
-
var
|
12
|
-
/*istanbul ignore start*/
|
13
|
-
_parse = require("./parse")
|
14
|
-
/*istanbul ignore end*/
|
15
|
-
;
|
16
|
-
|
17
|
-
var
|
18
|
-
/*istanbul ignore start*/
|
19
|
-
_distanceIterator = _interopRequireDefault(require("../util/distance-iterator"))
|
20
|
-
/*istanbul ignore end*/
|
21
|
-
;
|
22
|
-
|
23
|
-
/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
24
|
-
|
25
|
-
/*istanbul ignore end*/
|
26
|
-
function applyPatch(source, uniDiff) {
|
27
|
-
/*istanbul ignore start*/
|
28
|
-
var
|
29
|
-
/*istanbul ignore end*/
|
30
|
-
options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
31
|
-
|
32
|
-
if (typeof uniDiff === 'string') {
|
33
|
-
uniDiff =
|
34
|
-
/*istanbul ignore start*/
|
35
|
-
(0,
|
36
|
-
/*istanbul ignore end*/
|
37
|
-
|
38
|
-
/*istanbul ignore start*/
|
39
|
-
_parse
|
40
|
-
/*istanbul ignore end*/
|
41
|
-
.
|
42
|
-
/*istanbul ignore start*/
|
43
|
-
parsePatch)
|
44
|
-
/*istanbul ignore end*/
|
45
|
-
(uniDiff);
|
46
|
-
}
|
47
|
-
|
48
|
-
if (Array.isArray(uniDiff)) {
|
49
|
-
if (uniDiff.length > 1) {
|
50
|
-
throw new Error('applyPatch only works with a single input.');
|
51
|
-
}
|
52
|
-
|
53
|
-
uniDiff = uniDiff[0];
|
54
|
-
} // Apply the diff to the input
|
55
|
-
|
56
|
-
|
57
|
-
var lines = source.split(/\r\n|[\n\v\f\r\x85]/),
|
58
|
-
delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [],
|
59
|
-
hunks = uniDiff.hunks,
|
60
|
-
compareLine = options.compareLine || function (lineNumber, line, operation, patchContent)
|
61
|
-
/*istanbul ignore start*/
|
62
|
-
{
|
63
|
-
return (
|
64
|
-
/*istanbul ignore end*/
|
65
|
-
line === patchContent
|
66
|
-
);
|
67
|
-
},
|
68
|
-
errorCount = 0,
|
69
|
-
fuzzFactor = options.fuzzFactor || 0,
|
70
|
-
minLine = 0,
|
71
|
-
offset = 0,
|
72
|
-
removeEOFNL,
|
73
|
-
addEOFNL;
|
74
|
-
/**
|
75
|
-
* Checks if the hunk exactly fits on the provided location
|
76
|
-
*/
|
77
|
-
|
78
|
-
|
79
|
-
function hunkFits(hunk, toPos) {
|
80
|
-
for (var j = 0; j < hunk.lines.length; j++) {
|
81
|
-
var line = hunk.lines[j],
|
82
|
-
operation = line.length > 0 ? line[0] : ' ',
|
83
|
-
content = line.length > 0 ? line.substr(1) : line;
|
84
|
-
|
85
|
-
if (operation === ' ' || operation === '-') {
|
86
|
-
// Context sanity check
|
87
|
-
if (!compareLine(toPos + 1, lines[toPos], operation, content)) {
|
88
|
-
errorCount++;
|
89
|
-
|
90
|
-
if (errorCount > fuzzFactor) {
|
91
|
-
return false;
|
92
|
-
}
|
93
|
-
}
|
94
|
-
|
95
|
-
toPos++;
|
96
|
-
}
|
97
|
-
}
|
98
|
-
|
99
|
-
return true;
|
100
|
-
} // Search best fit offsets for each hunk based on the previous ones
|
101
|
-
|
102
|
-
|
103
|
-
for (var i = 0; i < hunks.length; i++) {
|
104
|
-
var hunk = hunks[i],
|
105
|
-
maxLine = lines.length - hunk.oldLines,
|
106
|
-
localOffset = 0,
|
107
|
-
toPos = offset + hunk.oldStart - 1;
|
108
|
-
var iterator =
|
109
|
-
/*istanbul ignore start*/
|
110
|
-
(0,
|
111
|
-
/*istanbul ignore end*/
|
112
|
-
|
113
|
-
/*istanbul ignore start*/
|
114
|
-
_distanceIterator
|
115
|
-
/*istanbul ignore end*/
|
116
|
-
[
|
117
|
-
/*istanbul ignore start*/
|
118
|
-
"default"
|
119
|
-
/*istanbul ignore end*/
|
120
|
-
])(toPos, minLine, maxLine);
|
121
|
-
|
122
|
-
for (; localOffset !== undefined; localOffset = iterator()) {
|
123
|
-
if (hunkFits(hunk, toPos + localOffset)) {
|
124
|
-
hunk.offset = offset += localOffset;
|
125
|
-
break;
|
126
|
-
}
|
127
|
-
}
|
128
|
-
|
129
|
-
if (localOffset === undefined) {
|
130
|
-
return false;
|
131
|
-
} // Set lower text limit to end of the current hunk, so next ones don't try
|
132
|
-
// to fit over already patched text
|
133
|
-
|
134
|
-
|
135
|
-
minLine = hunk.offset + hunk.oldStart + hunk.oldLines;
|
136
|
-
} // Apply patch hunks
|
137
|
-
|
138
|
-
|
139
|
-
var diffOffset = 0;
|
140
|
-
|
141
|
-
for (var _i = 0; _i < hunks.length; _i++) {
|
142
|
-
var _hunk = hunks[_i],
|
143
|
-
_toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1;
|
144
|
-
|
145
|
-
diffOffset += _hunk.newLines - _hunk.oldLines;
|
146
|
-
|
147
|
-
for (var j = 0; j < _hunk.lines.length; j++) {
|
148
|
-
var line = _hunk.lines[j],
|
149
|
-
operation = line.length > 0 ? line[0] : ' ',
|
150
|
-
content = line.length > 0 ? line.substr(1) : line,
|
151
|
-
delimiter = _hunk.linedelimiters[j];
|
152
|
-
|
153
|
-
if (operation === ' ') {
|
154
|
-
_toPos++;
|
155
|
-
} else if (operation === '-') {
|
156
|
-
lines.splice(_toPos, 1);
|
157
|
-
delimiters.splice(_toPos, 1);
|
158
|
-
/* istanbul ignore else */
|
159
|
-
} else if (operation === '+') {
|
160
|
-
lines.splice(_toPos, 0, content);
|
161
|
-
delimiters.splice(_toPos, 0, delimiter);
|
162
|
-
_toPos++;
|
163
|
-
} else if (operation === '\\') {
|
164
|
-
var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null;
|
165
|
-
|
166
|
-
if (previousOperation === '+') {
|
167
|
-
removeEOFNL = true;
|
168
|
-
} else if (previousOperation === '-') {
|
169
|
-
addEOFNL = true;
|
170
|
-
}
|
171
|
-
}
|
172
|
-
}
|
173
|
-
} // Handle EOFNL insertion/removal
|
174
|
-
|
175
|
-
|
176
|
-
if (removeEOFNL) {
|
177
|
-
while (!lines[lines.length - 1]) {
|
178
|
-
lines.pop();
|
179
|
-
delimiters.pop();
|
180
|
-
}
|
181
|
-
} else if (addEOFNL) {
|
182
|
-
lines.push('');
|
183
|
-
delimiters.push('\n');
|
184
|
-
}
|
185
|
-
|
186
|
-
for (var _k = 0; _k < lines.length - 1; _k++) {
|
187
|
-
lines[_k] = lines[_k] + delimiters[_k];
|
188
|
-
}
|
189
|
-
|
190
|
-
return lines.join('');
|
191
|
-
} // Wrapper that supports multiple file patches via callbacks.
|
192
|
-
|
193
|
-
|
194
|
-
function applyPatches(uniDiff, options) {
|
195
|
-
if (typeof uniDiff === 'string') {
|
196
|
-
uniDiff =
|
197
|
-
/*istanbul ignore start*/
|
198
|
-
(0,
|
199
|
-
/*istanbul ignore end*/
|
200
|
-
|
201
|
-
/*istanbul ignore start*/
|
202
|
-
_parse
|
203
|
-
/*istanbul ignore end*/
|
204
|
-
.
|
205
|
-
/*istanbul ignore start*/
|
206
|
-
parsePatch)
|
207
|
-
/*istanbul ignore end*/
|
208
|
-
(uniDiff);
|
209
|
-
}
|
210
|
-
|
211
|
-
var currentIndex = 0;
|
212
|
-
|
213
|
-
function processIndex() {
|
214
|
-
var index = uniDiff[currentIndex++];
|
215
|
-
|
216
|
-
if (!index) {
|
217
|
-
return options.complete();
|
218
|
-
}
|
219
|
-
|
220
|
-
options.loadFile(index, function (err, data) {
|
221
|
-
if (err) {
|
222
|
-
return options.complete(err);
|
223
|
-
}
|
224
|
-
|
225
|
-
var updatedContent = applyPatch(data, index, options);
|
226
|
-
options.patched(index, updatedContent, function (err) {
|
227
|
-
if (err) {
|
228
|
-
return options.complete(err);
|
229
|
-
}
|
230
|
-
|
231
|
-
processIndex();
|
232
|
-
});
|
233
|
-
});
|
234
|
-
}
|
235
|
-
|
236
|
-
processIndex();
|
237
|
-
}
|
238
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJwYXJzZVBhdGNoIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiRXJyb3IiLCJsaW5lcyIsInNwbGl0IiwiZGVsaW1pdGVycyIsIm1hdGNoIiwiaHVua3MiLCJjb21wYXJlTGluZSIsImxpbmVOdW1iZXIiLCJsaW5lIiwib3BlcmF0aW9uIiwicGF0Y2hDb250ZW50IiwiZXJyb3JDb3VudCIsImZ1enpGYWN0b3IiLCJtaW5MaW5lIiwib2Zmc2V0IiwicmVtb3ZlRU9GTkwiLCJhZGRFT0ZOTCIsImh1bmtGaXRzIiwiaHVuayIsInRvUG9zIiwiaiIsImNvbnRlbnQiLCJzdWJzdHIiLCJpIiwibWF4TGluZSIsIm9sZExpbmVzIiwibG9jYWxPZmZzZXQiLCJvbGRTdGFydCIsIml0ZXJhdG9yIiwiZGlzdGFuY2VJdGVyYXRvciIsInVuZGVmaW5lZCIsImRpZmZPZmZzZXQiLCJuZXdMaW5lcyIsImRlbGltaXRlciIsImxpbmVkZWxpbWl0ZXJzIiwic3BsaWNlIiwicHJldmlvdXNPcGVyYXRpb24iLCJwb3AiLCJwdXNoIiwiX2siLCJqb2luIiwiYXBwbHlQYXRjaGVzIiwiY3VycmVudEluZGV4IiwicHJvY2Vzc0luZGV4IiwiaW5kZXgiLCJjb21wbGV0ZSIsImxvYWRGaWxlIiwiZXJyIiwiZGF0YSIsInVwZGF0ZWRDb250ZW50IiwicGF0Y2hlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTs7Ozs7QUFFTyxTQUFTQSxVQUFULENBQW9CQyxNQUFwQixFQUE0QkMsT0FBNUIsRUFBbUQ7QUFBQTtBQUFBO0FBQUE7QUFBZEMsRUFBQUEsT0FBYyx1RUFBSixFQUFJOztBQUN4RCxNQUFJLE9BQU9ELE9BQVAsS0FBbUIsUUFBdkIsRUFBaUM7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QUNEOztBQUVELE1BQUlnRCxZQUFZLEdBQUcsQ0FBbkI7O0FBQ0EsV0FBU0MsWUFBVCxHQUF3QjtBQUN0QixRQUFJQyxLQUFLLEdBQUdsRCxPQUFPLENBQUNnRCxZQUFZLEVBQWIsQ0FBbkI7O0FBQ0EsUUFBSSxDQUFDRSxLQUFMLEVBQVk7QUFDVixhQUFPakQsT0FBTyxDQUFDa0QsUUFBUixFQUFQO0FBQ0Q7O0FBRURsRCxJQUFBQSxPQUFPLENBQUNtRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT3BELE9BQU8sQ0FBQ2tELFFBQVIsQ0FBaUJFLEdBQWpCLENBQVA7QUFDRDs7QUFFRCxVQUFJRSxjQUFjLEdBQUd6RCxVQUFVLENBQUN3RCxJQUFELEVBQU9KLEtBQVAsRUFBY2pELE9BQWQsQ0FBL0I7QUFDQUEsTUFBQUEsT0FBTyxDQUFDdUQsT0FBUixDQUFnQk4sS0FBaEIsRUFBdUJLLGNBQXZCLEVBQXVDLFVBQVNGLEdBQVQsRUFBYztBQUNuRCxZQUFJQSxHQUFKLEVBQVM7QUFDUCxpQkFBT3BELE9BQU8sQ0FBQ2tELFFBQVIsQ0FBaUJFLEdBQWpCLENBQVA7QUFDRDs7QUFFREosUUFBQUEsWUFBWTtBQUNiLE9BTkQ7QUFPRCxLQWJEO0FBY0Q7O0FBQ0RBLEVBQUFBLFlBQVk7QUFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19
|
@@ -1,272 +0,0 @@
|
|
1
|
-
/*istanbul ignore start*/
|
2
|
-
"use strict";
|
3
|
-
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
5
|
-
value: true
|
6
|
-
});
|
7
|
-
exports.structuredPatch = structuredPatch;
|
8
|
-
exports.formatPatch = formatPatch;
|
9
|
-
exports.createTwoFilesPatch = createTwoFilesPatch;
|
10
|
-
exports.createPatch = createPatch;
|
11
|
-
|
12
|
-
/*istanbul ignore end*/
|
13
|
-
var
|
14
|
-
/*istanbul ignore start*/
|
15
|
-
_line = require("../diff/line")
|
16
|
-
/*istanbul ignore end*/
|
17
|
-
;
|
18
|
-
|
19
|
-
/*istanbul ignore start*/ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
20
|
-
|
21
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
22
|
-
|
23
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
24
|
-
|
25
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
26
|
-
|
27
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
28
|
-
|
29
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
30
|
-
|
31
|
-
/*istanbul ignore end*/
|
32
|
-
function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
33
|
-
if (!options) {
|
34
|
-
options = {};
|
35
|
-
}
|
36
|
-
|
37
|
-
if (typeof options.context === 'undefined') {
|
38
|
-
options.context = 4;
|
39
|
-
}
|
40
|
-
|
41
|
-
var diff =
|
42
|
-
/*istanbul ignore start*/
|
43
|
-
(0,
|
44
|
-
/*istanbul ignore end*/
|
45
|
-
|
46
|
-
/*istanbul ignore start*/
|
47
|
-
_line
|
48
|
-
/*istanbul ignore end*/
|
49
|
-
.
|
50
|
-
/*istanbul ignore start*/
|
51
|
-
diffLines)
|
52
|
-
/*istanbul ignore end*/
|
53
|
-
(oldStr, newStr, options);
|
54
|
-
|
55
|
-
if (!diff) {
|
56
|
-
return;
|
57
|
-
}
|
58
|
-
|
59
|
-
diff.push({
|
60
|
-
value: '',
|
61
|
-
lines: []
|
62
|
-
}); // Append an empty value to make cleanup easier
|
63
|
-
|
64
|
-
function contextLines(lines) {
|
65
|
-
return lines.map(function (entry) {
|
66
|
-
return ' ' + entry;
|
67
|
-
});
|
68
|
-
}
|
69
|
-
|
70
|
-
var hunks = [];
|
71
|
-
var oldRangeStart = 0,
|
72
|
-
newRangeStart = 0,
|
73
|
-
curRange = [],
|
74
|
-
oldLine = 1,
|
75
|
-
newLine = 1;
|
76
|
-
|
77
|
-
/*istanbul ignore start*/
|
78
|
-
var _loop = function _loop(
|
79
|
-
/*istanbul ignore end*/
|
80
|
-
i) {
|
81
|
-
var current = diff[i],
|
82
|
-
lines = current.lines || current.value.replace(/\n$/, '').split('\n');
|
83
|
-
current.lines = lines;
|
84
|
-
|
85
|
-
if (current.added || current.removed) {
|
86
|
-
/*istanbul ignore start*/
|
87
|
-
var _curRange;
|
88
|
-
|
89
|
-
/*istanbul ignore end*/
|
90
|
-
// If we have previous context, start with that
|
91
|
-
if (!oldRangeStart) {
|
92
|
-
var prev = diff[i - 1];
|
93
|
-
oldRangeStart = oldLine;
|
94
|
-
newRangeStart = newLine;
|
95
|
-
|
96
|
-
if (prev) {
|
97
|
-
curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : [];
|
98
|
-
oldRangeStart -= curRange.length;
|
99
|
-
newRangeStart -= curRange.length;
|
100
|
-
}
|
101
|
-
} // Output our changes
|
102
|
-
|
103
|
-
|
104
|
-
/*istanbul ignore start*/
|
105
|
-
|
106
|
-
/*istanbul ignore end*/
|
107
|
-
|
108
|
-
/*istanbul ignore start*/
|
109
|
-
(_curRange =
|
110
|
-
/*istanbul ignore end*/
|
111
|
-
curRange).push.apply(
|
112
|
-
/*istanbul ignore start*/
|
113
|
-
_curRange
|
114
|
-
/*istanbul ignore end*/
|
115
|
-
,
|
116
|
-
/*istanbul ignore start*/
|
117
|
-
_toConsumableArray(
|
118
|
-
/*istanbul ignore end*/
|
119
|
-
lines.map(function (entry) {
|
120
|
-
return (current.added ? '+' : '-') + entry;
|
121
|
-
}))); // Track the updated file position
|
122
|
-
|
123
|
-
|
124
|
-
if (current.added) {
|
125
|
-
newLine += lines.length;
|
126
|
-
} else {
|
127
|
-
oldLine += lines.length;
|
128
|
-
}
|
129
|
-
} else {
|
130
|
-
// Identical context lines. Track line changes
|
131
|
-
if (oldRangeStart) {
|
132
|
-
// Close out any changes that have been output (or join overlapping)
|
133
|
-
if (lines.length <= options.context * 2 && i < diff.length - 2) {
|
134
|
-
/*istanbul ignore start*/
|
135
|
-
var _curRange2;
|
136
|
-
|
137
|
-
/*istanbul ignore end*/
|
138
|
-
// Overlapping
|
139
|
-
|
140
|
-
/*istanbul ignore start*/
|
141
|
-
|
142
|
-
/*istanbul ignore end*/
|
143
|
-
|
144
|
-
/*istanbul ignore start*/
|
145
|
-
(_curRange2 =
|
146
|
-
/*istanbul ignore end*/
|
147
|
-
curRange).push.apply(
|
148
|
-
/*istanbul ignore start*/
|
149
|
-
_curRange2
|
150
|
-
/*istanbul ignore end*/
|
151
|
-
,
|
152
|
-
/*istanbul ignore start*/
|
153
|
-
_toConsumableArray(
|
154
|
-
/*istanbul ignore end*/
|
155
|
-
contextLines(lines)));
|
156
|
-
} else {
|
157
|
-
/*istanbul ignore start*/
|
158
|
-
var _curRange3;
|
159
|
-
|
160
|
-
/*istanbul ignore end*/
|
161
|
-
// end the range and output
|
162
|
-
var contextSize = Math.min(lines.length, options.context);
|
163
|
-
|
164
|
-
/*istanbul ignore start*/
|
165
|
-
|
166
|
-
/*istanbul ignore end*/
|
167
|
-
|
168
|
-
/*istanbul ignore start*/
|
169
|
-
(_curRange3 =
|
170
|
-
/*istanbul ignore end*/
|
171
|
-
curRange).push.apply(
|
172
|
-
/*istanbul ignore start*/
|
173
|
-
_curRange3
|
174
|
-
/*istanbul ignore end*/
|
175
|
-
,
|
176
|
-
/*istanbul ignore start*/
|
177
|
-
_toConsumableArray(
|
178
|
-
/*istanbul ignore end*/
|
179
|
-
contextLines(lines.slice(0, contextSize))));
|
180
|
-
|
181
|
-
var hunk = {
|
182
|
-
oldStart: oldRangeStart,
|
183
|
-
oldLines: oldLine - oldRangeStart + contextSize,
|
184
|
-
newStart: newRangeStart,
|
185
|
-
newLines: newLine - newRangeStart + contextSize,
|
186
|
-
lines: curRange
|
187
|
-
};
|
188
|
-
|
189
|
-
if (i >= diff.length - 2 && lines.length <= options.context) {
|
190
|
-
// EOF is inside this hunk
|
191
|
-
var oldEOFNewline = /\n$/.test(oldStr);
|
192
|
-
var newEOFNewline = /\n$/.test(newStr);
|
193
|
-
var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines;
|
194
|
-
|
195
|
-
if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) {
|
196
|
-
// special case: old has no eol and no trailing context; no-nl can end up before adds
|
197
|
-
// however, if the old file is empty, do not output the no-nl line
|
198
|
-
curRange.splice(hunk.oldLines, 0, '\');
|
199
|
-
}
|
200
|
-
|
201
|
-
if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) {
|
202
|
-
curRange.push('\');
|
203
|
-
}
|
204
|
-
}
|
205
|
-
|
206
|
-
hunks.push(hunk);
|
207
|
-
oldRangeStart = 0;
|
208
|
-
newRangeStart = 0;
|
209
|
-
curRange = [];
|
210
|
-
}
|
211
|
-
}
|
212
|
-
|
213
|
-
oldLine += lines.length;
|
214
|
-
newLine += lines.length;
|
215
|
-
}
|
216
|
-
};
|
217
|
-
|
218
|
-
for (var i = 0; i < diff.length; i++) {
|
219
|
-
/*istanbul ignore start*/
|
220
|
-
_loop(
|
221
|
-
/*istanbul ignore end*/
|
222
|
-
i);
|
223
|
-
}
|
224
|
-
|
225
|
-
return {
|
226
|
-
oldFileName: oldFileName,
|
227
|
-
newFileName: newFileName,
|
228
|
-
oldHeader: oldHeader,
|
229
|
-
newHeader: newHeader,
|
230
|
-
hunks: hunks
|
231
|
-
};
|
232
|
-
}
|
233
|
-
|
234
|
-
function formatPatch(diff) {
|
235
|
-
var ret = [];
|
236
|
-
|
237
|
-
if (diff.oldFileName == diff.newFileName) {
|
238
|
-
ret.push('Index: ' + diff.oldFileName);
|
239
|
-
}
|
240
|
-
|
241
|
-
ret.push('===================================================================');
|
242
|
-
ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader));
|
243
|
-
ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader));
|
244
|
-
|
245
|
-
for (var i = 0; i < diff.hunks.length; i++) {
|
246
|
-
var hunk = diff.hunks[i]; // Unified Diff Format quirk: If the chunk size is 0,
|
247
|
-
// the first number is one lower than one would expect.
|
248
|
-
// https://www.artima.com/weblogs/viewpost.jsp?thread=164293
|
249
|
-
|
250
|
-
if (hunk.oldLines === 0) {
|
251
|
-
hunk.oldStart -= 1;
|
252
|
-
}
|
253
|
-
|
254
|
-
if (hunk.newLines === 0) {
|
255
|
-
hunk.newStart -= 1;
|
256
|
-
}
|
257
|
-
|
258
|
-
ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@');
|
259
|
-
ret.push.apply(ret, hunk.lines);
|
260
|
-
}
|
261
|
-
|
262
|
-
return ret.join('\n') + '\n';
|
263
|
-
}
|
264
|
-
|
265
|
-
function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
|
266
|
-
return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options));
|
267
|
-
}
|
268
|
-
|
269
|
-
function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) {
|
270
|
-
return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options);
|
271
|
-
}
|
272
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsImRpZmZMaW5lcyIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwibm9ObEJlZm9yZUFkZHMiLCJzcGxpY2UiLCJmb3JtYXRQYXRjaCIsInJldCIsImFwcGx5Iiwiam9pbiIsImNyZWF0ZVR3b0ZpbGVzUGF0Y2giLCJjcmVhdGVQYXRjaCIsImZpbGVOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUFFTyxTQUFTQSxlQUFULENBQXlCQyxXQUF6QixFQUFzQ0MsV0FBdEMsRUFBbURDLE1BQW5ELEVBQTJEQyxNQUEzRCxFQUFtRUMsU0FBbkUsRUFBOEVDLFNBQTlFLEVBQXlGQyxPQUF6RixFQUFrRztBQUN2RyxNQUFJLENBQUNBLE9BQUwsRUFBYztBQUNaQSxJQUFBQSxPQUFPLEdBQUcsRUFBVjtBQUNEOztBQUNELE1BQUksT0FBT0EsT0FBTyxDQUFDQyxPQUFmLEtBQTJCLFdBQS9CLEVBQTRDO0FB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IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgaWYoIWRpZmYpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBkaWZmLnB1c2goe3ZhbHVlOiAnJywgbGluZXM6IFtdfSk7IC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgoL1xcbiQvKS50ZXN0KG9sZFN0cikpO1xuICAgICAgICAgICAgbGV0IG5ld0VPRk5ld2xpbmUgPSAoKC9cXG4kLykudGVzdChuZXdTdHIpKTtcbiAgICAgICAgICAgIGxldCBub05sQmVmb3JlQWRkcyA9IGxpbmVzLmxlbmd0aCA9PSAwICYmIGN1clJhbmdlLmxlbmd0aCA+IGh1bmsub2xkTGluZXM7XG4gICAgICAgICAgICBpZiAoIW9sZEVPRk5ld2xpbmUgJiYgbm9ObEJlZm9yZUFkZHMgJiYgb2xkU3RyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiBvbGQgaGFzIG5vIGVvbCBhbmQgbm8gdHJhaWxpbmcgY29udGV4dDsgbm8tbmwgY2FuIGVuZCB1cCBiZWZvcmUgYWRkc1xuICAgICAgICAgICAgICAvLyBob3dldmVyLCBpZiB0aGUgb2xkIGZpbGUgaXMgZW1wdHksIGRvIG5vdCBvdXRwdXQgdGhlIG5vLW5sIGxpbmVcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoIW9sZEVPRk5ld2xpbmUgJiYgIW5vTmxCZWZvcmVBZGRzKSB8fCAhbmV3RU9GTmV3bGluZSkge1xuICAgICAgICAgICAgICBjdXJSYW5nZS5wdXNoKCdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaHVua3MucHVzaChodW5rKTtcblxuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgPSAwO1xuICAgICAgICAgIGN1clJhbmdlID0gW107XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG9sZExpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBvbGRGaWxlTmFtZTogb2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lOiBuZXdGaWxlTmFtZSxcbiAgICBvbGRIZWFkZXI6IG9sZEhlYWRlciwgbmV3SGVhZGVyOiBuZXdIZWFkZXIsXG4gICAgaHVua3M6IGh1bmtzXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRQYXRjaChkaWZmKSB7XG4gIGNvbnN0IHJldCA9IFtdO1xuICBpZiAoZGlmZi5vbGRGaWxlTmFtZSA9PSBkaWZmLm5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgZGlmZi5vbGRGaWxlTmFtZSk7XG4gIH1cbiAgcmV0LnB1c2goJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgcmV0LnB1c2goJy0tLSAnICsgZGlmZi5vbGRGaWxlTmFtZSArICh0eXBlb2YgZGlmZi5vbGRIZWFkZXIgPT09ICd1bmRlZmluZWQnID8gJycgOiAnXFx0JyArIGRpZmYub2xkSGVhZGVyKSk7XG4gIHJldC5wdXNoKCcrKysgJyArIGRpZmYubmV3RmlsZU5hbWUgKyAodHlwZW9mIGRpZmYubmV3SGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm5ld0hlYWRlcikpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5odW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGh1bmsgPSBkaWZmLmh1bmtzW2ldO1xuICAgIC8vIFVuaWZpZWQgRGlmZiBGb3JtYXQgcXVpcms6IElmIHRoZSBjaHVuayBzaXplIGlzIDAsXG4gICAgLy8gdGhlIGZpcnN0IG51bWJlciBpcyBvbmUgbG93ZXIgdGhhbiBvbmUgd291bGQgZXhwZWN0LlxuICAgIC8vIGh0dHBzOi8vd3d3LmFydGltYS5jb20vd2VibG9ncy92aWV3cG9zdC5qc3A/dGhyZWFkPTE2NDI5M1xuICAgIGlmIChodW5rLm9sZExpbmVzID09PSAwKSB7XG4gICAgICBodW5rLm9sZFN0YXJ0IC09IDE7XG4gICAgfVxuICAgIGlmIChodW5rLm5ld0xpbmVzID09PSAwKSB7XG4gICAgICBodW5rLm5ld1N0YXJ0IC09IDE7XG4gICAgfVxuICAgIHJldC5wdXNoKFxuICAgICAgJ0BAIC0nICsgaHVuay5vbGRTdGFydCArICcsJyArIGh1bmsub2xkTGluZXNcbiAgICAgICsgJyArJyArIGh1bmsubmV3U3RhcnQgKyAnLCcgKyBodW5rLm5ld0xpbmVzXG4gICAgICArICcgQEAnXG4gICAgKTtcbiAgICByZXQucHVzaC5hcHBseShyZXQsIGh1bmsubGluZXMpO1xuICB9XG5cbiAgcmV0dXJuIHJldC5qb2luKCdcXG4nKSArICdcXG4nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICByZXR1cm4gZm9ybWF0UGF0Y2goc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXRjaChmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKSB7XG4gIHJldHVybiBjcmVhdGVUd29GaWxlc1BhdGNoKGZpbGVOYW1lLCBmaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcbn1cbiJdfQ==
|