@tricoteuses/senat 1.1.1 → 1.3.1
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 +53 -15
- package/lib/aggregates.d.ts +4 -6
- package/lib/aggregates.mjs +908 -780
- package/lib/aggregates.ts +8 -122
- package/lib/data/legislatures.json +38 -0
- package/lib/databases.d.ts +9 -0
- package/lib/databases.js +41 -11
- package/lib/databases.mjs +32 -1
- package/lib/databases.ts +40 -1
- package/lib/fields.mjs +64 -18
- package/lib/index.d.ts +5 -6
- package/lib/index.js +8 -99
- package/lib/index.mjs +4 -6
- package/lib/index.ts +9 -26
- package/lib/inserters.d.ts +0 -4
- package/lib/inserters.mjs +461 -337
- package/lib/inserters.ts +0 -24
- package/lib/legislatures.json +38 -0
- package/lib/loaders.d.ts +64 -0
- package/lib/loaders.js +682 -0
- package/lib/loaders.mjs +158 -0
- package/lib/loaders.ts +271 -0
- package/lib/model/ameli.d.ts +105 -4
- package/lib/model/ameli.js +20 -160
- package/lib/model/ameli.mjs +84 -57
- package/lib/model/ameli.ts +94 -80
- package/lib/model/debats.d.ts +0 -4
- package/lib/model/debats.js +1 -122
- package/lib/model/debats.mjs +1 -43
- package/lib/model/debats.ts +0 -68
- package/lib/model/dosleg.d.ts +227 -29
- package/lib/model/dosleg.js +92 -832
- package/lib/model/dosleg.mjs +196 -337
- package/lib/model/dosleg.ts +213 -531
- package/lib/model/index.d.ts +4 -5
- package/lib/model/index.js +14 -15
- package/lib/model/index.mjs +4 -5
- package/lib/model/index.ts +8 -5
- package/lib/model/questions.d.ts +88 -2
- package/lib/model/questions.js +40 -45
- package/lib/model/questions.mjs +71 -8
- package/lib/model/questions.ts +90 -11
- package/lib/model/sens.d.ts +524 -2
- package/lib/model/sens.js +172 -49
- package/lib/model/sens.mjs +415 -9
- package/lib/model/sens.ts +514 -16
- package/lib/model/texte.d.ts +7 -0
- package/lib/model/texte.js +321 -0
- package/lib/model/texte.mjs +208 -0
- package/lib/model/texte.ts +229 -0
- package/lib/model/util.d.ts +7 -1
- package/lib/model/util.js +37 -53
- package/lib/model/util.mjs +19 -10
- package/lib/model/util.ts +30 -14
- package/lib/raw_types/ameli.d.ts +912 -538
- package/lib/raw_types/ameli.js +1 -39
- package/lib/raw_types/ameli.mjs +4 -1
- package/lib/raw_types/ameli.ts +947 -597
- package/lib/raw_types/debats.d.ts +204 -124
- package/lib/raw_types/debats.js +1 -18
- package/lib/raw_types/debats.mjs +4 -1
- package/lib/raw_types/debats.ts +218 -141
- package/lib/raw_types/dosleg.d.ts +3533 -2024
- package/lib/raw_types/dosleg.js +1 -92
- package/lib/raw_types/dosleg.mjs +4 -1
- package/lib/raw_types/dosleg.ts +3621 -2189
- package/lib/raw_types/questions.d.ts +404 -220
- package/lib/raw_types/questions.js +1 -18
- package/lib/raw_types/questions.mjs +4 -1
- package/lib/raw_types/questions.ts +404 -226
- package/lib/raw_types/sens.d.ts +4391 -2706
- package/lib/raw_types/sens.js +1 -108
- package/lib/raw_types/sens.mjs +4 -1
- package/lib/raw_types/sens.ts +4495 -2903
- package/lib/raw_types_kysely/ameli.d.ts +6 -0
- package/lib/raw_types_kysely/ameli.mjs +7 -0
- package/lib/raw_types_kysely/ameli.ts +6 -0
- package/lib/raw_types_kysely/debats.d.ts +6 -0
- package/lib/raw_types_kysely/debats.mjs +7 -0
- package/lib/raw_types_kysely/debats.ts +6 -0
- package/lib/raw_types_kysely/dosleg.d.ts +6 -0
- package/lib/raw_types_kysely/dosleg.mjs +7 -0
- package/lib/raw_types_kysely/dosleg.ts +6 -0
- package/lib/raw_types_kysely/questions.d.ts +6 -0
- package/lib/raw_types_kysely/questions.mjs +7 -0
- package/lib/raw_types_kysely/questions.ts +6 -0
- package/lib/raw_types_kysely/sens.d.ts +6 -0
- package/lib/raw_types_kysely/sens.mjs +7 -0
- package/lib/raw_types_kysely/sens.ts +6 -0
- package/lib/raw_types_kysely/texte.d.ts +45 -0
- package/lib/raw_types_kysely/texte.mjs +7 -0
- package/lib/raw_types_kysely/texte.ts +53 -0
- package/lib/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/raw_types_schemats/ameli.js +45 -0
- package/lib/raw_types_schemats/ameli.mjs +2 -0
- package/lib/raw_types_schemats/ameli.ts +601 -0
- package/lib/raw_types_schemats/debats.d.ts +127 -0
- package/lib/raw_types_schemats/debats.js +24 -0
- package/lib/raw_types_schemats/debats.mjs +2 -0
- package/lib/raw_types_schemats/debats.ts +145 -0
- package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
- package/lib/raw_types_schemats/dosleg.js +98 -0
- package/lib/raw_types_schemats/dosleg.mjs +2 -0
- package/lib/raw_types_schemats/dosleg.ts +2195 -0
- package/lib/raw_types_schemats/questions.d.ts +233 -0
- package/lib/raw_types_schemats/questions.js +24 -0
- package/lib/raw_types_schemats/questions.mjs +2 -0
- package/lib/raw_types_schemats/questions.ts +251 -0
- package/lib/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/raw_types_schemats/sens.js +114 -0
- package/lib/raw_types_schemats/sens.mjs +2 -0
- package/lib/raw_types_schemats/sens.ts +2907 -0
- package/lib/scripts/convert_data.js +574 -215
- package/lib/scripts/convert_data.mjs +134 -99
- package/lib/scripts/convert_data.ts +173 -112
- package/lib/scripts/datautil.d.ts +5 -0
- package/lib/scripts/datautil.js +64 -0
- package/lib/scripts/datautil.mjs +16 -0
- package/lib/scripts/datautil.ts +19 -0
- package/lib/scripts/parse_textes.js +132 -0
- package/lib/scripts/parse_textes.mjs +46 -0
- package/lib/scripts/parse_textes.ts +65 -0
- package/lib/scripts/retrieve_documents.d.ts +1 -0
- package/lib/scripts/retrieve_documents.js +521 -0
- package/lib/scripts/retrieve_documents.mjs +249 -0
- package/lib/scripts/retrieve_documents.ts +298 -0
- package/lib/scripts/retrieve_open_data.js +77 -69
- package/lib/scripts/retrieve_open_data.mjs +48 -49
- package/lib/scripts/retrieve_open_data.ts +74 -58
- package/lib/scripts/retrieve_senateurs_photos.js +45 -63
- package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
- package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
- package/lib/scripts/retrieve_textes.mjs +325 -74
- package/lib/scripts/retrieve_textes.ts +111 -63
- package/lib/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/scripts/shared/cli_helpers.js +35 -0
- package/lib/scripts/shared/cli_helpers.ts +36 -0
- package/lib/scripts/shared/util.d.ts +3 -0
- package/lib/scripts/shared/util.js +102 -0
- package/lib/scripts/shared/util.ts +33 -0
- package/lib/src/aggregates.d.ts +52 -0
- package/lib/src/aggregates.mjs +726 -0
- package/lib/src/config.d.ts +2 -0
- package/lib/src/config.mjs +16 -0
- package/lib/src/databases.d.ts +18 -0
- package/lib/src/databases.mjs +55 -0
- package/lib/src/datasets.d.ts +28 -0
- package/lib/src/datasets.mjs +78 -0
- package/lib/src/fields.d.ts +10 -0
- package/lib/src/fields.mjs +22 -0
- package/lib/src/index.d.ts +8 -0
- package/lib/src/index.mjs +7 -0
- package/lib/src/inserters.d.ts +98 -0
- package/lib/src/inserters.mjs +360 -0
- package/lib/src/loaders.d.ts +36 -0
- package/lib/src/loaders.mjs +107 -0
- package/lib/src/model/ameli.d.ts +4 -0
- package/lib/src/model/ameli.js +57 -0
- package/lib/src/model/debats.d.ts +4 -0
- package/lib/src/model/debats.js +43 -0
- package/lib/src/model/dosleg.d.ts +197 -0
- package/lib/src/model/dosleg.js +169 -0
- package/lib/src/model/index.d.ts +4 -0
- package/lib/src/model/index.js +4 -0
- package/lib/src/model/questions.d.ts +89 -0
- package/lib/src/model/questions.js +76 -0
- package/lib/src/model/sens.d.ts +390 -0
- package/lib/src/model/sens.js +339 -0
- package/lib/src/model/texte.d.ts +7 -0
- package/lib/src/model/texte.js +183 -0
- package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
- package/lib/src/raw_types_kysely/ameli.js +5 -0
- package/lib/src/raw_types_kysely/debats.d.ts +207 -0
- package/lib/src/raw_types_kysely/debats.js +5 -0
- package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
- package/lib/src/raw_types_kysely/dosleg.js +5 -0
- package/lib/src/raw_types_kysely/questions.d.ts +414 -0
- package/lib/src/raw_types_kysely/questions.js +5 -0
- package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
- package/lib/src/raw_types_kysely/sens.js +5 -0
- package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/src/raw_types_schemats/ameli.js +2 -0
- package/lib/src/raw_types_schemats/debats.d.ts +127 -0
- package/lib/src/raw_types_schemats/debats.js +2 -0
- package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
- package/lib/src/raw_types_schemats/dosleg.js +2 -0
- package/lib/src/raw_types_schemats/questions.d.ts +231 -0
- package/lib/src/raw_types_schemats/questions.js +2 -0
- package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/src/raw_types_schemats/sens.js +2 -0
- package/lib/src/scripts/convert_data.d.ts +1 -0
- package/lib/src/scripts/convert_data.js +95 -0
- package/lib/src/scripts/datautil.d.ts +5 -0
- package/lib/src/scripts/datautil.js +16 -0
- package/lib/src/scripts/parse_textes.d.ts +1 -0
- package/lib/src/scripts/parse_textes.js +47 -0
- package/lib/src/scripts/retrieve_documents.d.ts +1 -0
- package/lib/src/scripts/retrieve_documents.js +258 -0
- package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
- package/lib/src/scripts/retrieve_open_data.js +214 -0
- package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
- package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
- package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/src/scripts/shared/cli_helpers.js +32 -0
- package/lib/src/scripts/shared/util.d.ts +3 -0
- package/lib/src/scripts/shared/util.js +28 -0
- package/lib/src/strings.d.ts +1 -0
- package/lib/src/strings.mjs +18 -0
- package/lib/src/types/ameli.d.ts +10 -0
- package/lib/src/types/ameli.js +13 -0
- package/lib/src/types/debats.d.ts +4 -0
- package/lib/src/types/debats.js +2 -0
- package/lib/src/types/dosleg.d.ts +98 -0
- package/lib/src/types/dosleg.js +151 -0
- package/lib/src/types/questions.d.ts +2 -0
- package/lib/src/types/questions.js +1 -0
- package/lib/src/types/sens.d.ts +10 -0
- package/lib/src/types/sens.js +1 -0
- package/lib/src/types/sessions.d.ts +42 -0
- package/lib/src/types/sessions.js +43 -0
- package/lib/src/types/texte.d.ts +61 -0
- package/lib/src/types/texte.js +16 -0
- package/lib/src/validators/config.d.ts +1 -0
- package/lib/src/validators/config.js +54 -0
- package/lib/src/validators/senat.d.ts +0 -0
- package/lib/src/validators/senat.js +24 -0
- package/lib/types/ameli.d.ts +1 -1
- package/lib/types/ameli.js +2 -2
- package/lib/types/ameli.ts +1 -1
- package/lib/types/debats.d.ts +1 -1
- package/lib/types/debats.js +2 -2
- package/lib/types/debats.ts +1 -1
- package/lib/types/dosleg.d.ts +2 -2
- package/lib/types/dosleg.js +2 -2
- package/lib/types/dosleg.ts +2 -2
- package/lib/types/questions.d.ts +1 -1
- package/lib/types/questions.js +2 -2
- package/lib/types/questions.ts +1 -1
- package/lib/types/sens.d.ts +1 -3
- package/lib/types/sens.js +2 -5
- package/lib/types/sens.mjs +1 -23
- package/lib/types/sens.ts +1 -25
- package/lib/types/sessions.d.ts +42 -0
- package/lib/types/sessions.js +51 -0
- package/lib/types/sessions.mjs +43 -0
- package/lib/types/sessions.ts +42 -0
- package/lib/types/texte.d.ts +65 -0
- package/lib/types/texte.js +24 -0
- package/lib/types/texte.mjs +16 -0
- package/lib/types/texte.ts +76 -0
- package/package.json +35 -10
- package/lib/aggregates.js +0 -1122
- package/lib/fields.js +0 -68
- package/lib/inserters.js +0 -518
- package/lib/scripts/fix_db.js +0 -144
- package/lib/scripts/fix_db.mjs +0 -64
- package/lib/scripts/fix_db.ts +0 -75
- package/lib/scripts/retrieve_textes.js +0 -179
- /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
require("core-js/modules/es.symbol.js");
|
|
5
|
+
require("core-js/modules/es.symbol.description.js");
|
|
6
|
+
require("core-js/modules/es.symbol.iterator.js");
|
|
7
|
+
require("core-js/modules/es.array.is-array.js");
|
|
8
|
+
require("core-js/modules/es.array.iterator.js");
|
|
9
|
+
require("core-js/modules/es.array.slice.js");
|
|
10
|
+
require("core-js/modules/es.function.name.js");
|
|
11
|
+
require("core-js/modules/es.object.create.js");
|
|
12
|
+
require("core-js/modules/es.object.define-property.js");
|
|
13
|
+
require("core-js/modules/es.object.get-prototype-of.js");
|
|
14
|
+
require("core-js/modules/es.object.set-prototype-of.js");
|
|
15
|
+
require("core-js/modules/es.promise.js");
|
|
16
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
17
|
+
Object.defineProperty(exports, "__esModule", {
|
|
18
|
+
value: true
|
|
19
|
+
});
|
|
20
|
+
exports.parseExposeDesMotifs = parseExposeDesMotifs;
|
|
21
|
+
exports.parseExposeDesMotifsFromFile = parseExposeDesMotifsFromFile;
|
|
22
|
+
exports.parseTexte = parseTexte;
|
|
23
|
+
exports.parseTexteFromFile = parseTexteFromFile;
|
|
24
|
+
exports.transformExposeDesMotifs = transformExposeDesMotifs;
|
|
25
|
+
exports.transformTexte = transformTexte;
|
|
26
|
+
require("core-js/modules/es.array.concat.js");
|
|
27
|
+
require("core-js/modules/es.array.filter.js");
|
|
28
|
+
require("core-js/modules/es.array.for-each.js");
|
|
29
|
+
require("core-js/modules/es.array.from.js");
|
|
30
|
+
require("core-js/modules/es.date.to-string.js");
|
|
31
|
+
require("core-js/modules/es.object.to-string.js");
|
|
32
|
+
require("core-js/modules/es.parse-int.js");
|
|
33
|
+
require("core-js/modules/es.regexp.constructor.js");
|
|
34
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
35
|
+
require("core-js/modules/es.regexp.to-string.js");
|
|
36
|
+
require("core-js/modules/es.string.iterator.js");
|
|
37
|
+
require("core-js/modules/es.string.trim.js");
|
|
38
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
39
|
+
var _jsdom = require("jsdom");
|
|
40
|
+
var _datautil = require("../scripts/datautil");
|
|
41
|
+
var _texte = require("../types/texte");
|
|
42
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), c(GeneratorFunctionPrototype, u, GeneratorFunction.displayName = "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
|
|
43
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
44
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
45
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
46
|
+
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."); }
|
|
47
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
48
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
49
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, 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 o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
50
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
51
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
52
|
+
function buildWorklow(metaElement) {
|
|
53
|
+
var stepElements = metaElement.querySelectorAll("workflow step");
|
|
54
|
+
var steps = [];
|
|
55
|
+
var _iterator = _createForOfIteratorHelper(stepElements),
|
|
56
|
+
_step;
|
|
57
|
+
try {
|
|
58
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
59
|
+
var _stepElement$getAttri, _AKN_WORKFLOW_IDENTIF, _stepElement$getAttri2;
|
|
60
|
+
var stepElement = _step.value;
|
|
61
|
+
var identification = (_stepElement$getAttri = stepElement.getAttribute("href")) !== null && _stepElement$getAttri !== void 0 ? _stepElement$getAttri : "";
|
|
62
|
+
var identificationParts = (_AKN_WORKFLOW_IDENTIF = _datautil.AKN_WORKFLOW_IDENTIFICATION_STRUCTURE_REGEXP.exec(identification)) === null || _AKN_WORKFLOW_IDENTIF === void 0 ? void 0 : _AKN_WORKFLOW_IDENTIF.groups;
|
|
63
|
+
steps.push({
|
|
64
|
+
eId: stepElement.getAttribute("eId"),
|
|
65
|
+
date: stepElement.getAttribute("date") ? new Date((_stepElement$getAttri2 = stepElement.getAttribute("date")) !== null && _stepElement$getAttri2 !== void 0 ? _stepElement$getAttri2 : "") : null,
|
|
66
|
+
type: (identificationParts === null || identificationParts === void 0 ? void 0 : identificationParts.type) || null,
|
|
67
|
+
session: (identificationParts === null || identificationParts === void 0 ? void 0 : identificationParts.session) || null,
|
|
68
|
+
numero: (identificationParts === null || identificationParts === void 0 ? void 0 : identificationParts.numTexte) || null,
|
|
69
|
+
version: identificationParts !== null && identificationParts !== void 0 && identificationParts.version ? identificationParts.version : null,
|
|
70
|
+
outcome: stepElement.getAttribute("outcome")
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
} catch (err) {
|
|
74
|
+
_iterator.e(err);
|
|
75
|
+
} finally {
|
|
76
|
+
_iterator.f();
|
|
77
|
+
}
|
|
78
|
+
return steps;
|
|
79
|
+
}
|
|
80
|
+
function buildDivision(node, index) {
|
|
81
|
+
var _titleNode$textConten, _titleNode$textConten2, _titleNode$innerHTML$, _titleNode$innerHTML, _subtitleNode$textCon, _subtitleNode$textCon2, _subtitleNode$innerHT, _subtitleNode$innerHT2;
|
|
82
|
+
var eId = node.getAttribute("eId");
|
|
83
|
+
var tag = node.nodeName;
|
|
84
|
+
var level = _texte.DivisionType[tag];
|
|
85
|
+
var titleNode = node.querySelector("num");
|
|
86
|
+
var subtitleNode = node.querySelector("heading");
|
|
87
|
+
var headings = [].concat(_toConsumableArray(titleNode ? [{
|
|
88
|
+
text: (_titleNode$textConten = (_titleNode$textConten2 = titleNode.textContent) === null || _titleNode$textConten2 === void 0 ? void 0 : _titleNode$textConten2.trim()) !== null && _titleNode$textConten !== void 0 ? _titleNode$textConten : null,
|
|
89
|
+
html: (_titleNode$innerHTML$ = (_titleNode$innerHTML = titleNode.innerHTML) === null || _titleNode$innerHTML === void 0 ? void 0 : _titleNode$innerHTML.trim()) !== null && _titleNode$innerHTML$ !== void 0 ? _titleNode$innerHTML$ : null
|
|
90
|
+
}] : []), _toConsumableArray(subtitleNode ? [{
|
|
91
|
+
text: (_subtitleNode$textCon = (_subtitleNode$textCon2 = subtitleNode.textContent) === null || _subtitleNode$textCon2 === void 0 ? void 0 : _subtitleNode$textCon2.trim()) !== null && _subtitleNode$textCon !== void 0 ? _subtitleNode$textCon : null,
|
|
92
|
+
html: (_subtitleNode$innerHT = (_subtitleNode$innerHT2 = subtitleNode.innerHTML) === null || _subtitleNode$innerHT2 === void 0 ? void 0 : _subtitleNode$innerHT2.trim()) !== null && _subtitleNode$innerHT !== void 0 ? _subtitleNode$innerHT : null
|
|
93
|
+
}] : []));
|
|
94
|
+
var division = {
|
|
95
|
+
index: index,
|
|
96
|
+
eId: eId,
|
|
97
|
+
tag: tag,
|
|
98
|
+
level: level,
|
|
99
|
+
headings: headings
|
|
100
|
+
};
|
|
101
|
+
if (tag === "article") {
|
|
102
|
+
division.alineas = [];
|
|
103
|
+
}
|
|
104
|
+
return division;
|
|
105
|
+
}
|
|
106
|
+
function buildAlinea(contentNode, alineaNode) {
|
|
107
|
+
var _querySelector$textCo, _querySelector, _getAttribute, _textContent$trim, _textContent, _innerHTML$trim, _innerHTML;
|
|
108
|
+
var eId = alineaNode.getAttribute("eId");
|
|
109
|
+
var heading = {
|
|
110
|
+
text: (_querySelector$textCo = (_querySelector = alineaNode.querySelector("num")) === null || _querySelector === void 0 ? void 0 : _querySelector.textContent) !== null && _querySelector$textCo !== void 0 ? _querySelector$textCo : null
|
|
111
|
+
};
|
|
112
|
+
var pastille = (_getAttribute = alineaNode.getAttribute("data:pastille")) !== null && _getAttribute !== void 0 ? _getAttribute : null;
|
|
113
|
+
return {
|
|
114
|
+
eId: eId,
|
|
115
|
+
heading: heading,
|
|
116
|
+
text: (_textContent$trim = (_textContent = contentNode.textContent) === null || _textContent === void 0 ? void 0 : _textContent.trim()) !== null && _textContent$trim !== void 0 ? _textContent$trim : null,
|
|
117
|
+
html: (_innerHTML$trim = (_innerHTML = contentNode.innerHTML) === null || _innerHTML === void 0 ? void 0 : _innerHTML.trim()) !== null && _innerHTML$trim !== void 0 ? _innerHTML$trim : null,
|
|
118
|
+
pastille: pastille
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function buildEmptyArticle(index) {
|
|
122
|
+
return {
|
|
123
|
+
index: index,
|
|
124
|
+
eId: "",
|
|
125
|
+
tag: "article",
|
|
126
|
+
level: _texte.DivisionType["article"],
|
|
127
|
+
headings: [],
|
|
128
|
+
alineas: []
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function flattenTexte(texteContentRoot) {
|
|
132
|
+
var divisions = [];
|
|
133
|
+
var divisionIndex = 0;
|
|
134
|
+
var _iter = function iter(node) {
|
|
135
|
+
if (node.nodeName === "content") {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
switch (node.nodeName) {
|
|
139
|
+
case "tome":
|
|
140
|
+
case "part":
|
|
141
|
+
case "book":
|
|
142
|
+
case "title":
|
|
143
|
+
case "subtitle":
|
|
144
|
+
case "chapter":
|
|
145
|
+
case "section":
|
|
146
|
+
case "subsection":
|
|
147
|
+
case "paragraph":
|
|
148
|
+
case "article":
|
|
149
|
+
divisions.push(buildDivision(node, divisionIndex++));
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (node.nodeName === "alinea") {
|
|
153
|
+
Array.from(node.childNodes)
|
|
154
|
+
// Find direct content children programmatically
|
|
155
|
+
// because `:scope` selector does not work
|
|
156
|
+
// https://github.com/jsdom/jsdom/issues/2998
|
|
157
|
+
.filter(function (alineaChildNode) {
|
|
158
|
+
return alineaChildNode.nodeName === "content";
|
|
159
|
+
}).forEach(function (alineaContentNode) {
|
|
160
|
+
// Hypothesis: alineas should always be enclosed in articles
|
|
161
|
+
var lastArticle = divisions.findLast(function (division) {
|
|
162
|
+
return division.tag === "article";
|
|
163
|
+
});
|
|
164
|
+
if (!lastArticle) {
|
|
165
|
+
lastArticle = buildEmptyArticle(divisionIndex++);
|
|
166
|
+
divisions.push(lastArticle);
|
|
167
|
+
}
|
|
168
|
+
lastArticle.alineas.push(buildAlinea(alineaContentNode, node));
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
if (node.hasChildNodes()) {
|
|
172
|
+
node.childNodes.forEach(function (childNode) {
|
|
173
|
+
return _iter(childNode);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
_iter(texteContentRoot);
|
|
178
|
+
return divisions;
|
|
179
|
+
}
|
|
180
|
+
function transformTexte(document) {
|
|
181
|
+
var _metaElement$querySel, _metaElement$querySel2, _AKN_IDENTIFICATION_S, _metaElement$querySel3, _metaElement$querySel4, _metaElement$querySel5, _preambleElement$quer, _metaElement$querySel6, _metaElement$querySel7, _metaElement$querySel8, _metaElement$querySel9;
|
|
182
|
+
var metaElement = document.querySelector("meta");
|
|
183
|
+
var preambleElement = document.querySelector("preamble");
|
|
184
|
+
var identification = (_metaElement$querySel = metaElement === null || metaElement === void 0 || (_metaElement$querySel2 = metaElement.querySelector("FRBRExpression FRBRuri")) === null || _metaElement$querySel2 === void 0 ? void 0 : _metaElement$querySel2.getAttribute("value")) !== null && _metaElement$querySel !== void 0 ? _metaElement$querySel : "";
|
|
185
|
+
var identificationParts = (_AKN_IDENTIFICATION_S = _datautil.AKN_IDENTIFICATION_STRUCTURE_REGEXP.exec(identification)) === null || _AKN_IDENTIFICATION_S === void 0 ? void 0 : _AKN_IDENTIFICATION_S.groups;
|
|
186
|
+
var bodyElement = document.querySelector("body");
|
|
187
|
+
var datePresentation = metaElement === null || metaElement === void 0 || (_metaElement$querySel3 = metaElement.querySelector("FRBRdate[name='#presentation']")) === null || _metaElement$querySel3 === void 0 ? void 0 : _metaElement$querySel3.getAttribute("date");
|
|
188
|
+
var dateDepot = metaElement === null || metaElement === void 0 || (_metaElement$querySel4 = metaElement.querySelector("FRBRdate[name='#depot']")) === null || _metaElement$querySel4 === void 0 ? void 0 : _metaElement$querySel4.getAttribute("date");
|
|
189
|
+
var datePublicationXml = metaElement === null || metaElement === void 0 || (_metaElement$querySel5 = metaElement.querySelector("FRBRdate[name='#publication-xml']")) === null || _metaElement$querySel5 === void 0 ? void 0 : _metaElement$querySel5.getAttribute("date");
|
|
190
|
+
return {
|
|
191
|
+
titre: (preambleElement === null || preambleElement === void 0 || (_preambleElement$quer = preambleElement.querySelector("docTitle")) === null || _preambleElement$quer === void 0 ? void 0 : _preambleElement$quer.textContent) || null,
|
|
192
|
+
titreCourt: (metaElement === null || metaElement === void 0 || (_metaElement$querySel6 = metaElement.querySelector("FRBRalias[name='intitule-court']")) === null || _metaElement$querySel6 === void 0 ? void 0 : _metaElement$querySel6.getAttribute("value")) || null,
|
|
193
|
+
signetDossier: (metaElement === null || metaElement === void 0 || (_metaElement$querySel7 = metaElement.querySelector("FRBRalias[name='signet-dossier-legislatif-senat']")) === null || _metaElement$querySel7 === void 0 ? void 0 : _metaElement$querySel7.getAttribute("value")) || null,
|
|
194
|
+
urlDossierSenat: (metaElement === null || metaElement === void 0 || (_metaElement$querySel8 = metaElement.querySelector("FRBRalias[name='url-senat']")) === null || _metaElement$querySel8 === void 0 ? void 0 : _metaElement$querySel8.getAttribute("value")) || null,
|
|
195
|
+
urlDossierAssemblee: (metaElement === null || metaElement === void 0 || (_metaElement$querySel9 = metaElement.querySelector("FRBRalias[name='url-AN']")) === null || _metaElement$querySel9 === void 0 ? void 0 : _metaElement$querySel9.getAttribute("value")) || null,
|
|
196
|
+
type: (identificationParts === null || identificationParts === void 0 ? void 0 : identificationParts.type) || null,
|
|
197
|
+
session: (identificationParts === null || identificationParts === void 0 ? void 0 : identificationParts.session) || null,
|
|
198
|
+
numero: identificationParts !== null && identificationParts !== void 0 && identificationParts.numTexte ? parseInt(identificationParts.numTexte) : null,
|
|
199
|
+
datePresentation: datePresentation ? new Date(datePresentation) : null,
|
|
200
|
+
dateDepot: dateDepot ? new Date(dateDepot) : null,
|
|
201
|
+
datePublicationXml: datePublicationXml ? new Date(datePublicationXml) : null,
|
|
202
|
+
version: identificationParts !== null && identificationParts !== void 0 && identificationParts.version ? identificationParts.version : null,
|
|
203
|
+
workflow: metaElement ? buildWorklow(metaElement) : [],
|
|
204
|
+
divisions: bodyElement ? flattenTexte(bodyElement) : []
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
function transformExposeDesMotifs(document) {
|
|
208
|
+
var sectionElements = document.querySelectorAll("section");
|
|
209
|
+
var exposeDesMotifsRegexp = new RegExp("EXPOS.{1,2}[\\n\\s]DES[\\n\\s]MOTIFS");
|
|
210
|
+
var _iterator2 = _createForOfIteratorHelper(sectionElements),
|
|
211
|
+
_step2;
|
|
212
|
+
try {
|
|
213
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
214
|
+
var _sectionElement$textC, _sectionElement$textC2, _sectionElement$inner, _sectionElement$inner2;
|
|
215
|
+
var sectionElement = _step2.value;
|
|
216
|
+
var firstParagraph = sectionElement.querySelector("p:first-of-type");
|
|
217
|
+
var secondParagraph = sectionElement.querySelector("p:nth-of-type(2)");
|
|
218
|
+
if (!firstParagraph) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
var firstParagraphContent = firstParagraph.textContent;
|
|
222
|
+
var secondParagraphContent = secondParagraph === null || secondParagraph === void 0 ? void 0 : secondParagraph.textContent;
|
|
223
|
+
if (!firstParagraphContent || !exposeDesMotifsRegexp.test(firstParagraphContent.toUpperCase())) {
|
|
224
|
+
if (!secondParagraphContent || !exposeDesMotifsRegexp.test(secondParagraphContent.toUpperCase())) {
|
|
225
|
+
continue;
|
|
226
|
+
} else {
|
|
227
|
+
sectionElement.removeChild(secondParagraph);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
sectionElement.removeChild(firstParagraph);
|
|
231
|
+
return {
|
|
232
|
+
text: (_sectionElement$textC = (_sectionElement$textC2 = sectionElement.textContent) === null || _sectionElement$textC2 === void 0 ? void 0 : _sectionElement$textC2.trim()) !== null && _sectionElement$textC !== void 0 ? _sectionElement$textC : null,
|
|
233
|
+
html: (_sectionElement$inner = (_sectionElement$inner2 = sectionElement.innerHTML) === null || _sectionElement$inner2 === void 0 ? void 0 : _sectionElement$inner2.trim()) !== null && _sectionElement$inner !== void 0 ? _sectionElement$inner : null
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
} catch (err) {
|
|
237
|
+
_iterator2.e(err);
|
|
238
|
+
} finally {
|
|
239
|
+
_iterator2.f();
|
|
240
|
+
}
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
function parseTexte(texteXml) {
|
|
244
|
+
try {
|
|
245
|
+
var document = new _jsdom.JSDOM(texteXml, {
|
|
246
|
+
contentType: "text/xml"
|
|
247
|
+
}).window.document;
|
|
248
|
+
return transformTexte(document);
|
|
249
|
+
} catch (error) {
|
|
250
|
+
console.error("Could not parse texte with error ".concat(error));
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// Prevent from memory leak
|
|
256
|
+
// https://github.com/jsdom/jsdom/issues/2583#issuecomment-559520814
|
|
257
|
+
function parseTexteFromFile(_x) {
|
|
258
|
+
return _parseTexteFromFile.apply(this, arguments);
|
|
259
|
+
}
|
|
260
|
+
function _parseTexteFromFile() {
|
|
261
|
+
_parseTexteFromFile = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(xmlFilePath) {
|
|
262
|
+
var document;
|
|
263
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
264
|
+
while (1) switch (_context.prev = _context.next) {
|
|
265
|
+
case 0:
|
|
266
|
+
_context.prev = 0;
|
|
267
|
+
_context.next = 3;
|
|
268
|
+
return _jsdom.JSDOM.fromFile(xmlFilePath, {
|
|
269
|
+
contentType: "text/xml"
|
|
270
|
+
});
|
|
271
|
+
case 3:
|
|
272
|
+
document = _context.sent.window.document;
|
|
273
|
+
return _context.abrupt("return", transformTexte(document));
|
|
274
|
+
case 7:
|
|
275
|
+
_context.prev = 7;
|
|
276
|
+
_context.t0 = _context["catch"](0);
|
|
277
|
+
console.error("Could not parse texte with error ".concat(_context.t0));
|
|
278
|
+
case 10:
|
|
279
|
+
return _context.abrupt("return", null);
|
|
280
|
+
case 11:
|
|
281
|
+
case "end":
|
|
282
|
+
return _context.stop();
|
|
283
|
+
}
|
|
284
|
+
}, _callee, null, [[0, 7]]);
|
|
285
|
+
}));
|
|
286
|
+
return _parseTexteFromFile.apply(this, arguments);
|
|
287
|
+
}
|
|
288
|
+
function parseExposeDesMotifs(exposeDesMotifsHtml) {
|
|
289
|
+
var document = new _jsdom.JSDOM(exposeDesMotifsHtml, {
|
|
290
|
+
contentType: "text/html"
|
|
291
|
+
}).window.document;
|
|
292
|
+
return transformExposeDesMotifs(document);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// Prevent from memory leak
|
|
296
|
+
// https://github.com/jsdom/jsdom/issues/2583#issuecomment-559520814
|
|
297
|
+
function parseExposeDesMotifsFromFile(_x2) {
|
|
298
|
+
return _parseExposeDesMotifsFromFile.apply(this, arguments);
|
|
299
|
+
}
|
|
300
|
+
function _parseExposeDesMotifsFromFile() {
|
|
301
|
+
_parseExposeDesMotifsFromFile = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(htmlFilePath) {
|
|
302
|
+
var document;
|
|
303
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
304
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
305
|
+
case 0:
|
|
306
|
+
_context2.next = 2;
|
|
307
|
+
return _jsdom.JSDOM.fromFile(htmlFilePath, {
|
|
308
|
+
contentType: "text/html"
|
|
309
|
+
});
|
|
310
|
+
case 2:
|
|
311
|
+
document = _context2.sent.window.document;
|
|
312
|
+
return _context2.abrupt("return", transformExposeDesMotifs(document));
|
|
313
|
+
case 4:
|
|
314
|
+
case "end":
|
|
315
|
+
return _context2.stop();
|
|
316
|
+
}
|
|
317
|
+
}, _callee2);
|
|
318
|
+
}));
|
|
319
|
+
return _parseExposeDesMotifsFromFile.apply(this, arguments);
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanNkb20iLCJyZXF1aXJlIiwiX2RhdGF1dGlsIiwiX3RleHRlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInIiLCJ0IiwiZSIsIk9iamVjdCIsInByb3RvdHlwZSIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJTeW1ib2wiLCJpIiwiaXRlcmF0b3IiLCJhIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImFyZyIsImRlbGVnYXRlIiwiZCIsImYiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsInMiLCJ0eXBlIiwiQ29udGV4dCIsImNhbGwiLCJ3cmFwIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImwiLCJwIiwiZ2V0UHJvdG90eXBlT2YiLCJ5IiwieCIsInYiLCJnIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsIlR5cGVFcnJvciIsIm5leHQiLCJ3IiwidHJ5RW50cmllcyIsInB1c2giLCJtIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInVuc2hpZnQiLCJwb3AiLCJ2YWx1ZXMiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIl90b0NvbnN1bWFibGVBcnJheSIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9uIiwiRiIsInRvU3RyaW5nIiwidGVzdCIsImJ1aWxkV29ya2xvdyIsIm1ldGFFbGVtZW50Iiwic3RlcEVsZW1lbnRzIiwicXVlcnlTZWxlY3RvckFsbCIsInN0ZXBzIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfc3RlcEVsZW1lbnQkZ2V0QXR0cmkiLCJfQUtOX1dPUktGTE9XX0lERU5USUYiLCJfc3RlcEVsZW1lbnQkZ2V0QXR0cmkyIiwic3RlcEVsZW1lbnQiLCJpZGVudGlmaWNhdGlvbiIsImdldEF0dHJpYnV0ZSIsImlkZW50aWZpY2F0aW9uUGFydHMiLCJBS05fV09SS0ZMT1dfSURFTlRJRklDQVRJT05fU1RSVUNUVVJFX1JFR0VYUCIsImV4ZWMiLCJncm91cHMiLCJlSWQiLCJkYXRlIiwiRGF0ZSIsInNlc3Npb24iLCJudW1lcm8iLCJudW1UZXh0ZSIsInZlcnNpb24iLCJvdXRjb21lIiwiZXJyIiwiYnVpbGREaXZpc2lvbiIsIm5vZGUiLCJpbmRleCIsIl90aXRsZU5vZGUkdGV4dENvbnRlbiIsIl90aXRsZU5vZGUkdGV4dENvbnRlbjIiLCJfdGl0bGVOb2RlJGlubmVySFRNTCQiLCJfdGl0bGVOb2RlJGlubmVySFRNTCIsIl9zdWJ0aXRsZU5vZGUkdGV4dENvbiIsIl9zdWJ0aXRsZU5vZGUkdGV4dENvbjIiLCJfc3VidGl0bGVOb2RlJGlubmVySFQiLCJfc3VidGl0bGVOb2RlJGlubmVySFQyIiwidGFnIiwibm9kZU5hbWUiLCJsZXZlbCIsIkRpdmlzaW9uVHlwZSIsInRpdGxlTm9kZSIsInF1ZXJ5U2VsZWN0b3IiLCJzdWJ0aXRsZU5vZGUiLCJoZWFkaW5ncyIsImNvbmNhdCIsInRleHQiLCJ0ZXh0Q29udGVudCIsInRyaW0iLCJodG1sIiwiaW5uZXJIVE1MIiwiZGl2aXNpb24iLCJhbGluZWFzIiwiYnVpbGRBbGluZWEiLCJjb250ZW50Tm9kZSIsImFsaW5lYU5vZGUiLCJfcXVlcnlTZWxlY3RvciR0ZXh0Q28iLCJfcXVlcnlTZWxlY3RvciIsIl9nZXRBdHRyaWJ1dGUiLCJfdGV4dENvbnRlbnQkdHJpbSIsIl90ZXh0Q29udGVudCIsIl9pbm5lckhUTUwkdHJpbSIsIl9pbm5lckhUTUwiLCJoZWFkaW5nIiwicGFzdGlsbGUiLCJidWlsZEVtcHR5QXJ0aWNsZSIsImZsYXR0ZW5UZXh0ZSIsInRleHRlQ29udGVudFJvb3QiLCJkaXZpc2lvbnMiLCJkaXZpc2lvbkluZGV4IiwiaXRlciIsImNoaWxkTm9kZXMiLCJmaWx0ZXIiLCJhbGluZWFDaGlsZE5vZGUiLCJhbGluZWFDb250ZW50Tm9kZSIsImxhc3RBcnRpY2xlIiwiZmluZExhc3QiLCJoYXNDaGlsZE5vZGVzIiwiY2hpbGROb2RlIiwidHJhbnNmb3JtVGV4dGUiLCJkb2N1bWVudCIsIl9tZXRhRWxlbWVudCRxdWVyeVNlbCIsIl9tZXRhRWxlbWVudCRxdWVyeVNlbDIiLCJfQUtOX0lERU5USUZJQ0FUSU9OX1MiLCJfbWV0YUVsZW1lbnQkcXVlcnlTZWwzIiwiX21ldGFFbGVtZW50JHF1ZXJ5U2VsNCIsIl9tZXRhRWxlbWVudCRxdWVyeVNlbDUiLCJfcHJlYW1ibGVFbGVtZW50JHF1ZXIiLCJfbWV0YUVsZW1lbnQkcXVlcnlTZWw2IiwiX21ldGFFbGVtZW50JHF1ZXJ5U2VsNyIsIl9tZXRhRWxlbWVudCRxdWVyeVNlbDgiLCJfbWV0YUVsZW1lbnQkcXVlcnlTZWw5IiwicHJlYW1ibGVFbGVtZW50IiwiQUtOX0lERU5USUZJQ0FUSU9OX1NUUlVDVFVSRV9SRUdFWFAiLCJib2R5RWxlbWVudCIsImRhdGVQcmVzZW50YXRpb24iLCJkYXRlRGVwb3QiLCJkYXRlUHVibGljYXRpb25YbWwiLCJ0aXRyZSIsInRpdHJlQ291cnQiLCJzaWduZXREb3NzaWVyIiwidXJsRG9zc2llclNlbmF0IiwidXJsRG9zc2llckFzc2VtYmxlZSIsInBhcnNlSW50Iiwid29ya2Zsb3ciLCJ0cmFuc2Zvcm1FeHBvc2VEZXNNb3RpZnMiLCJzZWN0aW9uRWxlbWVudHMiLCJleHBvc2VEZXNNb3RpZnNSZWdleHAiLCJSZWdFeHAiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX3NlY3Rpb25FbGVtZW50JHRleHRDIiwiX3NlY3Rpb25FbGVtZW50JHRleHRDMiIsIl9zZWN0aW9uRWxlbWVudCRpbm5lciIsIl9zZWN0aW9uRWxlbWVudCRpbm5lcjIiLCJzZWN0aW9uRWxlbWVudCIsImZpcnN0UGFyYWdyYXBoIiwic2Vjb25kUGFyYWdyYXBoIiwiZmlyc3RQYXJhZ3JhcGhDb250ZW50Iiwic2Vjb25kUGFyYWdyYXBoQ29udGVudCIsInRvVXBwZXJDYXNlIiwicmVtb3ZlQ2hpbGQiLCJwYXJzZVRleHRlIiwidGV4dGVYbWwiLCJKU0RPTSIsImNvbnRlbnRUeXBlIiwid2luZG93IiwiZXJyb3IiLCJjb25zb2xlIiwicGFyc2VUZXh0ZUZyb21GaWxlIiwiX3giLCJfcGFyc2VUZXh0ZUZyb21GaWxlIiwiX2NhbGxlZSIsInhtbEZpbGVQYXRoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImZyb21GaWxlIiwidDAiLCJwYXJzZUV4cG9zZURlc01vdGlmcyIsImV4cG9zZURlc01vdGlmc0h0bWwiLCJwYXJzZUV4cG9zZURlc01vdGlmc0Zyb21GaWxlIiwiX3gyIiwiX3BhcnNlRXhwb3NlRGVzTW90aWZzRnJvbUZpbGUiLCJfY2FsbGVlMiIsImh0bWxGaWxlUGF0aCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC90ZXh0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU0RPTSB9IGZyb20gXCJqc2RvbVwiXG5cbmltcG9ydCB7IEFLTl9XT1JLRkxPV19JREVOVElGSUNBVElPTl9TVFJVQ1RVUkVfUkVHRVhQLCBBS05fSURFTlRJRklDQVRJT05fU1RSVUNUVVJFX1JFR0VYUCB9IGZyb20gXCIuLi9zY3JpcHRzL2RhdGF1dGlsXCJcbmltcG9ydCB7XG4gIEFsaW5lYSxcbiAgQXJ0aWNsZSxcbiAgRGl2aXNpb24sXG4gIERpdmlzaW9uQ29udGVudCxcbiAgRGl2aXNpb25UYWcsXG4gIERpdmlzaW9uVHlwZSwgRXhwb3NlRGVzTW90aWZzLFxuICBGbGF0VGV4dGUsIFN0ZXAsXG4gIFZlcnNpb24sXG59IGZyb20gXCIuLi90eXBlcy90ZXh0ZVwiXG5cbmZ1bmN0aW9uIGJ1aWxkV29ya2xvdyAobWV0YUVsZW1lbnQ6IEhUTUxNZXRhRWxlbWVudCk6IFN0ZXBbXSB7XG4gIGNvbnN0IHN0ZXBFbGVtZW50cyA9IG1ldGFFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ3b3JrZmxvdyBzdGVwXCIpXG4gIGNvbnN0IHN0ZXBzOiBTdGVwW10gPSBbXVxuICBmb3IgKGNvbnN0IHN0ZXBFbGVtZW50IG9mIHN0ZXBFbGVtZW50cykge1xuICAgIGNvbnN0IGlkZW50aWZpY2F0aW9uID0gc3RlcEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSA/PyBcIlwiXG4gICAgY29uc3QgaWRlbnRpZmljYXRpb25QYXJ0cyA9IEFLTl9XT1JLRkxPV19JREVOVElGSUNBVElPTl9TVFJVQ1RVUkVfUkVHRVhQLmV4ZWMoaWRlbnRpZmljYXRpb24pPy5ncm91cHNcbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIGVJZDogc3RlcEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZUlkXCIpISxcbiAgICAgIGRhdGU6IHN0ZXBFbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGVcIikgPyBuZXcgRGF0ZShzdGVwRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRlXCIpID8/IFwiXCIpIDogbnVsbCxcbiAgICAgIHR5cGU6IGlkZW50aWZpY2F0aW9uUGFydHM/LnR5cGUgfHwgbnVsbCxcbiAgICAgIHNlc3Npb246IGlkZW50aWZpY2F0aW9uUGFydHM/LnNlc3Npb24gfHwgbnVsbCxcbiAgICAgIG51bWVybzogaWRlbnRpZmljYXRpb25QYXJ0cz8ubnVtVGV4dGUgfHwgbnVsbCxcbiAgICAgIHZlcnNpb246IGlkZW50aWZpY2F0aW9uUGFydHM/LnZlcnNpb24gPyBpZGVudGlmaWNhdGlvblBhcnRzLnZlcnNpb24gYXMgVmVyc2lvbiA6IG51bGwsXG4gICAgICBvdXRjb21lOiBzdGVwRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJvdXRjb21lXCIpLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIHN0ZXBzXG59XG5cbmZ1bmN0aW9uIGJ1aWxkRGl2aXNpb24gKG5vZGU6IE5vZGUsIGluZGV4OiBudW1iZXIpOiBEaXZpc2lvbiB7XG4gIGNvbnN0IGVJZCA9IChub2RlIGFzIEVsZW1lbnQpLmdldEF0dHJpYnV0ZShcImVJZFwiKSFcbiAgY29uc3QgdGFnID0gbm9kZS5ub2RlTmFtZSBhcyBEaXZpc2lvblRhZ1xuICBjb25zdCBsZXZlbCA9IERpdmlzaW9uVHlwZVt0YWddXG4gIGNvbnN0IHRpdGxlTm9kZSA9IChub2RlIGFzIEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoXCJudW1cIilcbiAgY29uc3Qgc3VidGl0bGVOb2RlID0gKG5vZGUgYXMgRWxlbWVudCkucXVlcnlTZWxlY3RvcihcImhlYWRpbmdcIilcbiAgY29uc3QgaGVhZGluZ3M6IERpdmlzaW9uQ29udGVudFtdID0gW1xuICAgIC4uLih0aXRsZU5vZGUgPyBbe1xuICAgICAgdGV4dDogdGl0bGVOb2RlLnRleHRDb250ZW50Py50cmltKCkgPz8gbnVsbCxcbiAgICAgIGh0bWw6IHRpdGxlTm9kZS5pbm5lckhUTUw/LnRyaW0oKSA/PyBudWxsLFxuICAgIH1dIDogW10pLFxuICAgIC4uLihzdWJ0aXRsZU5vZGUgPyBbe1xuICAgICAgdGV4dDogc3VidGl0bGVOb2RlLnRleHRDb250ZW50Py50cmltKCkgPz8gbnVsbCxcbiAgICAgIGh0bWw6IHN1YnRpdGxlTm9kZS5pbm5lckhUTUw/LnRyaW0oKSA/PyBudWxsLFxuICAgIH1dIDogW10pLFxuICBdXG4gIGNvbnN0IGRpdmlzaW9uID0ge1xuICAgIGluZGV4LFxuICAgIGVJZCxcbiAgICB0YWcsXG4gICAgbGV2ZWwsXG4gICAgaGVhZGluZ3MsXG4gIH1cbiAgaWYgKHRhZyA9PT0gXCJhcnRpY2xlXCIpIHtcbiAgICAoZGl2aXNpb24gYXMgQXJ0aWNsZSkuYWxpbmVhcyA9IFtdXG4gIH1cbiAgcmV0dXJuIGRpdmlzaW9uXG59XG5cbmZ1bmN0aW9uIGJ1aWxkQWxpbmVhIChjb250ZW50Tm9kZTogTm9kZSwgYWxpbmVhTm9kZTogTm9kZSk6IEFsaW5lYSB7XG4gIGNvbnN0IGVJZCA9IChhbGluZWFOb2RlIGFzIEVsZW1lbnQpLmdldEF0dHJpYnV0ZShcImVJZFwiKSFcbiAgY29uc3QgaGVhZGluZyA9IHtcbiAgICB0ZXh0OiAoYWxpbmVhTm9kZSBhcyBFbGVtZW50KS5xdWVyeVNlbGVjdG9yKFwibnVtXCIpPy50ZXh0Q29udGVudCA/PyBudWxsLFxuICB9XG4gIGNvbnN0IHBhc3RpbGxlID0gKGFsaW5lYU5vZGUgYXMgRWxlbWVudCkuZ2V0QXR0cmlidXRlKFwiZGF0YTpwYXN0aWxsZVwiKSA/PyBudWxsXG4gIHJldHVybiB7XG4gICAgZUlkLFxuICAgIGhlYWRpbmcsXG4gICAgdGV4dDogKGNvbnRlbnROb2RlIGFzIEVsZW1lbnQpLnRleHRDb250ZW50Py50cmltKCkgPz8gbnVsbCxcbiAgICBodG1sOiAoY29udGVudE5vZGUgYXMgRWxlbWVudCkuaW5uZXJIVE1MPy50cmltKCkgPz8gbnVsbCxcbiAgICBwYXN0aWxsZSxcbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZEVtcHR5QXJ0aWNsZSAoaW5kZXg6IG51bWJlcik6IEFydGljbGUge1xuICByZXR1cm4ge1xuICAgIGluZGV4OiBpbmRleCxcbiAgICBlSWQ6IFwiXCIsXG4gICAgdGFnOiBcImFydGljbGVcIixcbiAgICBsZXZlbDogRGl2aXNpb25UeXBlW1wiYXJ0aWNsZVwiXSxcbiAgICBoZWFkaW5nczogW10sXG4gICAgYWxpbmVhczogW10sXG4gIH1cbn1cblxuZnVuY3Rpb24gZmxhdHRlblRleHRlICh0ZXh0ZUNvbnRlbnRSb290OiBOb2RlKTogRGl2aXNpb25bXSB7XG4gIGNvbnN0IGRpdmlzaW9uczogRGl2aXNpb25bXSA9IFtdXG4gIGxldCBkaXZpc2lvbkluZGV4ID0gMFxuICBjb25zdCBpdGVyID0gKG5vZGU6IE5vZGUpID0+IHtcbiAgICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gXCJjb250ZW50XCIpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzd2l0Y2ggKG5vZGUubm9kZU5hbWUpIHtcbiAgICAgIGNhc2UgXCJ0b21lXCI6XG4gICAgICBjYXNlIFwicGFydFwiOlxuICAgICAgY2FzZSBcImJvb2tcIjpcbiAgICAgIGNhc2UgXCJ0aXRsZVwiOlxuICAgICAgY2FzZSBcInN1YnRpdGxlXCI6XG4gICAgICBjYXNlIFwiY2hhcHRlclwiOlxuICAgICAgY2FzZSBcInNlY3Rpb25cIjpcbiAgICAgIGNhc2UgXCJzdWJzZWN0aW9uXCI6XG4gICAgICBjYXNlIFwicGFyYWdyYXBoXCI6XG4gICAgICBjYXNlIFwiYXJ0aWNsZVwiOlxuICAgICAgICBkaXZpc2lvbnMucHVzaChidWlsZERpdmlzaW9uKG5vZGUsIGRpdmlzaW9uSW5kZXgrKykpXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICAgIGlmIChub2RlLm5vZGVOYW1lID09PSBcImFsaW5lYVwiKSB7XG4gICAgICBBcnJheS5mcm9tKG5vZGUuY2hpbGROb2RlcylcbiAgICAgICAgLy8gRmluZCBkaXJlY3QgY29udGVudCBjaGlsZHJlbiBwcm9ncmFtbWF0aWNhbGx5XG4gICAgICAgIC8vIGJlY2F1c2UgYDpzY29wZWAgc2VsZWN0b3IgZG9lcyBub3Qgd29ya1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vanNkb20vanNkb20vaXNzdWVzLzI5OThcbiAgICAgICAgLmZpbHRlcigoYWxpbmVhQ2hpbGROb2RlOiBOb2RlKSA9PiBhbGluZWFDaGlsZE5vZGUubm9kZU5hbWUgPT09IFwiY29udGVudFwiKVxuICAgICAgICAuZm9yRWFjaCgoYWxpbmVhQ29udGVudE5vZGU6IE5vZGUpID0+IHtcbiAgICAgICAgICAvLyBIeXBvdGhlc2lzOiBhbGluZWFzIHNob3VsZCBhbHdheXMgYmUgZW5jbG9zZWQgaW4gYXJ0aWNsZXNcbiAgICAgICAgICBsZXQgbGFzdEFydGljbGUgPSBkaXZpc2lvbnMuZmluZExhc3QoZGl2aXNpb24gPT4gZGl2aXNpb24udGFnID09PSBcImFydGljbGVcIikgYXMgQXJ0aWNsZVxuICAgICAgICAgIGlmICghbGFzdEFydGljbGUpIHtcbiAgICAgICAgICAgIGxhc3RBcnRpY2xlID0gYnVpbGRFbXB0eUFydGljbGUoZGl2aXNpb25JbmRleCsrKVxuICAgICAgICAgICAgZGl2aXNpb25zLnB1c2gobGFzdEFydGljbGUpXG4gICAgICAgICAgfVxuICAgICAgICAgIGxhc3RBcnRpY2xlLmFsaW5lYXMucHVzaChidWlsZEFsaW5lYShhbGluZWFDb250ZW50Tm9kZSwgbm9kZSkpXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGlmIChub2RlLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgICAgbm9kZS5jaGlsZE5vZGVzLmZvckVhY2goKGNoaWxkTm9kZTogTm9kZSkgPT4gaXRlcihjaGlsZE5vZGUpKVxuICAgIH1cbiAgfVxuICBpdGVyKHRleHRlQ29udGVudFJvb3QpXG4gIHJldHVybiBkaXZpc2lvbnNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVRleHRlIChkb2N1bWVudDogRG9jdW1lbnQpOiBGbGF0VGV4dGUgfCBudWxsIHtcbiAgY29uc3QgbWV0YUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibWV0YVwiKVxuICBjb25zdCBwcmVhbWJsZUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwicHJlYW1ibGVcIilcbiAgY29uc3QgaWRlbnRpZmljYXRpb24gPSBtZXRhRWxlbWVudD8ucXVlcnlTZWxlY3RvcihcIkZSQlJFeHByZXNzaW9uIEZSQlJ1cmlcIik/LmdldEF0dHJpYnV0ZShcInZhbHVlXCIpID8/IFwiXCJcbiAgY29uc3QgaWRlbnRpZmljYXRpb25QYXJ0cyA9IEFLTl9JREVOVElGSUNBVElPTl9TVFJVQ1RVUkVfUkVHRVhQLmV4ZWMoaWRlbnRpZmljYXRpb24pPy5ncm91cHNcbiAgY29uc3QgYm9keUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiYm9keVwiKVxuICBjb25zdCBkYXRlUHJlc2VudGF0aW9uID0gbWV0YUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXCJGUkJSZGF0ZVtuYW1lPScjcHJlc2VudGF0aW9uJ11cIik/LmdldEF0dHJpYnV0ZShcImRhdGVcIilcbiAgY29uc3QgZGF0ZURlcG90ID0gbWV0YUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXCJGUkJSZGF0ZVtuYW1lPScjZGVwb3QnXVwiKT8uZ2V0QXR0cmlidXRlKFwiZGF0ZVwiKVxuICBjb25zdCBkYXRlUHVibGljYXRpb25YbWwgPSBtZXRhRWxlbWVudD8ucXVlcnlTZWxlY3RvcihcIkZSQlJkYXRlW25hbWU9JyNwdWJsaWNhdGlvbi14bWwnXVwiKT8uZ2V0QXR0cmlidXRlKFwiZGF0ZVwiKVxuICByZXR1cm4ge1xuICAgIHRpdHJlOiBwcmVhbWJsZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXCJkb2NUaXRsZVwiKT8udGV4dENvbnRlbnQgfHwgbnVsbCxcbiAgICB0aXRyZUNvdXJ0OiBtZXRhRWxlbWVudD8ucXVlcnlTZWxlY3RvcihcIkZSQlJhbGlhc1tuYW1lPSdpbnRpdHVsZS1jb3VydCddXCIpXG4gICAgICA/LmdldEF0dHJpYnV0ZShcInZhbHVlXCIpIHx8IG51bGwsXG4gICAgc2lnbmV0RG9zc2llcjpcbiAgICAgIG1ldGFFbGVtZW50Py5xdWVyeVNlbGVjdG9yKFwiRlJCUmFsaWFzW25hbWU9J3NpZ25ldC1kb3NzaWVyLWxlZ2lzbGF0aWYtc2VuYXQnXVwiKVxuICAgICAgICA/LmdldEF0dHJpYnV0ZShcInZhbHVlXCIpIHx8IG51bGwsXG4gICAgdXJsRG9zc2llclNlbmF0OiBtZXRhRWxlbWVudD8ucXVlcnlTZWxlY3RvcihcIkZSQlJhbGlhc1tuYW1lPSd1cmwtc2VuYXQnXVwiKT8uZ2V0QXR0cmlidXRlKFwidmFsdWVcIikgfHwgbnVsbCxcbiAgICB1cmxEb3NzaWVyQXNzZW1ibGVlOiBtZXRhRWxlbWVudD8ucXVlcnlTZWxlY3RvcihcIkZSQlJhbGlhc1tuYW1lPSd1cmwtQU4nXVwiKT8uZ2V0QXR0cmlidXRlKFwidmFsdWVcIikgfHwgbnVsbCxcbiAgICB0eXBlOiBpZGVudGlmaWNhdGlvblBhcnRzPy50eXBlIHx8IG51bGwsXG4gICAgc2Vzc2lvbjogaWRlbnRpZmljYXRpb25QYXJ0cz8uc2Vzc2lvbiB8fCBudWxsLFxuICAgIG51bWVybzogaWRlbnRpZmljYXRpb25QYXJ0cz8ubnVtVGV4dGUgPyBwYXJzZUludChpZGVudGlmaWNhdGlvblBhcnRzLm51bVRleHRlKSA6IG51bGwsXG4gICAgZGF0ZVByZXNlbnRhdGlvbjogZGF0ZVByZXNlbnRhdGlvbiA/IG5ldyBEYXRlKGRhdGVQcmVzZW50YXRpb24pIDogbnVsbCxcbiAgICBkYXRlRGVwb3Q6IGRhdGVEZXBvdCA/IG5ldyBEYXRlKGRhdGVEZXBvdCkgOiBudWxsLFxuICAgIGRhdGVQdWJsaWNhdGlvblhtbDogZGF0ZVB1YmxpY2F0aW9uWG1sID8gbmV3IERhdGUoZGF0ZVB1YmxpY2F0aW9uWG1sKSA6IG51bGwsXG4gICAgdmVyc2lvbjogaWRlbnRpZmljYXRpb25QYXJ0cz8udmVyc2lvbiA/IGlkZW50aWZpY2F0aW9uUGFydHMudmVyc2lvbiBhcyBWZXJzaW9uIDogbnVsbCxcbiAgICB3b3JrZmxvdzogbWV0YUVsZW1lbnQgPyBidWlsZFdvcmtsb3cobWV0YUVsZW1lbnQpIDogW10sXG4gICAgZGl2aXNpb25zOiBib2R5RWxlbWVudCA/IGZsYXR0ZW5UZXh0ZShib2R5RWxlbWVudCkgOiBbXSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRXhwb3NlRGVzTW90aWZzIChkb2N1bWVudDogRG9jdW1lbnQpOiBFeHBvc2VEZXNNb3RpZnMgfCBudWxsIHtcbiAgY29uc3Qgc2VjdGlvbkVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInNlY3Rpb25cIilcbiAgY29uc3QgZXhwb3NlRGVzTW90aWZzUmVnZXhwID0gbmV3IFJlZ0V4cChcIkVYUE9TLnsxLDJ9W1xcXFxuXFxcXHNdREVTW1xcXFxuXFxcXHNdTU9USUZTXCIpXG4gIGZvciAoY29uc3Qgc2VjdGlvbkVsZW1lbnQgb2Ygc2VjdGlvbkVsZW1lbnRzKSB7XG4gICAgY29uc3QgZmlyc3RQYXJhZ3JhcGggPSBzZWN0aW9uRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwicDpmaXJzdC1vZi10eXBlXCIpXG4gICAgY29uc3Qgc2Vjb25kUGFyYWdyYXBoID0gc2VjdGlvbkVsZW1lbnQucXVlcnlTZWxlY3RvcihcInA6bnRoLW9mLXR5cGUoMilcIilcbiAgICBpZiAoIWZpcnN0UGFyYWdyYXBoKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0UGFyYWdyYXBoQ29udGVudCA9IGZpcnN0UGFyYWdyYXBoLnRleHRDb250ZW50XG4gICAgY29uc3Qgc2Vjb25kUGFyYWdyYXBoQ29udGVudCA9IHNlY29uZFBhcmFncmFwaD8udGV4dENvbnRlbnRcbiAgICBpZiAoIWZpcnN0UGFyYWdyYXBoQ29udGVudCB8fCAhZXhwb3NlRGVzTW90aWZzUmVnZXhwLnRlc3QoZmlyc3RQYXJhZ3JhcGhDb250ZW50LnRvVXBwZXJDYXNlKCkpKSB7XG4gICAgICBpZiAoIXNlY29uZFBhcmFncmFwaENvbnRlbnQgfHwgIWV4cG9zZURlc01vdGlmc1JlZ2V4cC50ZXN0KHNlY29uZFBhcmFncmFwaENvbnRlbnQudG9VcHBlckNhc2UoKSkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlY3Rpb25FbGVtZW50LnJlbW92ZUNoaWxkKHNlY29uZFBhcmFncmFwaClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZWN0aW9uRWxlbWVudC5yZW1vdmVDaGlsZChmaXJzdFBhcmFncmFwaClcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogc2VjdGlvbkVsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKSA/PyBudWxsLFxuICAgICAgaHRtbDogc2VjdGlvbkVsZW1lbnQuaW5uZXJIVE1MPy50cmltKCkgPz8gbnVsbCxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGV4dGUgKHRleHRlWG1sOiBzdHJpbmcpOiBGbGF0VGV4dGUgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRvY3VtZW50IH0gPSAobmV3IEpTRE9NKHRleHRlWG1sLCB7XG4gICAgICBjb250ZW50VHlwZTogXCJ0ZXh0L3htbFwiLFxuICAgIH0pKS53aW5kb3dcbiAgICByZXR1cm4gdHJhbnNmb3JtVGV4dGUoZG9jdW1lbnQpXG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgcGFyc2UgdGV4dGUgd2l0aCBlcnJvciAke2Vycm9yfWApXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuLy8gUHJldmVudCBmcm9tIG1lbW9yeSBsZWFrXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanNkb20vanNkb20vaXNzdWVzLzI1ODMjaXNzdWVjb21tZW50LTU1OTUyMDgxNFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlVGV4dGVGcm9tRmlsZSAoeG1sRmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8RmxhdFRleHRlIHwgbnVsbD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHsgZG9jdW1lbnQgfSA9IChhd2FpdCBKU0RPTS5mcm9tRmlsZSh4bWxGaWxlUGF0aCwgeyBjb250ZW50VHlwZTogXCJ0ZXh0L3htbFwiIH0pKS53aW5kb3dcbiAgICByZXR1cm4gdHJhbnNmb3JtVGV4dGUoZG9jdW1lbnQpXG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgcGFyc2UgdGV4dGUgd2l0aCBlcnJvciAke2Vycm9yfWApXG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRXhwb3NlRGVzTW90aWZzIChleHBvc2VEZXNNb3RpZnNIdG1sOiBzdHJpbmcpOiBFeHBvc2VEZXNNb3RpZnMgfCBudWxsIHtcbiAgY29uc3QgeyBkb2N1bWVudCB9ID0gKG5ldyBKU0RPTShleHBvc2VEZXNNb3RpZnNIdG1sLCB7XG4gICAgY29udGVudFR5cGU6IFwidGV4dC9odG1sXCIsXG4gIH0pKS53aW5kb3dcbiAgcmV0dXJuIHRyYW5zZm9ybUV4cG9zZURlc01vdGlmcyhkb2N1bWVudClcbn1cblxuLy8gUHJldmVudCBmcm9tIG1lbW9yeSBsZWFrXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanNkb20vanNkb20vaXNzdWVzLzI1ODMjaXNzdWVjb21tZW50LTU1OTUyMDgxNFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlRXhwb3NlRGVzTW90aWZzRnJvbUZpbGUgKGh0bWxGaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxFeHBvc2VEZXNNb3RpZnMgfCBudWxsPiB7XG4gIGNvbnN0IHsgZG9jdW1lbnQgfSA9IChhd2FpdCBKU0RPTS5mcm9tRmlsZShodG1sRmlsZVBhdGgsIHsgY29udGVudFR5cGU6IFwidGV4dC9odG1sXCIgfSkpLndpbmRvd1xuICByZXR1cm4gdHJhbnNmb3JtRXhwb3NlRGVzTW90aWZzKGRvY3VtZW50KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFD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
|