@tricoteuses/senat 1.1.2 → 1.3.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.
Files changed (155) hide show
  1. package/README.md +53 -15
  2. package/lib/config.d.ts +1 -0
  3. package/lib/config.js +14 -45
  4. package/lib/databases.d.ts +9 -0
  5. package/lib/databases.js +90 -117
  6. package/lib/datasets.js +78 -83
  7. package/lib/index.d.ts +8 -7
  8. package/lib/index.js +42 -523
  9. package/lib/legislatures.json +38 -0
  10. package/lib/loaders.d.ts +64 -0
  11. package/lib/loaders.js +177 -0
  12. package/lib/model/ameli.d.ts +105 -4
  13. package/lib/model/ameli.js +88 -166
  14. package/lib/model/debats.d.ts +0 -4
  15. package/lib/model/debats.js +0 -122
  16. package/lib/model/dosleg.d.ts +227 -29
  17. package/lib/model/dosleg.js +205 -839
  18. package/lib/model/index.d.ts +4 -5
  19. package/lib/model/index.js +12 -47
  20. package/lib/model/questions.d.ts +88 -2
  21. package/lib/model/questions.js +75 -51
  22. package/lib/model/sens.d.ts +524 -2
  23. package/lib/model/sens.js +449 -56
  24. package/lib/model/texte.d.ts +7 -0
  25. package/lib/model/texte.js +251 -0
  26. package/lib/model/util.d.ts +7 -1
  27. package/lib/model/util.js +26 -59
  28. package/lib/raw_types/ameli.d.ts +912 -538
  29. package/lib/raw_types/ameli.js +3 -42
  30. package/lib/raw_types/debats.d.ts +204 -124
  31. package/lib/raw_types/debats.js +3 -21
  32. package/lib/raw_types/dosleg.d.ts +3533 -2024
  33. package/lib/raw_types/dosleg.js +3 -95
  34. package/lib/raw_types/questions.d.ts +404 -220
  35. package/lib/raw_types/questions.js +3 -21
  36. package/lib/raw_types/sens.d.ts +4391 -2706
  37. package/lib/raw_types/sens.js +3 -111
  38. package/lib/raw_types_schemats/ameli.d.ts +541 -0
  39. package/lib/raw_types_schemats/ameli.js +3 -0
  40. package/lib/raw_types_schemats/debats.d.ts +127 -0
  41. package/lib/raw_types_schemats/debats.js +3 -0
  42. package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
  43. package/lib/raw_types_schemats/dosleg.js +3 -0
  44. package/lib/raw_types_schemats/questions.d.ts +233 -0
  45. package/lib/raw_types_schemats/questions.js +3 -0
  46. package/lib/raw_types_schemats/sens.d.ts +2709 -0
  47. package/lib/raw_types_schemats/sens.js +3 -0
  48. package/lib/scripts/convert_data.js +184 -275
  49. package/lib/scripts/datautil.d.ts +5 -0
  50. package/lib/scripts/datautil.js +21 -0
  51. package/lib/scripts/parse_textes.js +49 -0
  52. package/lib/scripts/retrieve_documents.js +255 -0
  53. package/lib/scripts/retrieve_open_data.js +211 -360
  54. package/lib/scripts/retrieve_senateurs_photos.js +144 -257
  55. package/lib/scripts/shared/cli_helpers.d.ts +44 -0
  56. package/lib/scripts/shared/cli_helpers.js +35 -0
  57. package/lib/scripts/shared/util.d.ts +3 -0
  58. package/lib/scripts/shared/util.js +36 -0
  59. package/lib/strings.js +20 -45
  60. package/lib/types/ameli.d.ts +2 -2
  61. package/lib/types/ameli.js +14 -25
  62. package/lib/types/debats.d.ts +2 -2
  63. package/lib/types/debats.js +3 -21
  64. package/lib/types/dosleg.d.ts +3 -3
  65. package/lib/types/dosleg.js +152 -119
  66. package/lib/types/questions.d.ts +2 -2
  67. package/lib/types/questions.js +1 -13
  68. package/lib/types/sens.d.ts +2 -4
  69. package/lib/types/sens.js +1 -16
  70. package/lib/types/sessions.d.ts +42 -0
  71. package/lib/types/sessions.js +46 -0
  72. package/lib/types/texte.d.ts +65 -0
  73. package/lib/types/texte.js +19 -0
  74. package/lib/validators/config.js +47 -111
  75. package/lib/validators/senat.js +1 -5
  76. package/package.json +35 -32
  77. package/lib/aggregates.d.ts +0 -54
  78. package/lib/aggregates.js +0 -1122
  79. package/lib/aggregates.mjs +0 -802
  80. package/lib/aggregates.ts +0 -947
  81. package/lib/config.mjs +0 -16
  82. package/lib/config.ts +0 -26
  83. package/lib/databases.mjs +0 -26
  84. package/lib/databases.ts +0 -32
  85. package/lib/datasets.mjs +0 -78
  86. package/lib/datasets.ts +0 -118
  87. package/lib/fields.d.ts +0 -10
  88. package/lib/fields.js +0 -68
  89. package/lib/fields.mjs +0 -22
  90. package/lib/fields.ts +0 -29
  91. package/lib/index.mjs +0 -7
  92. package/lib/index.ts +0 -63
  93. package/lib/inserters.d.ts +0 -102
  94. package/lib/inserters.js +0 -518
  95. package/lib/inserters.mjs +0 -376
  96. package/lib/inserters.ts +0 -545
  97. package/lib/model/ameli.mjs +0 -57
  98. package/lib/model/ameli.ts +0 -86
  99. package/lib/model/debats.mjs +0 -43
  100. package/lib/model/debats.ts +0 -68
  101. package/lib/model/dosleg.mjs +0 -337
  102. package/lib/model/dosleg.ts +0 -558
  103. package/lib/model/index.mjs +0 -5
  104. package/lib/model/index.ts +0 -11
  105. package/lib/model/questions.mjs +0 -8
  106. package/lib/model/questions.ts +0 -14
  107. package/lib/model/sens.mjs +0 -9
  108. package/lib/model/sens.ts +0 -18
  109. package/lib/model/util.mjs +0 -10
  110. package/lib/model/util.ts +0 -16
  111. package/lib/raw_types/ameli.mjs +0 -2
  112. package/lib/raw_types/ameli.ts +0 -601
  113. package/lib/raw_types/debats.mjs +0 -2
  114. package/lib/raw_types/debats.ts +0 -145
  115. package/lib/raw_types/dosleg.mjs +0 -2
  116. package/lib/raw_types/dosleg.ts +0 -2193
  117. package/lib/raw_types/questions.mjs +0 -2
  118. package/lib/raw_types/questions.ts +0 -249
  119. package/lib/raw_types/sens.mjs +0 -2
  120. package/lib/raw_types/sens.ts +0 -2907
  121. package/lib/scripts/convert_data.mjs +0 -146
  122. package/lib/scripts/convert_data.ts +0 -182
  123. package/lib/scripts/fix_db.js +0 -144
  124. package/lib/scripts/fix_db.mjs +0 -64
  125. package/lib/scripts/fix_db.ts +0 -75
  126. package/lib/scripts/images/transparent_150x192.jpg +0 -0
  127. package/lib/scripts/images/transparent_155x225.jpg +0 -0
  128. package/lib/scripts/retrieve_open_data.mjs +0 -218
  129. package/lib/scripts/retrieve_open_data.ts +0 -258
  130. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -164
  131. package/lib/scripts/retrieve_senateurs_photos.ts +0 -200
  132. package/lib/scripts/retrieve_textes.js +0 -179
  133. package/lib/scripts/retrieve_textes.mjs +0 -77
  134. package/lib/scripts/retrieve_textes.ts +0 -95
  135. package/lib/strings.mjs +0 -18
  136. package/lib/strings.ts +0 -26
  137. package/lib/types/ameli.mjs +0 -13
  138. package/lib/types/ameli.ts +0 -21
  139. package/lib/types/debats.mjs +0 -2
  140. package/lib/types/debats.ts +0 -6
  141. package/lib/types/dosleg.mjs +0 -151
  142. package/lib/types/dosleg.ts +0 -284
  143. package/lib/types/questions.mjs +0 -1
  144. package/lib/types/questions.ts +0 -3
  145. package/lib/types/sens.mjs +0 -23
  146. package/lib/types/sens.ts +0 -36
  147. package/lib/typings/windows-1252.d.js +0 -2
  148. package/lib/typings/windows-1252.d.mjs +0 -2
  149. package/lib/typings/windows-1252.d.ts +0 -11
  150. package/lib/validators/config.mjs +0 -54
  151. package/lib/validators/config.ts +0 -79
  152. package/lib/validators/senat.mjs +0 -24
  153. package/lib/validators/senat.ts +0 -26
  154. /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
  155. /package/lib/scripts/{retrieve_textes.d.ts → retrieve_documents.d.ts} +0 -0
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,284 +1,193 @@
1
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.async-iterator.js");
7
- require("core-js/modules/es.symbol.iterator.js");
8
- require("core-js/modules/es.symbol.replace.js");
9
- require("core-js/modules/es.symbol.to-string-tag.js");
10
- require("core-js/modules/es.array.for-each.js");
11
- require("core-js/modules/es.array.from.js");
12
- require("core-js/modules/es.array.is-array.js");
13
- require("core-js/modules/es.array.reduce.js");
14
- require("core-js/modules/es.array.reverse.js");
15
- require("core-js/modules/es.array.slice.js");
16
- require("core-js/modules/es.date.to-string.js");
17
- require("core-js/modules/es.function.name.js");
18
- require("core-js/modules/es.json.to-string-tag.js");
19
- require("core-js/modules/es.math.to-string-tag.js");
20
- require("core-js/modules/es.object.create.js");
21
- require("core-js/modules/es.object.define-property.js");
22
- require("core-js/modules/es.object.get-prototype-of.js");
23
- require("core-js/modules/es.object.keys.js");
24
- require("core-js/modules/es.promise.js");
25
- require("core-js/modules/es.regexp.constructor.js");
26
- require("core-js/modules/es.regexp.to-string.js");
27
- require("core-js/modules/es.string.replace.js");
28
- require("core-js/modules/es.weak-map.js");
29
- require("core-js/modules/web.dom-collections.for-each.js");
30
- require("core-js/modules/es.array.iterator.js");
31
- require("core-js/modules/es.array.join.js");
32
- require("core-js/modules/es.function.bind.js");
33
- require("core-js/modules/es.object.set-prototype-of.js");
34
- require("core-js/modules/es.object.to-string.js");
35
- require("core-js/modules/es.regexp.exec.js");
36
- require("core-js/modules/es.set.js");
37
- require("core-js/modules/es.string.iterator.js");
38
- require("core-js/modules/web.dom-collections.iterator.js");
39
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
40
- var _path = _interopRequireDefault(require("path"));
41
- var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
42
- var _datasets = require("../datasets");
43
- var _model = require("../model");
44
- var _inserters = require("../inserters");
45
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
46
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { 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 && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
47
- 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; } } }; }
48
- 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; } }
49
- 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; }
50
- 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); }
51
- 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); }); }; }
52
- function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
53
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
54
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
55
- var optionsDefinitions = [{
56
- alias: 'k',
57
- defaultValue: ['All'],
58
- help: 'categories of datasets to reorganize',
59
- multiple: true,
60
- name: 'categories',
61
- type: String
62
- }, {
63
- alias: 's',
64
- help: 'don\'t log anything',
65
- name: 'silent',
66
- type: Boolean
67
- }, {
68
- alias: "v",
69
- help: "verbose logs",
70
- name: "verbose",
71
- type: Boolean
72
- }, {
73
- defaultOption: true,
74
- help: 'directory containing Sénat open data files',
75
- name: 'dataDir',
76
- type: String
77
- }];
78
- var options = (0, _commandLineArgs["default"])(optionsDefinitions);
79
- var SIGNET_STRUCTURE_REGEXP = /*#__PURE__*/_wrapRegExp(/^([a-z]+)(\d{2,4})-?(\d+)?/, {
80
- type: 1,
81
- session: 2,
82
- numTexte: 3
83
- });
84
- function ensureAndClearDir(path) {
85
- if (!_fsExtra["default"].existsSync(path)) {
86
- _fsExtra["default"].mkdirSync(path);
87
- } else {
88
- _fsExtra["default"].emptyDirSync(path);
89
- }
90
- }
91
- function convertData() {
92
- return _convertData.apply(this, arguments);
93
- }
94
- function _convertData() {
95
- _convertData = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
96
- var enabledDatasets, dataDir, dataset, lois, aggregator, _iterator, _step, loi, allData, loiReorganizedRootDir, _iterator2, _step2, _loi, loiFileName, loiReorganizedDir, _SIGNET_STRUCTURE_REG, signetParts, session, _dataset, questions, _aggregator, _iterator3, _step3, question, _allData, questionReorganizedRootDir, _iterator4, _step4, _question, legislature, questionReorganizedDir, questionFileName, _dataset2, sens, _aggregator2, _iterator5, _step5, sen, _allData2, senReorganizedRootDir, _iterator6, _step6, _sen, senFileName;
97
- return _regeneratorRuntime().wrap(function _callee$(_context) {
98
- while (1) switch (_context.prev = _context.next) {
99
- case 0:
100
- enabledDatasets = (0, _datasets.getEnabledDatasets)(options.categories);
101
- dataDir = options.dataDir;
102
- if (!(enabledDatasets & _datasets.EnabledDatasets.DosLeg)) {
103
- _context.next = 20;
104
- break;
105
- }
106
- dataset = _datasets.datasets.dosleg;
107
- if (!options.silent) {
108
- console.log("Converting database ".concat(dataset.database, " data into files\u2026"));
109
- }
110
- _context.next = 7;
111
- return (0, _model.getAllLois)();
112
- case 7:
113
- lois = _context.sent;
114
- aggregator = new _model.Aggregator(new Set(_model.allFollows));
115
- _iterator = _createForOfIteratorHelper(lois);
116
- try {
117
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
118
- loi = _step.value;
119
- aggregator.addLoi(loi);
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const command_line_args_1 = __importDefault(require("command-line-args"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const datasets_1 = require("../datasets");
11
+ const loaders_1 = require("../loaders");
12
+ const model_1 = require("../model");
13
+ const dosleg_1 = require("../model/dosleg");
14
+ const datautil_1 = require("./datautil");
15
+ const cli_helpers_1 = require("./shared/cli_helpers");
16
+ const util_1 = require("./shared/util");
17
+ const optionsDefinitions = [...cli_helpers_1.commonOptions];
18
+ const options = (0, command_line_args_1.default)(optionsDefinitions);
19
+ const SENAT_TEXTE_XML_BASE_URL = "https://www.senat.fr/akomantoso/";
20
+ const SENAT_TEXTE_BASE_URL = "https://www.senat.fr/leg/";
21
+ const SENAT_EXPOSE_DES_MOTIFS_BASE_URL = "https://www.senat.fr/leg/exposes-des-motifs/";
22
+ const SENAT_RAPPORT_BASE_URL = "https://www.senat.fr/rap/";
23
+ async function convertData() {
24
+ const enabledDatasets = (0, datasets_1.getEnabledDatasets)(options["categories"]);
25
+ const dataDir = options["dataDir"];
26
+ (0, assert_1.default)(dataDir, "Missing argument: data directory");
27
+ console.time("data transformation time");
28
+ if (enabledDatasets & datasets_1.EnabledDatasets.Ameli) {
29
+ const dataset = datasets_1.datasets.ameli;
30
+ if (!options["silent"]) {
31
+ console.log(`Converting database ${dataset.database} data into files…`);
32
+ }
33
+ const ameliReorganizedRootDir = path_1.default.join(dataDir, dataset.database);
34
+ (0, util_1.ensureAndClearDir)(ameliReorganizedRootDir);
35
+ for await (const amendement of (0, model_1.findAllAmendements)()) {
36
+ if (options["verbose"]) {
37
+ console.log(`Converting ${amendement.numero} file…`);
120
38
  }
121
- } catch (err) {
122
- _iterator.e(err);
123
- } finally {
124
- _iterator.f();
125
- }
126
- if (options.verbose) {
127
- console.log("Starting getting all the data…");
128
- console.time("get all data");
129
- }
130
- _context.next = 14;
131
- return aggregator.getAll();
132
- case 14:
133
- if (options.verbose) {
134
- console.timeEnd("get all data");
135
- }
136
- allData = aggregator.toJson();
137
- loiReorganizedRootDir = _path["default"].join(dataDir, dataset.database);
138
- ensureAndClearDir(loiReorganizedRootDir);
139
- _iterator2 = _createForOfIteratorHelper(lois);
140
- try {
141
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
142
- _loi = _step2.value;
143
- if (options.verbose) {
144
- console.log("Converting ".concat(_loi.signet, " file\u2026"));
145
- }
146
- (0, _inserters.insertLoiReferences)(_loi, allData, {});
147
- loiFileName = "".concat(_loi.loicod, ".json");
148
- loiReorganizedDir = _path["default"].join(loiReorganizedRootDir, _loi.typloicod);
149
- if (_loi.signet) {
150
- loiFileName = "".concat(_loi.signet, ".json");
151
- signetParts = (_SIGNET_STRUCTURE_REG = SIGNET_STRUCTURE_REGEXP.exec(_loi.signet)) === null || _SIGNET_STRUCTURE_REG === void 0 ? void 0 : _SIGNET_STRUCTURE_REG.groups;
152
- if (signetParts) {
153
- session = signetParts.session;
154
- loiReorganizedDir = _path["default"].join(loiReorganizedDir, session);
155
- } else {
156
- loiReorganizedDir = _path["default"].join(loiReorganizedDir, "non defini");
157
- }
158
- _fsExtra["default"].ensureDirSync(loiReorganizedDir);
159
- }
160
- _fsExtra["default"].writeJSONSync(_path["default"].join(loiReorganizedDir, loiFileName), _loi, {
161
- spaces: 2
162
- });
39
+ const session = String(amendement.session) || datautil_1.UNDEFINED_SESSION;
40
+ const signetDossierLegislatif = amendement.signet_dossier_legislatif ||
41
+ `${amendement.nature_texte}-${amendement.numero_texte}`.toLowerCase();
42
+ const ameliReorganizedDir = path_1.default.join(ameliReorganizedRootDir, session, signetDossierLegislatif);
43
+ fs_extra_1.default.ensureDirSync(ameliReorganizedDir);
44
+ const amendementFileName = `${amendement.numero}.json`;
45
+ fs_extra_1.default.writeJSONSync(path_1.default.join(ameliReorganizedDir, amendementFileName), amendement, { spaces: 2 });
46
+ }
47
+ }
48
+ if (enabledDatasets & datasets_1.EnabledDatasets.DosLeg) {
49
+ const dataset = datasets_1.datasets.dosleg;
50
+ if (!options["silent"]) {
51
+ console.log(`Converting database ${dataset.database} data into files…`);
52
+ }
53
+ const doslegReorganizedRootDir = path_1.default.join(dataDir, dataset.database);
54
+ const dossiersReorganizedDir = path_1.default.join(doslegReorganizedRootDir, loaders_1.DOSLEG_DOSSIERS_FOLDER);
55
+ (0, util_1.ensureAndClearDir)(doslegReorganizedRootDir);
56
+ (0, util_1.ensureAndClearDir)(dossiersReorganizedDir);
57
+ for await (const loi of (0, model_1.findAllLois)()) {
58
+ if (options["verbose"]) {
59
+ console.log(`Converting ${loi.signet} file…`);
163
60
  }
164
- } catch (err) {
165
- _iterator2.e(err);
166
- } finally {
167
- _iterator2.f();
168
- }
169
- case 20:
170
- if (!(enabledDatasets & _datasets.EnabledDatasets.Questions)) {
171
- _context.next = 36;
172
- break;
173
- }
174
- _dataset = _datasets.datasets.questions;
175
- if (!options.silent) {
176
- console.log("Converting database ".concat(_dataset.database, " data into files\u2026"));
177
- }
178
- _context.next = 25;
179
- return (0, _model.getAllQuestions)();
180
- case 25:
181
- questions = _context.sent;
182
- _aggregator = new _model.Aggregator(new Set(_model.allFollows));
183
- _iterator3 = _createForOfIteratorHelper(questions);
184
- try {
185
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
186
- question = _step3.value;
187
- _aggregator.addQuestion(question);
61
+ let loiReorganizedDir = path_1.default.join(dossiersReorganizedDir, datautil_1.UNDEFINED_SESSION);
62
+ const signetParts = datautil_1.SIGNET_STRUCTURE_REGEXP.exec(loi.signet)?.groups;
63
+ if (signetParts && "session" in signetParts) {
64
+ const { session } = signetParts;
65
+ const formattedSession = (0, datautil_1.formatToFourDigitSession)(session);
66
+ loiReorganizedDir = path_1.default.join(dossiersReorganizedDir, formattedSession);
188
67
  }
189
- } catch (err) {
190
- _iterator3.e(err);
191
- } finally {
192
- _iterator3.f();
193
- }
194
- _context.next = 31;
195
- return _aggregator.getAll();
196
- case 31:
197
- _allData = _aggregator.toJson();
198
- questionReorganizedRootDir = _path["default"].join(dataDir, _dataset.database);
199
- ensureAndClearDir(questionReorganizedRootDir);
200
- _iterator4 = _createForOfIteratorHelper(questions);
201
- try {
202
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
203
- _question = _step4.value;
204
- if (options.verbose) {
205
- console.log("Converting ".concat(_question.id, " file\u2026"));
206
- }
207
- (0, _inserters.insertQuestionReferences)(_question, _allData, {});
208
- legislature = _question.legislature ? _question.legislature : 0;
209
- questionReorganizedDir = _path["default"].join(questionReorganizedRootDir, String(legislature));
210
- _fsExtra["default"].ensureDirSync(questionReorganizedDir);
211
- questionFileName = "".concat(_question.reference, ".json");
212
- _fsExtra["default"].writeJSONSync(_path["default"].join(questionReorganizedDir, questionFileName), _question, {
213
- spaces: 2
214
- });
68
+ fs_extra_1.default.ensureDirSync(loiReorganizedDir);
69
+ const loiFileName = `${loi.signet}.json`;
70
+ fs_extra_1.default.writeJSONSync(path_1.default.join(loiReorganizedDir, loiFileName), loi, {
71
+ spaces: 2,
72
+ });
73
+ }
74
+ await convertTexteUrls(dataDir);
75
+ await convertRapportUrls(dataDir);
76
+ }
77
+ if (enabledDatasets & datasets_1.EnabledDatasets.Questions) {
78
+ const dataset = datasets_1.datasets.questions;
79
+ if (!options["silent"]) {
80
+ console.log(`Converting database ${dataset.database} data into files…`);
81
+ }
82
+ const questionsReorganizedRootDir = path_1.default.join(dataDir, dataset.database);
83
+ (0, util_1.ensureAndClearDir)(questionsReorganizedRootDir);
84
+ for await (const question of (0, model_1.findAllQuestions)()) {
85
+ if (options["verbose"]) {
86
+ console.log(`Converting ${question.reference} file…`);
215
87
  }
216
- } catch (err) {
217
- _iterator4.e(err);
218
- } finally {
219
- _iterator4.f();
220
- }
221
- case 36:
222
- if (!(enabledDatasets & _datasets.EnabledDatasets.Sens)) {
223
- _context.next = 52;
224
- break;
225
- }
226
- _dataset2 = _datasets.datasets.sens;
227
- if (!options.silent) {
228
- console.log("Converting database ".concat(_dataset2.database, " data into files\u2026"));
229
- }
230
- _context.next = 41;
231
- return (0, _model.getAllSens)();
232
- case 41:
233
- sens = _context.sent;
234
- _aggregator2 = new _model.Aggregator(new Set(_model.allFollows));
235
- _iterator5 = _createForOfIteratorHelper(sens);
236
- try {
237
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
238
- sen = _step5.value;
239
- _aggregator2.addSen(sen);
88
+ const legislature = question.legislature ? question.legislature : 0;
89
+ const questionReorganizedDir = path_1.default.join(questionsReorganizedRootDir, String(legislature));
90
+ fs_extra_1.default.ensureDirSync(questionReorganizedDir);
91
+ const questionFileName = `${question.reference}.json`;
92
+ fs_extra_1.default.writeJSONSync(path_1.default.join(questionReorganizedDir, questionFileName), question, { spaces: 2 });
93
+ }
94
+ }
95
+ if (enabledDatasets & datasets_1.EnabledDatasets.Sens) {
96
+ const dataset = datasets_1.datasets.sens;
97
+ if (!options["silent"]) {
98
+ console.log(`Converting database ${dataset.database} data into files…`);
99
+ }
100
+ const sensReorganizedRootDir = path_1.default.join(dataDir, dataset.database);
101
+ const senateursReorganizedDir = path_1.default.join(sensReorganizedRootDir, loaders_1.SENS_SENATEURS_FOLDER);
102
+ const circonscriptionsReorganizedDir = path_1.default.join(sensReorganizedRootDir, loaders_1.SENS_CIRCONSCRIPTIONS_FOLDER);
103
+ const organismesReorganizedDir = path_1.default.join(sensReorganizedRootDir, loaders_1.SENS_ORGANISMES_FOLDER);
104
+ (0, util_1.ensureAndClearDir)(sensReorganizedRootDir);
105
+ (0, util_1.ensureAndClearDir)(senateursReorganizedDir);
106
+ (0, util_1.ensureAndClearDir)(circonscriptionsReorganizedDir);
107
+ (0, util_1.ensureAndClearDir)(organismesReorganizedDir);
108
+ for await (const sen of (0, model_1.findAllSens)()) {
109
+ if (options["verbose"]) {
110
+ console.log(`Converting ${sen.matricule} file…`);
240
111
  }
241
- } catch (err) {
242
- _iterator5.e(err);
243
- } finally {
244
- _iterator5.f();
245
- }
246
- _context.next = 47;
247
- return _aggregator2.getAll();
248
- case 47:
249
- _allData2 = _aggregator2.toJson();
250
- senReorganizedRootDir = _path["default"].join(dataDir, _dataset2.database);
251
- ensureAndClearDir(senReorganizedRootDir);
252
- _iterator6 = _createForOfIteratorHelper(sens);
253
- try {
254
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
255
- _sen = _step6.value;
256
- if (options.verbose) {
257
- console.log("Converting ".concat(_sen.senmat, " file\u2026"));
258
- }
259
- (0, _inserters.insertSenReferences)(_sen, _allData2, {});
260
- senFileName = "".concat(_sen.senmat, ".json");
261
- _fsExtra["default"].writeJSONSync(_path["default"].join(senReorganizedRootDir, senFileName), _sen, {
262
- spaces: 2
263
- });
112
+ const senFileName = `${sen.matricule}.json`;
113
+ fs_extra_1.default.writeJSONSync(path_1.default.join(senateursReorganizedDir, senFileName), sen, {
114
+ spaces: 2,
115
+ });
116
+ }
117
+ for await (const circonscription of (0, model_1.findAllCirconscriptions)()) {
118
+ if (options["verbose"]) {
119
+ console.log(`Converting ${circonscription.identifiant} file…`);
264
120
  }
265
- } catch (err) {
266
- _iterator6.e(err);
267
- } finally {
268
- _iterator6.f();
269
- }
270
- case 52:
271
- case "end":
272
- return _context.stop();
273
- }
274
- }, _callee);
275
- }));
276
- return _convertData.apply(this, arguments);
121
+ const circonscriptionFileName = `${circonscription.identifiant}.json`;
122
+ fs_extra_1.default.writeJSONSync(path_1.default.join(circonscriptionsReorganizedDir, circonscriptionFileName), circonscription, { spaces: 2 });
123
+ }
124
+ for await (const organisme of (0, model_1.findAllOrganismes)()) {
125
+ if (options["verbose"]) {
126
+ console.log(`Converting ${organisme.code} file…`);
127
+ }
128
+ const organismeFileName = `${organisme.code}.json`;
129
+ fs_extra_1.default.writeJSONSync(path_1.default.join(organismesReorganizedDir, organismeFileName), organisme, { spaces: 2 });
130
+ }
131
+ }
132
+ if (!options["silent"]) {
133
+ console.timeEnd("data transformation time");
134
+ }
135
+ }
136
+ async function convertTexteUrls(dataDir) {
137
+ const textesDir = path_1.default.join(dataDir, loaders_1.TEXTE_FOLDER);
138
+ fs_extra_1.default.ensureDirSync(textesDir);
139
+ const originalTextesDir = path_1.default.join(textesDir, loaders_1.TEXTE_ORIGINAL_FOLDER);
140
+ for await (const texte of (0, dosleg_1.findSenatTexteUrls)(options["sessions"])) {
141
+ const texteName = path_1.default.parse(texte.url).name;
142
+ const texteDir = path_1.default.join(originalTextesDir, `${texte.session ?? datautil_1.UNDEFINED_SESSION}`, texteName);
143
+ fs_extra_1.default.ensureDirSync(texteDir);
144
+ const metadata = {
145
+ name: texteName,
146
+ session: texte.session,
147
+ url_expose_des_motifs: texte.hasExposeDesMotifs
148
+ ? new URL(`${texteName}-expose.html`, SENAT_EXPOSE_DES_MOTIFS_BASE_URL)
149
+ : undefined,
150
+ url_xml: new URL(`${texteName}.akn.xml`, SENAT_TEXTE_XML_BASE_URL),
151
+ url_html: new URL(`${texteName}.html`, SENAT_TEXTE_BASE_URL),
152
+ url_pdf: new URL(`${texteName}.pdf`, SENAT_TEXTE_BASE_URL),
153
+ };
154
+ fs_extra_1.default.writeJSONSync(path_1.default.join(texteDir, loaders_1.DOCUMENT_METADATA_FILE), metadata, {
155
+ spaces: 2,
156
+ });
157
+ }
158
+ }
159
+ async function convertRapportUrls(dataDir) {
160
+ const rapportsDir = path_1.default.join(dataDir, loaders_1.RAPPORT_FOLDER);
161
+ fs_extra_1.default.ensureDirSync(rapportsDir);
162
+ for await (const rapport of (0, dosleg_1.findSenatRapportUrls)(options["sessions"])) {
163
+ const parsedRapportUrl = path_1.default.parse(rapport.url);
164
+ const rapportName = parsedRapportUrl.name;
165
+ const rapportDir = path_1.default.join(rapportsDir, `${rapport.session ?? datautil_1.UNDEFINED_SESSION}`, rapportName);
166
+ fs_extra_1.default.ensureDirSync(rapportDir);
167
+ const rapportHtmlUrlBase = `${rapportName}_mono.html`;
168
+ const rapportHtmlUrl = path_1.default.format({
169
+ dir: parsedRapportUrl.dir,
170
+ base: rapportHtmlUrlBase,
171
+ });
172
+ const rapportPdfUrlBase = `${rapportName}1.pdf`;
173
+ const rapportPdfUrl = path_1.default.format({
174
+ dir: parsedRapportUrl.dir,
175
+ base: rapportPdfUrlBase,
176
+ });
177
+ const metadata = {
178
+ name: rapportName,
179
+ session: rapport.session,
180
+ url_html: new URL(rapportHtmlUrl, SENAT_RAPPORT_BASE_URL),
181
+ url_pdf: new URL(rapportPdfUrl, SENAT_RAPPORT_BASE_URL),
182
+ };
183
+ fs_extra_1.default.writeJSONSync(path_1.default.join(rapportDir, loaders_1.DOCUMENT_METADATA_FILE), metadata, {
184
+ spaces: 2,
185
+ });
186
+ }
277
187
  }
