@tricoteuses/assemblee 1.0.0-next.2 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/lib/api.js +23 -7
- package/lib/api.mjs +41 -0
- package/lib/bugs/acteur-00010/plugin.test.js +139 -33
- package/lib/bugs/acteur-00010/plugin.test.mjs +33 -0
- package/lib/bugs/acteur-00010.js +166 -24
- package/lib/bugs/acteur-00010.mjs +31 -0
- package/lib/bugs/agenda-00002/plugin.test.js +178 -52
- package/lib/bugs/agenda-00002/plugin.test.mjs +52 -0
- package/lib/bugs/agenda-00002.js +507 -143
- package/lib/bugs/agenda-00002.mjs +197 -0
- package/lib/bugs/agenda-00008/plugin.test.js +143 -31
- package/lib/bugs/agenda-00008/plugin.test.mjs +31 -0
- package/lib/bugs/agenda-00008.js +180 -25
- package/lib/bugs/agenda-00008.mjs +30 -0
- package/lib/bugs/agenda-00011/plugin.test.js +371 -156
- package/lib/bugs/agenda-00011/plugin.test.mjs +156 -0
- package/lib/bugs/agenda-00011.js +416 -117
- package/lib/bugs/agenda-00011.mjs +150 -0
- package/lib/bugs.js +591 -54
- package/lib/bugs.mjs +93 -0
- package/lib/cleaners/actes_legislatifs.js +149 -61
- package/lib/cleaners/actes_legislatifs.mjs +311 -0
- package/lib/cleaners/acteurs.js +255 -123
- package/lib/cleaners/acteurs.mjs +211 -0
- package/lib/cleaners/amendements.js +242 -117
- package/lib/cleaners/amendements.mjs +292 -0
- package/lib/cleaners/documents.js +147 -62
- package/lib/cleaners/documents.mjs +162 -0
- package/lib/cleaners/dossiers_legislatifs.js +132 -45
- package/lib/cleaners/dossiers_legislatifs.mjs +123 -0
- package/lib/cleaners/index.js +64 -8
- package/lib/cleaners/index.mjs +8 -0
- package/lib/cleaners/organes.js +54 -21
- package/lib/cleaners/organes.mjs +64 -0
- package/lib/cleaners/reunions.js +237 -127
- package/lib/cleaners/reunions.mjs +318 -0
- package/lib/cleaners/scrutins.js +261 -99
- package/lib/cleaners/scrutins.mjs +254 -0
- package/lib/cleaners/xml.js +81 -16
- package/lib/cleaners/xml.mjs +42 -0
- package/lib/datasets.js +284 -153
- package/lib/datasets.mjs +596 -0
- package/lib/dates.js +93 -34
- package/lib/dates.mjs +98 -0
- package/lib/dossiers_legislatifs.js +107 -33
- package/lib/dossiers_legislatifs.mjs +215 -0
- package/lib/file_systems.js +203 -35
- package/lib/file_systems.mjs +64 -0
- package/lib/git.js +139 -41
- package/lib/git.mjs +114 -0
- package/lib/index.js +310 -16
- package/lib/index.mjs +16 -0
- package/lib/inserters.js +355 -131
- package/lib/inserters.mjs +413 -0
- package/lib/loaders.js +900 -440
- package/lib/loaders.mjs +678 -0
- package/lib/organes.js +15 -5
- package/lib/organes.mjs +18 -0
- package/lib/parsers/documents.js +241 -89
- package/lib/parsers/documents.mjs +433 -0
- package/lib/parsers/index.js +36 -3
- package/lib/parsers/index.mjs +3 -0
- package/lib/parsers/recherche_amendements.js +616 -173
- package/lib/parsers/recherche_amendements.mjs +189 -0
- package/lib/raw_types/acteurs_et_organes.d.ts +36 -148
- package/lib/raw_types/acteurs_et_organes.js +228 -506
- package/lib/raw_types/acteurs_et_organes.mjs +1240 -0
- package/lib/raw_types/agendas.js +165 -75
- package/lib/raw_types/agendas.mjs +944 -0
- package/lib/raw_types/amendements.js +165 -77
- package/lib/raw_types/amendements.mjs +1040 -0
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -43
- package/lib/raw_types/dossiers_legislatifs.js +181 -143
- package/lib/raw_types/dossiers_legislatifs.mjs +1792 -0
- package/lib/raw_types/scrutins.js +144 -61
- package/lib/raw_types/scrutins.mjs +645 -0
- package/lib/scripts/bugs_helper.js +657 -155
- package/lib/scripts/bugs_helper.mjs +286 -0
- package/lib/scripts/clean_data.js +380 -145
- package/lib/scripts/clean_data.mjs +190 -0
- package/lib/scripts/clean_reorganized_data.js +627 -331
- package/lib/scripts/clean_reorganized_data.mjs +520 -0
- package/lib/scripts/diff_amendements.js +159 -73
- package/lib/scripts/diff_amendements.mjs +234 -0
- package/lib/scripts/document_dossiers_legislatifs.js +570 -288
- package/lib/scripts/document_dossiers_legislatifs.mjs +494 -0
- package/lib/scripts/get_today_reunions.js +37 -20
- package/lib/scripts/get_today_reunions.mjs +41 -0
- package/lib/scripts/merge_scrutins.js +121 -39
- package/lib/scripts/merge_scrutins.mjs +69 -0
- package/lib/scripts/parse_textes_lois.js +179 -125
- package/lib/scripts/parse_textes_lois.mjs +215 -0
- package/lib/scripts/raw_types_from_amendements.js +276 -77
- package/lib/scripts/raw_types_from_amendements.mjs +118 -0
- package/lib/scripts/reorganize_data.js +867 -446
- package/lib/scripts/reorganize_data.mjs +712 -0
- package/lib/scripts/retrieve_deputes_photos.js +378 -157
- package/lib/scripts/retrieve_deputes_photos.mjs +230 -0
- package/lib/scripts/retrieve_documents.js +648 -172
- package/lib/scripts/retrieve_documents.mjs +292 -0
- package/lib/scripts/retrieve_open_data.js +286 -85
- package/lib/scripts/retrieve_open_data.mjs +125 -0
- package/lib/scripts/retrieve_pending_amendments.js +302 -69
- package/lib/scripts/retrieve_pending_amendments.mjs +130 -0
- package/lib/scripts/retrieve_senateurs_photos.js +374 -198
- package/lib/scripts/retrieve_senateurs_photos.mjs +277 -0
- package/lib/scripts/retrieve_textes_lois.js +343 -89
- package/lib/scripts/retrieve_textes_lois.mjs +168 -0
- package/lib/scripts/test_load.js +30 -11
- package/lib/scripts/test_load.mjs +26 -0
- package/lib/scripts/test_load_big_files.js +30 -11
- package/lib/scripts/test_load_big_files.mjs +26 -0
- package/lib/scripts/validate_json.js +370 -120
- package/lib/scripts/validate_json.mjs +216 -0
- package/lib/shared_types/codes_actes.js +50 -15
- package/lib/shared_types/codes_actes.mjs +228 -0
- package/lib/strings.js +16 -3
- package/lib/strings.mjs +7 -0
- package/lib/types/acteurs_et_organes.js +156 -71
- package/lib/types/acteurs_et_organes.mjs +918 -0
- package/lib/types/agendas.js +154 -67
- package/lib/types/agendas.mjs +623 -0
- package/lib/types/amendements.js +166 -77
- package/lib/types/amendements.mjs +885 -0
- package/lib/types/dossiers_legislatifs.d.ts +1 -42
- package/lib/types/dossiers_legislatifs.js +182 -143
- package/lib/types/dossiers_legislatifs.mjs +1120 -0
- package/lib/types/legislatures.js +12 -3
- package/lib/types/legislatures.mjs +9 -0
- package/lib/types/scrutins.js +144 -61
- package/lib/types/scrutins.mjs +528 -0
- package/lib/urls.js +44 -25
- package/lib/urls.mjs +201 -0
- package/package.json +33 -12
package/lib/git.js
CHANGED
|
@@ -1,27 +1,88 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.slice.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.function.name.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.from.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.string.iterator.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.symbol.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.symbol.description.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.symbol.iterator.js");
|
|
16
|
+
|
|
17
|
+
require("core-js/modules/es.array.iterator.js");
|
|
18
|
+
|
|
19
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
20
|
+
|
|
21
|
+
require("core-js/modules/es.array.is-array.js");
|
|
22
|
+
|
|
23
|
+
require("core-js/modules/es.object.define-property.js");
|
|
24
|
+
|
|
25
|
+
Object.defineProperty(exports, "__esModule", {
|
|
26
|
+
value: true
|
|
27
|
+
});
|
|
28
|
+
exports.commit = commit;
|
|
29
|
+
exports.run = run;
|
|
30
|
+
exports.test = test;
|
|
31
|
+
exports.uidBranchUpdate = uidBranchUpdate;
|
|
32
|
+
|
|
33
|
+
require("core-js/modules/es.array.concat.js");
|
|
34
|
+
|
|
35
|
+
require("core-js/modules/es.string.trim.js");
|
|
36
|
+
|
|
37
|
+
require("core-js/modules/es.date.to-string.js");
|
|
38
|
+
|
|
39
|
+
require("core-js/modules/es.object.to-string.js");
|
|
40
|
+
|
|
41
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
42
|
+
|
|
43
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
44
|
+
|
|
45
|
+
var _path = _interopRequireDefault(require("path"));
|
|
46
|
+
|
|
47
|
+
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
48
|
+
|
|
49
|
+
var _file_systems = require("./file_systems");
|
|
50
|
+
|
|
51
|
+
var _child_process = require("child_process");
|
|
52
|
+
|
|
53
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
54
|
+
|
|
55
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
56
|
+
|
|
57
|
+
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); }
|
|
58
|
+
|
|
59
|
+
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; }
|
|
60
|
+
|
|
61
|
+
var MAXBUFFER = 50 * 1024 * 1024;
|
|
62
|
+
|
|
63
|
+
function run(repositoryDir, args, verbose) {
|
|
7
64
|
try {
|
|
8
|
-
if (verbose) console.log(
|
|
9
|
-
|
|
65
|
+
if (verbose) console.log("git -C ".concat(repositoryDir, " ").concat(args));
|
|
66
|
+
var output = (0, _child_process.execSync)("git ".concat(args), {
|
|
10
67
|
cwd: repositoryDir,
|
|
11
68
|
maxBuffer: MAXBUFFER
|
|
12
69
|
}).toString().trim();
|
|
13
70
|
if (verbose) console.log(output);
|
|
14
71
|
return output;
|
|
15
72
|
} catch (childProcess) {
|
|
16
|
-
for (
|
|
73
|
+
for (var _i = 0, _arr = ["stdout", "stderr"]; _i < _arr.length; _i++) {
|
|
74
|
+
var _output = _arr[_i];
|
|
75
|
+
console.error("".concat(_output, ": ").concat(childProcess[_output]));
|
|
76
|
+
}
|
|
17
77
|
|
|
18
78
|
throw childProcess;
|
|
19
79
|
}
|
|
20
80
|
}
|
|
21
|
-
|
|
81
|
+
|
|
82
|
+
function test(repositoryDir, args, verbose) {
|
|
22
83
|
try {
|
|
23
|
-
if (verbose) console.log(
|
|
24
|
-
|
|
84
|
+
if (verbose) console.log("git -C ".concat(repositoryDir, " ").concat(args));
|
|
85
|
+
var output = (0, _child_process.execSync)("git ".concat(args), {
|
|
25
86
|
cwd: repositoryDir,
|
|
26
87
|
stdio: ["ignore", "pipe", "pipe"],
|
|
27
88
|
maxBuffer: MAXBUFFER
|
|
@@ -33,8 +94,9 @@ export function test(repositoryDir, args, verbose) {
|
|
|
33
94
|
throw childProcess;
|
|
34
95
|
}
|
|
35
96
|
}
|
|
36
|
-
|
|
37
|
-
|
|
97
|
+
|
|
98
|
+
function commit(repositoryDir, message) {
|
|
99
|
+
(0, _child_process.execSync)("git add .", {
|
|
38
100
|
cwd: repositoryDir,
|
|
39
101
|
env: process.env,
|
|
40
102
|
encoding: "utf-8",
|
|
@@ -43,7 +105,7 @@ export function commit(repositoryDir, message) {
|
|
|
43
105
|
});
|
|
44
106
|
|
|
45
107
|
try {
|
|
46
|
-
execSync(
|
|
108
|
+
(0, _child_process.execSync)("git commit -m \"".concat(message, "\""), {
|
|
47
109
|
cwd: repositoryDir,
|
|
48
110
|
env: process.env,
|
|
49
111
|
encoding: "utf-8",
|
|
@@ -59,56 +121,92 @@ export function commit(repositoryDir, message) {
|
|
|
59
121
|
return false;
|
|
60
122
|
}
|
|
61
123
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
124
|
+
|
|
125
|
+
function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
|
|
126
|
+
var previousBranch = run(repositoryDir, "rev-parse --abbrev-ref HEAD");
|
|
127
|
+
var branch = "uid";
|
|
128
|
+
var cwd = process.cwd();
|
|
66
129
|
process.chdir(repositoryDir);
|
|
67
130
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
fs.ensureDirSync(uidDirectory);
|
|
131
|
+
var _iterator = _createForOfIteratorHelper(subdirectories),
|
|
132
|
+
_step;
|
|
71
133
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
134
|
+
try {
|
|
135
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
136
|
+
var subdirectory = _step.value;
|
|
137
|
+
var uidDirectory = "".concat(subdirectory, "/uid");
|
|
138
|
+
|
|
139
|
+
_fsExtra["default"].ensureDirSync(uidDirectory);
|
|
140
|
+
|
|
141
|
+
var _iterator3 = _createForOfIteratorHelper((0, _file_systems.getFiles)(["".concat(subdirectory, "/**/*.json")])),
|
|
142
|
+
_step3;
|
|
143
|
+
|
|
144
|
+
try {
|
|
145
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
146
|
+
var pathname = _step3.value;
|
|
147
|
+
|
|
148
|
+
var filename = _path["default"].basename(pathname);
|
|
149
|
+
|
|
150
|
+
_fsExtra["default"].renameSync(pathname, "".concat(uidDirectory, "/").concat(filename));
|
|
151
|
+
}
|
|
152
|
+
} catch (err) {
|
|
153
|
+
_iterator3.e(err);
|
|
154
|
+
} finally {
|
|
155
|
+
_iterator3.f();
|
|
156
|
+
}
|
|
75
157
|
}
|
|
158
|
+
} catch (err) {
|
|
159
|
+
_iterator.e(err);
|
|
160
|
+
} finally {
|
|
161
|
+
_iterator.f();
|
|
76
162
|
}
|
|
77
163
|
|
|
78
164
|
process.chdir(cwd);
|
|
79
165
|
|
|
80
|
-
if (test(repositoryDir,
|
|
166
|
+
if (test(repositoryDir, "rev-parse remotes/origin/".concat(branch))) {
|
|
81
167
|
// if a remote branch exists, it must be used even if a local branch exists
|
|
82
|
-
run(repositoryDir,
|
|
83
|
-
run(repositoryDir,
|
|
168
|
+
run(repositoryDir, "branch --force ".concat(branch, " origin/").concat(branch));
|
|
169
|
+
run(repositoryDir, "symbolic-ref HEAD refs/heads/".concat(branch));
|
|
84
170
|
run(repositoryDir, "reset");
|
|
85
|
-
} else if (test(repositoryDir,
|
|
171
|
+
} else if (test(repositoryDir, "rev-parse refs/heads/".concat(branch))) {
|
|
86
172
|
// if no remote branch exists but a local one exists, use it
|
|
87
|
-
run(repositoryDir,
|
|
173
|
+
run(repositoryDir, "symbolic-ref HEAD refs/heads/".concat(branch));
|
|
88
174
|
run(repositoryDir, "reset");
|
|
89
175
|
} else {
|
|
90
176
|
// if there are no remote or local branches, create a new one
|
|
91
|
-
run(repositoryDir,
|
|
92
|
-
run(repositoryDir,
|
|
177
|
+
run(repositoryDir, "branch --force ".concat(branch, " master"));
|
|
178
|
+
run(repositoryDir, "symbolic-ref HEAD refs/heads/".concat(branch));
|
|
93
179
|
run(repositoryDir, "reset");
|
|
94
180
|
run(repositoryDir, "rm -r .");
|
|
95
181
|
}
|
|
96
182
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
183
|
+
var _iterator2 = _createForOfIteratorHelper(subdirectories),
|
|
184
|
+
_step2;
|
|
185
|
+
|
|
186
|
+
try {
|
|
187
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
188
|
+
var _subdirectory = _step2.value;
|
|
189
|
+
|
|
190
|
+
var _uidDirectory = "".concat(_subdirectory, "/uid");
|
|
191
|
+
|
|
192
|
+
run(repositoryDir, "add ".concat(_uidDirectory));
|
|
193
|
+
}
|
|
194
|
+
} catch (err) {
|
|
195
|
+
_iterator2.e(err);
|
|
196
|
+
} finally {
|
|
197
|
+
_iterator2.f();
|
|
100
198
|
}
|
|
101
199
|
|
|
102
|
-
|
|
200
|
+
var status = false;
|
|
103
201
|
|
|
104
202
|
if (!test(repositoryDir, "diff --quiet --cached")) {
|
|
105
|
-
run(repositoryDir,
|
|
203
|
+
run(repositoryDir, "commit -m 'Update'");
|
|
106
204
|
status = true;
|
|
107
205
|
}
|
|
108
206
|
|
|
109
|
-
run(repositoryDir,
|
|
110
|
-
|
|
111
|
-
run(repositoryDir,
|
|
207
|
+
run(repositoryDir, "symbolic-ref HEAD refs/heads/".concat(previousBranch));
|
|
208
|
+
var resetOption = notHard ? "" : "--hard";
|
|
209
|
+
run(repositoryDir, "reset ".concat(resetOption));
|
|
112
210
|
return status;
|
|
113
211
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwicnVuIiwicmVwb3NpdG9yeURpciIsImFyZ3MiLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsIm91dHB1dCIsImN3ZCIsIm1heEJ1ZmZlciIsInRvU3RyaW5nIiwidHJpbSIsImNoaWxkUHJvY2VzcyIsImVycm9yIiwidGVzdCIsInN0ZGlvIiwic3RhdHVzIiwiY29tbWl0IiwibWVzc2FnZSIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZG91dCIsInVpZEJyYW5jaFVwZGF0ZSIsInN1YmRpcmVjdG9yaWVzIiwibm90SGFyZCIsInByZXZpb3VzQnJhbmNoIiwiYnJhbmNoIiwiY2hkaXIiLCJzdWJkaXJlY3RvcnkiLCJ1aWREaXJlY3RvcnkiLCJlbnN1cmVEaXJTeW5jIiwicGF0aG5hbWUiLCJmaWxlbmFtZSIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCJgLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmIChcbiAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRvdXQgPT09IG51bGwgfHxcbiAgICAgICEvbm90aGluZyB0byBjb21taXQvLnRlc3QoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0ZG91dClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkQnJhbmNoVXBkYXRlKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4gIG5vdEhhcmQ6IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldmlvdXNCcmFuY2ggPSBydW4ocmVwb3NpdG9yeURpciwgXCJyZXYtcGFyc2UgLS1hYmJyZXYtcmVmIEhFQURcIilcbiAgY29uc3QgYnJhbmNoID0gXCJ1aWRcIlxuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHByb2Nlc3MuY2hkaXIocmVwb3NpdG9yeURpcilcbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHVpZERpcmVjdG9yeSlcbiAgICBmb3IgKGNvbnN0IHBhdGhuYW1lIG9mIGdldEZpbGVzKFtgJHtzdWJkaXJlY3Rvcnl9LyoqLyouanNvbmBdKSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKHBhdGhuYW1lKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRobmFtZSwgYCR7dWlkRGlyZWN0b3J5fS8ke2ZpbGVuYW1lfWApXG4gICAgfVxuICB9XG4gIHByb2Nlc3MuY2hkaXIoY3dkKVxuICBpZiAodGVzdChyZXBvc2l0b3J5RGlyLCBgcmV2LXBhcnNlIHJlbW90ZXMvb3JpZ2luLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgYSByZW1vdGUgYnJhbmNoIGV4aXN0cywgaXQgbXVzdCBiZSB1c2VkIGV2ZW4gaWYgYSBsb2NhbCBicmFuY2ggZXhpc3RzXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gb3JpZ2luLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKSkge1xuICAgIC8vIGlmIG5vIHJlbW90ZSBicmFuY2ggZXhpc3RzIGJ1dCBhIGxvY2FsIG9uZSBleGlzdHMsIHVzZSBpdFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJlc2V0XCIpXG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIHJlbW90ZSBvciBsb2NhbCBicmFuY2hlcywgY3JlYXRlIGEgbmV3IG9uZVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYnJhbmNoIC0tZm9yY2UgJHticmFuY2h9IG1hc3RlcmApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJybSAtciAuXCIpXG4gIH1cbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGFkZCAke3VpZERpcmVjdG9yeX1gKVxuICB9XG4gIGxldCBzdGF0dXMgPSBmYWxzZVxuICBpZiAoIXRlc3QocmVwb3NpdG9yeURpciwgXCJkaWZmIC0tcXVpZXQgLS1jYWNoZWRcIikpIHtcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGNvbW1pdCAtbSAnVXBkYXRlJ2ApXG4gICAgc3RhdHVzID0gdHJ1ZVxuICB9XG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke3ByZXZpb3VzQnJhbmNofWApXG4gIGNvbnN0IHJlc2V0T3B0aW9uID0gbm90SGFyZCA/IFwiXCIgOiBcIi0taGFyZFwiXG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgcmVzZXQgJHtyZXNldE9wdGlvbn1gKVxuICByZXR1cm4gc3RhdHVz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
|
|
212
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhCVUZGRVIiLCJydW4iLCJyZXBvc2l0b3J5RGlyIiwiYXJncyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwib3V0cHV0IiwiZXhlY1N5bmMiLCJjd2QiLCJtYXhCdWZmZXIiLCJ0b1N0cmluZyIsInRyaW0iLCJjaGlsZFByb2Nlc3MiLCJlcnJvciIsInRlc3QiLCJzdGRpbyIsInN0YXR1cyIsImNvbW1pdCIsIm1lc3NhZ2UiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRvdXQiLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwiZ2V0RmlsZXMiLCJwYXRobmFtZSIsImZpbGVuYW1lIiwicGF0aCIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCJgLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmIChcbiAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRvdXQgPT09IG51bGwgfHxcbiAgICAgICEvbm90aGluZyB0byBjb21taXQvLnRlc3QoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0ZG91dClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkQnJhbmNoVXBkYXRlKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4gIG5vdEhhcmQ6IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldmlvdXNCcmFuY2ggPSBydW4ocmVwb3NpdG9yeURpciwgXCJyZXYtcGFyc2UgLS1hYmJyZXYtcmVmIEhFQURcIilcbiAgY29uc3QgYnJhbmNoID0gXCJ1aWRcIlxuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHByb2Nlc3MuY2hkaXIocmVwb3NpdG9yeURpcilcbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHVpZERpcmVjdG9yeSlcbiAgICBmb3IgKGNvbnN0IHBhdGhuYW1lIG9mIGdldEZpbGVzKFtgJHtzdWJkaXJlY3Rvcnl9LyoqLyouanNvbmBdKSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKHBhdGhuYW1lKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRobmFtZSwgYCR7dWlkRGlyZWN0b3J5fS8ke2ZpbGVuYW1lfWApXG4gICAgfVxuICB9XG4gIHByb2Nlc3MuY2hkaXIoY3dkKVxuICBpZiAodGVzdChyZXBvc2l0b3J5RGlyLCBgcmV2LXBhcnNlIHJlbW90ZXMvb3JpZ2luLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgYSByZW1vdGUgYnJhbmNoIGV4aXN0cywgaXQgbXVzdCBiZSB1c2VkIGV2ZW4gaWYgYSBsb2NhbCBicmFuY2ggZXhpc3RzXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gb3JpZ2luLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKSkge1xuICAgIC8vIGlmIG5vIHJlbW90ZSBicmFuY2ggZXhpc3RzIGJ1dCBhIGxvY2FsIG9uZSBleGlzdHMsIHVzZSBpdFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJlc2V0XCIpXG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIHJlbW90ZSBvciBsb2NhbCBicmFuY2hlcywgY3JlYXRlIGEgbmV3IG9uZVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYnJhbmNoIC0tZm9yY2UgJHticmFuY2h9IG1hc3RlcmApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJybSAtciAuXCIpXG4gIH1cbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGFkZCAke3VpZERpcmVjdG9yeX1gKVxuICB9XG4gIGxldCBzdGF0dXMgPSBmYWxzZVxuICBpZiAoIXRlc3QocmVwb3NpdG9yeURpciwgXCJkaWZmIC0tcXVpZXQgLS1jYWNoZWRcIikpIHtcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGNvbW1pdCAtbSAnVXBkYXRlJ2ApXG4gICAgc3RhdHVzID0gdHJ1ZVxuICB9XG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke3ByZXZpb3VzQnJhbmNofWApXG4gIGNvbnN0IHJlc2V0T3B0aW9uID0gbm90SGFyZCA/IFwiXCIgOiBcIi0taGFyZFwiXG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgcmVzZXQgJHtyZXNldE9wdGlvbn1gKVxuICByZXR1cm4gc3RhdHVz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
|
package/lib/git.mjs
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import { getFiles } from "./file_systems.mjs";
|
|
4
|
+
import { execSync } from "child_process";
|
|
5
|
+
const MAXBUFFER = 50 * 1024 * 1024;
|
|
6
|
+
export function run(repositoryDir, args, verbose) {
|
|
7
|
+
try {
|
|
8
|
+
if (verbose) console.log(`git -C ${repositoryDir} ${args}`);
|
|
9
|
+
const output = execSync(`git ${args}`, {
|
|
10
|
+
cwd: repositoryDir,
|
|
11
|
+
maxBuffer: MAXBUFFER
|
|
12
|
+
}).toString().trim();
|
|
13
|
+
if (verbose) console.log(output);
|
|
14
|
+
return output;
|
|
15
|
+
} catch (childProcess) {
|
|
16
|
+
for (const output of ["stdout", "stderr"]) console.error(`${output}: ${childProcess[output]}`);
|
|
17
|
+
|
|
18
|
+
throw childProcess;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function test(repositoryDir, args, verbose) {
|
|
22
|
+
try {
|
|
23
|
+
if (verbose) console.log(`git -C ${repositoryDir} ${args}`);
|
|
24
|
+
const output = execSync(`git ${args}`, {
|
|
25
|
+
cwd: repositoryDir,
|
|
26
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
27
|
+
maxBuffer: MAXBUFFER
|
|
28
|
+
}).toString().trim();
|
|
29
|
+
if (verbose) console.log(output);
|
|
30
|
+
return true;
|
|
31
|
+
} catch (childProcess) {
|
|
32
|
+
if (childProcess.status != 0) return false;
|
|
33
|
+
throw childProcess;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function commit(repositoryDir, message) {
|
|
37
|
+
execSync("git add .", {
|
|
38
|
+
cwd: repositoryDir,
|
|
39
|
+
env: process.env,
|
|
40
|
+
encoding: "utf-8",
|
|
41
|
+
stdio: ["ignore", "ignore", "pipe"],
|
|
42
|
+
maxBuffer: MAXBUFFER
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
execSync(`git commit -m "${message}"`, {
|
|
47
|
+
cwd: repositoryDir,
|
|
48
|
+
env: process.env,
|
|
49
|
+
encoding: "utf-8",
|
|
50
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
51
|
+
});
|
|
52
|
+
return true;
|
|
53
|
+
} catch (childProcess) {
|
|
54
|
+
if (childProcess.stdout === null || !/nothing to commit/.test(childProcess.stdout)) {
|
|
55
|
+
console.error(childProcess.output);
|
|
56
|
+
throw childProcess;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
|
|
63
|
+
const previousBranch = run(repositoryDir, "rev-parse --abbrev-ref HEAD");
|
|
64
|
+
const branch = "uid";
|
|
65
|
+
const cwd = process.cwd();
|
|
66
|
+
process.chdir(repositoryDir);
|
|
67
|
+
|
|
68
|
+
for (const subdirectory of subdirectories) {
|
|
69
|
+
const uidDirectory = `${subdirectory}/uid`;
|
|
70
|
+
fs.ensureDirSync(uidDirectory);
|
|
71
|
+
|
|
72
|
+
for (const pathname of getFiles([`${subdirectory}/**/*.json`])) {
|
|
73
|
+
const filename = path.basename(pathname);
|
|
74
|
+
fs.renameSync(pathname, `${uidDirectory}/${filename}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
process.chdir(cwd);
|
|
79
|
+
|
|
80
|
+
if (test(repositoryDir, `rev-parse remotes/origin/${branch}`)) {
|
|
81
|
+
// if a remote branch exists, it must be used even if a local branch exists
|
|
82
|
+
run(repositoryDir, `branch --force ${branch} origin/${branch}`);
|
|
83
|
+
run(repositoryDir, `symbolic-ref HEAD refs/heads/${branch}`);
|
|
84
|
+
run(repositoryDir, "reset");
|
|
85
|
+
} else if (test(repositoryDir, `rev-parse refs/heads/${branch}`)) {
|
|
86
|
+
// if no remote branch exists but a local one exists, use it
|
|
87
|
+
run(repositoryDir, `symbolic-ref HEAD refs/heads/${branch}`);
|
|
88
|
+
run(repositoryDir, "reset");
|
|
89
|
+
} else {
|
|
90
|
+
// if there are no remote or local branches, create a new one
|
|
91
|
+
run(repositoryDir, `branch --force ${branch} master`);
|
|
92
|
+
run(repositoryDir, `symbolic-ref HEAD refs/heads/${branch}`);
|
|
93
|
+
run(repositoryDir, "reset");
|
|
94
|
+
run(repositoryDir, "rm -r .");
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
for (const subdirectory of subdirectories) {
|
|
98
|
+
const uidDirectory = `${subdirectory}/uid`;
|
|
99
|
+
run(repositoryDir, `add ${uidDirectory}`);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
let status = false;
|
|
103
|
+
|
|
104
|
+
if (!test(repositoryDir, "diff --quiet --cached")) {
|
|
105
|
+
run(repositoryDir, `commit -m 'Update'`);
|
|
106
|
+
status = true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
run(repositoryDir, `symbolic-ref HEAD refs/heads/${previousBranch}`);
|
|
110
|
+
const resetOption = notHard ? "" : "--hard";
|
|
111
|
+
run(repositoryDir, `reset ${resetOption}`);
|
|
112
|
+
return status;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwicnVuIiwicmVwb3NpdG9yeURpciIsImFyZ3MiLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsIm91dHB1dCIsImN3ZCIsIm1heEJ1ZmZlciIsInRvU3RyaW5nIiwidHJpbSIsImNoaWxkUHJvY2VzcyIsImVycm9yIiwidGVzdCIsInN0ZGlvIiwic3RhdHVzIiwiY29tbWl0IiwibWVzc2FnZSIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZG91dCIsInVpZEJyYW5jaFVwZGF0ZSIsInN1YmRpcmVjdG9yaWVzIiwibm90SGFyZCIsInByZXZpb3VzQnJhbmNoIiwiYnJhbmNoIiwiY2hkaXIiLCJzdWJkaXJlY3RvcnkiLCJ1aWREaXJlY3RvcnkiLCJlbnN1cmVEaXJTeW5jIiwicGF0aG5hbWUiLCJmaWxlbmFtZSIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCJgLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmIChcbiAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRvdXQgPT09IG51bGwgfHxcbiAgICAgICEvbm90aGluZyB0byBjb21taXQvLnRlc3QoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0ZG91dClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkQnJhbmNoVXBkYXRlKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4gIG5vdEhhcmQ6IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldmlvdXNCcmFuY2ggPSBydW4ocmVwb3NpdG9yeURpciwgXCJyZXYtcGFyc2UgLS1hYmJyZXYtcmVmIEhFQURcIilcbiAgY29uc3QgYnJhbmNoID0gXCJ1aWRcIlxuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHByb2Nlc3MuY2hkaXIocmVwb3NpdG9yeURpcilcbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHVpZERpcmVjdG9yeSlcbiAgICBmb3IgKGNvbnN0IHBhdGhuYW1lIG9mIGdldEZpbGVzKFtgJHtzdWJkaXJlY3Rvcnl9LyoqLyouanNvbmBdKSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKHBhdGhuYW1lKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRobmFtZSwgYCR7dWlkRGlyZWN0b3J5fS8ke2ZpbGVuYW1lfWApXG4gICAgfVxuICB9XG4gIHByb2Nlc3MuY2hkaXIoY3dkKVxuICBpZiAodGVzdChyZXBvc2l0b3J5RGlyLCBgcmV2LXBhcnNlIHJlbW90ZXMvb3JpZ2luLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgYSByZW1vdGUgYnJhbmNoIGV4aXN0cywgaXQgbXVzdCBiZSB1c2VkIGV2ZW4gaWYgYSBsb2NhbCBicmFuY2ggZXhpc3RzXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gb3JpZ2luLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKSkge1xuICAgIC8vIGlmIG5vIHJlbW90ZSBicmFuY2ggZXhpc3RzIGJ1dCBhIGxvY2FsIG9uZSBleGlzdHMsIHVzZSBpdFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJlc2V0XCIpXG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIHJlbW90ZSBvciBsb2NhbCBicmFuY2hlcywgY3JlYXRlIGEgbmV3IG9uZVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYnJhbmNoIC0tZm9yY2UgJHticmFuY2h9IG1hc3RlcmApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJybSAtciAuXCIpXG4gIH1cbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGFkZCAke3VpZERpcmVjdG9yeX1gKVxuICB9XG4gIGxldCBzdGF0dXMgPSBmYWxzZVxuICBpZiAoIXRlc3QocmVwb3NpdG9yeURpciwgXCJkaWZmIC0tcXVpZXQgLS1jYWNoZWRcIikpIHtcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGNvbW1pdCAtbSAnVXBkYXRlJ2ApXG4gICAgc3RhdHVzID0gdHJ1ZVxuICB9XG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke3ByZXZpb3VzQnJhbmNofWApXG4gIGNvbnN0IHJlc2V0T3B0aW9uID0gbm90SGFyZCA/IFwiXCIgOiBcIi0taGFyZFwiXG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgcmVzZXQgJHtyZXNldE9wdGlvbn1gKVxuICByZXR1cm4gc3RhdHVz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
|