278
- convertData().then(function () {
279
- return process.exit(0);
280
- })["catch"](function (error) {
281
- console.log(error);
282
- process.exit(1);
188
+ convertData()
189
+ .then(() => process.exit(0))
190
+ .catch((error) => {
191
+ console.log(error);
192
+ process.exit(1);
283
193
  });
284
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnNFeHRyYSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3BhdGgiLCJfY29tbWFuZExpbmVBcmdzIiwiX2RhdGFzZXRzIiwiX21vZGVsIiwiX2luc2VydGVycyIsImUiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbiIsIkYiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfd3JhcFJlZ0V4cCIsIkJhYmVsUmVnRXhwIiwiUmVnRXhwIiwiV2Vha01hcCIsInNldCIsImdldCIsIl9zZXRQcm90b3R5cGVPZiIsImJ1aWxkR3JvdXBzIiwicmVkdWNlIiwiX2luaGVyaXRzIiwiZXhlYyIsImdyb3VwcyIsImluZGljZXMiLCJyZXBsYWNlIiwiam9pbiIsImJpbmQiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImRlZmF1bHRWYWx1ZSIsImhlbHAiLCJtdWx0aXBsZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsIlNJR05FVF9TVFJVQ1RVUkVfUkVHRVhQIiwic2Vzc2lvbiIsIm51bVRleHRlIiwiZW5zdXJlQW5kQ2xlYXJEaXIiLCJwYXRoIiwiZnMiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwiZW1wdHlEaXJTeW5jIiwiY29udmVydERhdGEiLCJfY29udmVydERhdGEiLCJfY2FsbGVlIiwiZW5hYmxlZERhdGFzZXRzIiwiZGF0YURpciIsImRhdGFzZXQiLCJsb2lzIiwiYWdncmVnYXRvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwibG9pIiwiYWxsRGF0YSIsImxvaVJlb3JnYW5pemVkUm9vdERpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfbG9pIiwibG9pRmlsZU5hbWUiLCJsb2lSZW9yZ2FuaXplZERpciIsIl9TSUdORVRfU1RSVUNUVVJFX1JFRyIsInNpZ25ldFBhcnRzIiwiX2RhdGFzZXQiLCJxdWVzdGlvbnMiLCJfYWdncmVnYXRvciIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJxdWVzdGlvbiIsIl9hbGxEYXRhIiwicXVlc3Rpb25SZW9yZ2FuaXplZFJvb3REaXIiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiX3F1ZXN0aW9uIiwibGVnaXNsYXR1cmUiLCJxdWVzdGlvblJlb3JnYW5pemVkRGlyIiwicXVlc3Rpb25GaWxlTmFtZSIsIl9kYXRhc2V0MiIsInNlbnMiLCJfYWdncmVnYXRvcjIiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1Iiwic2VuIiwiX2FsbERhdGEyIiwic2VuUmVvcmdhbml6ZWRSb290RGlyIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsIl9zZW4iLCJzZW5GaWxlTmFtZSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiRW5hYmxlZERhdGFzZXRzIiwiRG9zTGVnIiwiZGF0YXNldHMiLCJkb3NsZWciLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwiZGF0YWJhc2UiLCJnZXRBbGxMb2lzIiwiQWdncmVnYXRvciIsIlNldCIsImFsbEZvbGxvd3MiLCJhZGRMb2kiLCJlcnIiLCJ2ZXJib3NlIiwidGltZSIsImdldEFsbCIsInRpbWVFbmQiLCJ0b0pzb24iLCJzaWduZXQiLCJpbnNlcnRMb2lSZWZlcmVuY2VzIiwibG9pY29kIiwidHlwbG9pY29kIiwiZW5zdXJlRGlyU3luYyIsIndyaXRlSlNPTlN5bmMiLCJzcGFjZXMiLCJRdWVzdGlvbnMiLCJnZXRBbGxRdWVzdGlvbnMiLCJhZGRRdWVzdGlvbiIsImlkIiwiaW5zZXJ0UXVlc3Rpb25SZWZlcmVuY2VzIiwicmVmZXJlbmNlIiwiU2VucyIsImdldEFsbFNlbnMiLCJhZGRTZW4iLCJzZW5tYXQiLCJpbnNlcnRTZW5SZWZlcmVuY2VzIiwicHJvY2VzcyIsImV4aXQiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NvbnZlcnRfZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tICdjb21tYW5kLWxpbmUtYXJncydcblxuaW1wb3J0IHsgZGF0YXNldHMsIEVuYWJsZWREYXRhc2V0cywgZ2V0RW5hYmxlZERhdGFzZXRzLCB9IGZyb20gJy4uL2RhdGFzZXRzJ1xuaW1wb3J0IHtcbiAgQWdncmVnYXRvcixcbiAgYWxsRm9sbG93cyxcbiAgZ2V0QWxsTG9pcyxcbiAgZ2V0QWxsUXVlc3Rpb25zLFxuICBnZXRBbGxTZW5zXG59IGZyb20gJy4uL21vZGVsJ1xuaW1wb3J0IHtcbiAgaW5zZXJ0TG9pUmVmZXJlbmNlcyxcbiAgaW5zZXJ0UXVlc3Rpb25SZWZlcmVuY2VzLFxuICBpbnNlcnRTZW5SZWZlcmVuY2VzXG59IGZyb20gJy4uL2luc2VydGVycydcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6ICdrJyxcbiAgICBkZWZhdWx0VmFsdWU6IFsnQWxsJ10sXG4gICAgaGVscDogJ2NhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZScsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogJ2NhdGVnb3JpZXMnLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiAncycsXG4gICAgaGVscDogJ2RvblxcJ3QgbG9nIGFueXRoaW5nJyxcbiAgICBuYW1lOiAnc2lsZW50JyxcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwidlwiLFxuICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogJ2RpcmVjdG9yeSBjb250YWluaW5nIFPDqW5hdCBvcGVuIGRhdGEgZmlsZXMnLFxuICAgIG5hbWU6ICdkYXRhRGlyJyxcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3QgU0lHTkVUX1NUUlVDVFVSRV9SRUdFWFAgPSAvXig/PHR5cGU+W2Etel0rKSg/PHNlc3Npb24+XFxkezIsNH0pLT8oPzxudW1UZXh0ZT5cXGQrKT8vXG5cbmZ1bmN0aW9uIGVuc3VyZUFuZENsZWFyRGlyKHBhdGg6IHN0cmluZykge1xuICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aCkpIHtcbiAgICBmcy5ta2RpclN5bmMocGF0aClcbiAgfSBlbHNlIHtcbiAgICBmcy5lbXB0eURpclN5bmMocGF0aClcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb252ZXJ0RGF0YSgpIHtcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NMZWcpIHtcbiAgICBjb25zdCBkYXRhc2V0ID0gZGF0YXNldHMuZG9zbGVnXG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyBkYXRhYmFzZSAke2RhdGFzZXQuZGF0YWJhc2V9IGRhdGEgaW50byBmaWxlc+KApmApXG4gICAgfVxuXG4gICAgY29uc3QgbG9pcyA9IGF3YWl0IGdldEFsbExvaXMoKVxuICAgIGNvbnN0IGFnZ3JlZ2F0b3IgPSBuZXcgQWdncmVnYXRvcihuZXcgU2V0KGFsbEZvbGxvd3MpKVxuICAgIGZvciAoY29uc3QgbG9pIG9mIGxvaXMpIHtcbiAgICAgIGFnZ3JlZ2F0b3IuYWRkTG9pKGxvaSlcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coXCJTdGFydGluZyBnZXR0aW5nIGFsbCB0aGUgZGF0YeKAplwiKVxuICAgICAgY29uc29sZS50aW1lKFwiZ2V0IGFsbCBkYXRhXCIpXG4gICAgfVxuICAgIGF3YWl0IGFnZ3JlZ2F0b3IuZ2V0QWxsKClcbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBjb25zb2xlLnRpbWVFbmQoXCJnZXQgYWxsIGRhdGFcIilcbiAgICB9XG4gICAgY29uc3QgYWxsRGF0YSA9IGFnZ3JlZ2F0b3IudG9Kc29uKClcblxuICAgIGNvbnN0IGxvaVJlb3JnYW5pemVkUm9vdERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmRhdGFiYXNlKVxuICAgIGVuc3VyZUFuZENsZWFyRGlyKGxvaVJlb3JnYW5pemVkUm9vdERpcilcblxuICAgIGZvciAoY29uc3QgbG9pIG9mIGxvaXMpIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgJHtsb2kuc2lnbmV0fSBmaWxl4oCmYClcbiAgICAgIH1cblxuICAgICAgaW5zZXJ0TG9pUmVmZXJlbmNlcyhsb2ksIGFsbERhdGEsIHt9KVxuXG4gICAgICBsZXQgbG9pRmlsZU5hbWUgPSBgJHtsb2kubG9pY29kfS5qc29uYFxuICAgICAgbGV0IGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGxvaVJlb3JnYW5pemVkUm9vdERpciwgbG9pLnR5cGxvaWNvZClcbiAgICAgIGlmIChsb2kuc2lnbmV0KSB7XG4gICAgICAgIGxvaUZpbGVOYW1lID0gYCR7bG9pLnNpZ25ldH0uanNvbmBcbiAgICAgICAgbGV0IHNpZ25ldFBhcnRzID0gU0lHTkVUX1NUUlVDVFVSRV9SRUdFWFAuZXhlYyhsb2kuc2lnbmV0KT8uZ3JvdXBzXG4gICAgICAgIGlmIChzaWduZXRQYXJ0cykge1xuICAgICAgICAgIGNvbnN0IHsgc2Vzc2lvbn0gPSBzaWduZXRQYXJ0c1xuICAgICAgICAgIGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGxvaVJlb3JnYW5pemVkRGlyLCBzZXNzaW9uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGxvaVJlb3JnYW5pemVkRGlyLCBcIm5vbiBkZWZpbmlcIilcbiAgICAgICAgfVxuICAgICAgICBmcy5lbnN1cmVEaXJTeW5jKGxvaVJlb3JnYW5pemVkRGlyKVxuICAgICAgfVxuXG4gICAgICBmcy53cml0ZUpTT05TeW5jKHBhdGguam9pbihsb2lSZW9yZ2FuaXplZERpciwgbG9pRmlsZU5hbWUpLCBsb2ksIHtzcGFjZXM6IDJ9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgY29uc3QgZGF0YXNldCA9IGRhdGFzZXRzLnF1ZXN0aW9uc1xuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgZGF0YWJhc2UgJHtkYXRhc2V0LmRhdGFiYXNlfSBkYXRhIGludG8gZmlsZXPigKZgKVxuICAgIH1cblxuICAgIGNvbnN0IHF1ZXN0aW9ucyA9IGF3YWl0IGdldEFsbFF1ZXN0aW9ucygpXG4gICAgY29uc3QgYWdncmVnYXRvciA9IG5ldyBBZ2dyZWdhdG9yKG5ldyBTZXQoYWxsRm9sbG93cykpXG4gICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBxdWVzdGlvbnMpIHtcbiAgICAgIGFnZ3JlZ2F0b3IuYWRkUXVlc3Rpb24ocXVlc3Rpb24pXG4gICAgfVxuICAgIGF3YWl0IGFnZ3JlZ2F0b3IuZ2V0QWxsKClcbiAgICBjb25zdCBhbGxEYXRhID0gYWdncmVnYXRvci50b0pzb24oKVxuXG4gICAgY29uc3QgcXVlc3Rpb25SZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBlbnN1cmVBbmRDbGVhckRpcihxdWVzdGlvblJlb3JnYW5pemVkUm9vdERpcilcblxuICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zKSB7XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nICR7cXVlc3Rpb24uaWR9IGZpbGXigKZgKVxuICAgICAgfVxuXG4gICAgICBpbnNlcnRRdWVzdGlvblJlZmVyZW5jZXMocXVlc3Rpb24sIGFsbERhdGEsIHt9KVxuXG4gICAgICBjb25zdCBsZWdpc2xhdHVyZSA9IHF1ZXN0aW9uLmxlZ2lzbGF0dXJlID8gcXVlc3Rpb24ubGVnaXNsYXR1cmUgOiAwXG4gICAgICBjb25zdCBxdWVzdGlvblJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKHF1ZXN0aW9uUmVvcmdhbml6ZWRSb290RGlyLCBTdHJpbmcobGVnaXNsYXR1cmUpKVxuICAgICAgZnMuZW5zdXJlRGlyU3luYyhxdWVzdGlvblJlb3JnYW5pemVkRGlyKVxuICAgICAgbGV0IHF1ZXN0aW9uRmlsZU5hbWUgPSBgJHtxdWVzdGlvbi5yZWZlcmVuY2V9Lmpzb25gXG4gICAgICBmcy53cml0ZUpTT05TeW5jKHBhdGguam9pbihxdWVzdGlvblJlb3JnYW5pemVkRGlyLCBxdWVzdGlvbkZpbGVOYW1lKSwgcXVlc3Rpb24sIHtzcGFjZXM6IDJ9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2Vucykge1xuICAgIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0cy5zZW5zXG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyBkYXRhYmFzZSAke2RhdGFzZXQuZGF0YWJhc2V9IGRhdGEgaW50byBmaWxlc+KApmApXG4gICAgfVxuXG4gICAgY29uc3Qgc2VucyA9IGF3YWl0IGdldEFsbFNlbnMoKVxuICAgIGNvbnN0IGFnZ3JlZ2F0b3IgPSBuZXcgQWdncmVnYXRvcihuZXcgU2V0KGFsbEZvbGxvd3MpKVxuICAgIGZvciAoY29uc3Qgc2VuIG9mIHNlbnMpIHtcbiAgICAgIGFnZ3JlZ2F0b3IuYWRkU2VuKHNlbilcbiAgICB9XG4gICAgYXdhaXQgYWdncmVnYXRvci5nZXRBbGwoKVxuICAgIGNvbnN0IGFsbERhdGEgPSBhZ2dyZWdhdG9yLnRvSnNvbigpXG5cbiAgICBjb25zdCBzZW5SZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBlbnN1cmVBbmRDbGVhckRpcihzZW5SZW9yZ2FuaXplZFJvb3REaXIpXG5cbiAgICBmb3IgKGNvbnN0IHNlbiBvZiBzZW5zKSB7XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nICR7c2VuLnNlbm1hdH0gZmlsZeKApmApXG4gICAgICB9XG5cbiAgICAgIGluc2VydFNlblJlZmVyZW5jZXMoc2VuLCBhbGxEYXRhLCB7fSlcblxuICAgICAgbGV0IHNlbkZpbGVOYW1lID0gYCR7c2VuLnNlbm1hdH0uanNvbmBcbiAgICAgIGZzLndyaXRlSlNPTlN5bmMocGF0aC5qb2luKHNlblJlb3JnYW5pemVkUm9vdERpciwgc2VuRmlsZU5hbWUpLCBzZW4sIHtzcGFjZXM6IDJ9KVxuICAgIH1cbiAgfVxufVxuXG5jb252ZXJ0RGF0YSgpXG4gIC50aGVuKCgpID0+IHByb2Nlc3MuZXhpdCgwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFPQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFJcUIsU0FBQUQsdUJBQUFPLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLG9CQUFBLGtCQWZyQixxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUYsQ0FBQSxTQUFBRyxDQUFBLEVBQUFILENBQUEsT0FBQUksQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBSCxDQUFBLEVBQUFJLENBQUEsSUFBQUQsQ0FBQSxDQUFBSCxDQUFBLElBQUFJLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFdBQUFD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
@@ -0,0 +1,5 @@
1
+ export declare const SIGNET_STRUCTURE_REGEXP: RegExp;
2
+ export declare const AKN_IDENTIFICATION_STRUCTURE_REGEXP: RegExp;
3
+ export declare const AKN_WORKFLOW_IDENTIFICATION_STRUCTURE_REGEXP: RegExp;
4
+ export declare const UNDEFINED_SESSION = "0";
5
+ export declare function formatToFourDigitSession(session: string): string;