@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
@@ -1,840 +1,206 @@
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.to-string-tag.js");
9
- require("core-js/modules/es.array.for-each.js");
10
- require("core-js/modules/es.array.iterator.js");
11
- require("core-js/modules/es.array.reverse.js");
12
- require("core-js/modules/es.array.slice.js");
13
- require("core-js/modules/es.function.name.js");
14
- require("core-js/modules/es.json.to-string-tag.js");
15
- require("core-js/modules/es.math.to-string-tag.js");
16
- require("core-js/modules/es.object.create.js");
17
- require("core-js/modules/es.object.define-property.js");
18
- require("core-js/modules/es.object.get-prototype-of.js");
19
- require("core-js/modules/es.object.set-prototype-of.js");
20
- require("core-js/modules/es.string.iterator.js");
21
- require("core-js/modules/web.dom-collections.for-each.js");
22
- require("core-js/modules/web.dom-collections.iterator.js");
23
- Object.defineProperty(exports, "__esModule", {
24
- value: true
25
- });
26
- exports.getTypurls = exports.getTyptxts = exports.getTyplois = exports.getTyplecs = exports.getTypatts = exports.getTextesFromLecassidts = exports.getScrsFromCodes = exports.getRaps = exports.getRaporgsFromOrgcods = exports.getQuas = exports.getOritxts = exports.getOrgsFromRapcods = exports.getOrgs = exports.getLois = exports.getLecturesFromLoicods = exports.getLecasssFromLecidts = exports.getLecassrapsFromLecassidts = exports.getEtalois = exports.getEcrsFromTexcods = exports.getEcrsFromRapcods = exports.getDocattsFromRapcods = exports.getDenraps = exports.getDeccocs = exports.getDatesSeancesFromLecassidts = exports.getAuteurs = exports.getAudsFromLecassidts = exports.getAsss = exports.getAllLois = void 0;
27
- require("core-js/modules/es.array.map.js");
28
- require("core-js/modules/es.object.to-string.js");
29
- require("core-js/modules/es.promise.js");
30
- var _dosleg = require("../types/dosleg");
31
- var _databases = require("../databases");
32
- var _fields = require("../fields");
33
- 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; }
34
- 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); }
35
- 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); }); }; }
36
- var getAsss = exports.getAsss = /*#__PURE__*/function () {
37
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(ids) {
38
- return _regeneratorRuntime().wrap(function _callee$(_context) {
39
- while (1) switch (_context.prev = _context.next) {
40
- case 0:
41
- if (!(ids.length === 0)) {
42
- _context.next = 2;
43
- break;
44
- }
45
- return _context.abrupt("return", []);
46
- case 2:
47
- _context.next = 4;
48
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM ass\n WHERE codass IN ($<ids:list>)\n ", {
49
- ids: ids
50
- });
51
- case 4:
52
- return _context.abrupt("return", _context.sent.map(function (ass) {
53
- return (0, _fields.trimFieldsRight)(_dosleg.assFieldsToTrim, ass);
54
- }));
55
- case 5:
56
- case "end":
57
- return _context.stop();
58
- }
59
- }, _callee);
60
- }));
61
- return function getAsss(_x) {
62
- return _ref.apply(this, arguments);
63
- };
64
- }();
65
- var getAudsFromLecassidts = exports.getAudsFromLecassidts = /*#__PURE__*/function () {
66
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(ids) {
67
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
68
- while (1) switch (_context2.prev = _context2.next) {
69
- case 0:
70
- if (!(ids.length === 0)) {
71
- _context2.next = 2;
72
- break;
73
- }
74
- return _context2.abrupt("return", []);
75
- case 2:
76
- _context2.next = 4;
77
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM aud\n WHERE lecassidt IN ($<ids:list>)\n ", {
78
- ids: ids
79
- });
80
- case 4:
81
- return _context2.abrupt("return", _context2.sent.map(function (aud) {
82
- return (0, _fields.trimFieldsRight)(_dosleg.audFieldsToTrim, aud);
83
- }));
84
- case 5:
85
- case "end":
86
- return _context2.stop();
87
- }
88
- }, _callee2);
89
- }));
90
- return function getAudsFromLecassidts(_x2) {
91
- return _ref2.apply(this, arguments);
92
- };
93
- }();
94
- var getAuteurs = exports.getAuteurs = /*#__PURE__*/function () {
95
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(ids) {
96
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
97
- while (1) switch (_context3.prev = _context3.next) {
98
- case 0:
99
- if (!(ids.length === 0)) {
100
- _context3.next = 2;
101
- break;
102
- }
103
- return _context3.abrupt("return", []);
104
- case 2:
105
- _context3.next = 4;
106
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM auteur\n WHERE autcod IN ($<ids:list>)\n ", {
107
- ids: ids
108
- });
109
- case 4:
110
- return _context3.abrupt("return", _context3.sent.map(function (auteur) {
111
- return (0, _fields.trimFieldsRight)(_dosleg.auteurFieldsToTrim, auteur);
112
- }));
113
- case 5:
114
- case "end":
115
- return _context3.stop();
116
- }
117
- }, _callee3);
118
- }));
119
- return function getAuteurs(_x3) {
120
- return _ref3.apply(this, arguments);
121
- };
122
- }();
123
- var getDatesSeancesFromLecassidts = exports.getDatesSeancesFromLecassidts = /*#__PURE__*/function () {
124
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(ids) {
125
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
126
- while (1) switch (_context4.prev = _context4.next) {
127
- case 0:
128
- if (!(ids.length === 0)) {
129
- _context4.next = 2;
130
- break;
131
- }
132
- return _context4.abrupt("return", []);
133
- case 2:
134
- _context4.next = 4;
135
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM date_seance\n WHERE lecidt IN ($<ids:list>)\n ", {
136
- ids: ids
137
- });
138
- case 4:
139
- return _context4.abrupt("return", _context4.sent.map(function (dateSeance) {
140
- return (0, _fields.trimFieldsRight)(_dosleg.dateSeanceFieldsToTrim, dateSeance);
141
- }));
142
- case 5:
143
- case "end":
144
- return _context4.stop();
145
- }
146
- }, _callee4);
147
- }));
148
- return function getDatesSeancesFromLecassidts(_x4) {
149
- return _ref4.apply(this, arguments);
150
- };
151
- }();
152
- var getDeccocs = exports.getDeccocs = /*#__PURE__*/function () {
153
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(ids) {
154
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
155
- while (1) switch (_context5.prev = _context5.next) {
156
- case 0:
157
- if (!(ids.length === 0)) {
158
- _context5.next = 2;
159
- break;
160
- }
161
- return _context5.abrupt("return", []);
162
- case 2:
163
- _context5.next = 4;
164
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM deccoc\n WHERE deccoccod IN ($<ids:list>)\n ", {
165
- ids: ids
166
- });
167
- case 4:
168
- return _context5.abrupt("return", _context5.sent.map(function (deccoc) {
169
- return (0, _fields.trimFieldsRight)(_dosleg.deccocFieldsToTrim, deccoc);
170
- }));
171
- case 5:
172
- case "end":
173
- return _context5.stop();
174
- }
175
- }, _callee5);
176
- }));
177
- return function getDeccocs(_x5) {
178
- return _ref5.apply(this, arguments);
179
- };
180
- }();
181
- var getDenraps = exports.getDenraps = /*#__PURE__*/function () {
182
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(ids) {
183
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
184
- while (1) switch (_context6.prev = _context6.next) {
185
- case 0:
186
- if (!(ids.length === 0)) {
187
- _context6.next = 2;
188
- break;
189
- }
190
- return _context6.abrupt("return", []);
191
- case 2:
192
- _context6.next = 4;
193
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM denrap\n WHERE coddenrap IN ($<ids:list>)\n ", {
194
- ids: ids
195
- });
196
- case 4:
197
- return _context6.abrupt("return", _context6.sent.map(function (denrap) {
198
- return (0, _fields.trimFieldsRight)(_dosleg.denrapFieldsToTrim, denrap);
199
- }));
200
- case 5:
201
- case "end":
202
- return _context6.stop();
203
- }
204
- }, _callee6);
205
- }));
206
- return function getDenraps(_x6) {
207
- return _ref6.apply(this, arguments);
208
- };
209
- }();
210
- var getDocattsFromRapcods = exports.getDocattsFromRapcods = /*#__PURE__*/function () {
211
- var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(ids) {
212
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
213
- while (1) switch (_context7.prev = _context7.next) {
214
- case 0:
215
- if (!(ids.length === 0)) {
216
- _context7.next = 2;
217
- break;
218
- }
219
- return _context7.abrupt("return", []);
220
- case 2:
221
- _context7.next = 4;
222
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM docatt\n WHERE rapcod IN($<ids:list>)\n ", {
223
- ids: ids
224
- });
225
- case 4:
226
- return _context7.abrupt("return", _context7.sent.map(function (docatt) {
227
- return (0, _fields.parseIntFields)(_dosleg.docattFieldsToParseInt, (0, _fields.trimFieldsRight)(_dosleg.docattFieldsToTrim, docatt));
228
- }));
229
- case 5:
230
- case "end":
231
- return _context7.stop();
232
- }
233
- }, _callee7);
234
- }));
235
- return function getDocattsFromRapcods(_x7) {
236
- return _ref7.apply(this, arguments);
237
- };
238
- }();
239
- var getEcrsFromRapcods = exports.getEcrsFromRapcods = /*#__PURE__*/function () {
240
- var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(ids) {
241
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
242
- while (1) switch (_context8.prev = _context8.next) {
243
- case 0:
244
- if (!(ids.length === 0)) {
245
- _context8.next = 2;
246
- break;
247
- }
248
- return _context8.abrupt("return", []);
249
- case 2:
250
- _context8.next = 4;
251
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM ecr\n WHERE rapcod IN($<ids:list>)\n ", {
252
- ids: ids
253
- });
254
- case 4:
255
- return _context8.abrupt("return", _context8.sent.map(function (ecr) {
256
- return (0, _fields.trimFieldsRight)(_dosleg.ecrFieldsToTrim, ecr);
257
- }));
258
- case 5:
259
- case "end":
260
- return _context8.stop();
261
- }
262
- }, _callee8);
263
- }));
264
- return function getEcrsFromRapcods(_x8) {
265
- return _ref8.apply(this, arguments);
266
- };
267
- }();
268
- var getEcrsFromTexcods = exports.getEcrsFromTexcods = /*#__PURE__*/function () {
269
- var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(ids) {
270
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
271
- while (1) switch (_context9.prev = _context9.next) {
272
- case 0:
273
- if (!(ids.length === 0)) {
274
- _context9.next = 2;
275
- break;
276
- }
277
- return _context9.abrupt("return", []);
278
- case 2:
279
- _context9.next = 4;
280
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM ecr\n WHERE texcod IN($<ids:list>)\n ", {
281
- ids: ids
282
- });
283
- case 4:
284
- return _context9.abrupt("return", _context9.sent.map(function (ecr) {
285
- return (0, _fields.trimFieldsRight)(_dosleg.ecrFieldsToTrim, ecr);
286
- }));
287
- case 5:
288
- case "end":
289
- return _context9.stop();
290
- }
291
- }, _callee9);
292
- }));
293
- return function getEcrsFromTexcods(_x9) {
294
- return _ref9.apply(this, arguments);
295
- };
296
- }();
297
- var getEtalois = exports.getEtalois = /*#__PURE__*/function () {
298
- var _ref10 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(ids) {
299
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
300
- while (1) switch (_context10.prev = _context10.next) {
301
- case 0:
302
- if (!(ids.length === 0)) {
303
- _context10.next = 2;
304
- break;
305
- }
306
- return _context10.abrupt("return", []);
307
- case 2:
308
- _context10.next = 4;
309
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM etaloi\n WHERE etaloicod IN ($<ids:list>)\n ", {
310
- ids: ids
311
- });
312
- case 4:
313
- return _context10.abrupt("return", _context10.sent.map(function (etaloi) {
314
- return (0, _fields.trimFieldsRight)(_dosleg.etaloiFieldsToTrim, etaloi);
315
- }));
316
- case 5:
317
- case "end":
318
- return _context10.stop();
319
- }
320
- }, _callee10);
321
- }));
322
- return function getEtalois(_x10) {
323
- return _ref10.apply(this, arguments);
324
- };
325
- }();
326
- var getLecasssFromLecidts = exports.getLecasssFromLecidts = /*#__PURE__*/function () {
327
- var _ref11 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(ids) {
328
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
329
- while (1) switch (_context11.prev = _context11.next) {
330
- case 0:
331
- if (!(ids.length === 0)) {
332
- _context11.next = 2;
333
- break;
334
- }
335
- return _context11.abrupt("return", []);
336
- case 2:
337
- _context11.next = 4;
338
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM lecass\n WHERE lecidt IN ($<ids:list>)\n ", {
339
- ids: ids
340
- });
341
- case 4:
342
- return _context11.abrupt("return", _context11.sent.map(function (lecass) {
343
- return (0, _fields.trimFieldsRight)(_dosleg.lecassFieldsToTrim, lecass);
344
- }));
345
- case 5:
346
- case "end":
347
- return _context11.stop();
348
- }
349
- }, _callee11);
350
- }));
351
- return function getLecasssFromLecidts(_x11) {
352
- return _ref11.apply(this, arguments);
353
- };
354
- }();
355
- var getLecassrapsFromLecassidts = exports.getLecassrapsFromLecassidts = /*#__PURE__*/function () {
356
- var _ref12 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(ids) {
357
- return _regeneratorRuntime().wrap(function _callee12$(_context12) {
358
- while (1) switch (_context12.prev = _context12.next) {
359
- case 0:
360
- if (!(ids.length === 0)) {
361
- _context12.next = 2;
362
- break;
363
- }
364
- return _context12.abrupt("return", []);
365
- case 2:
366
- _context12.next = 4;
367
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM lecassrap\n WHERE lecassidt IN ($<ids:list>)\n ", {
368
- ids: ids
369
- });
370
- case 4:
371
- return _context12.abrupt("return", _context12.sent.map(function (lecassrap) {
372
- return (0, _fields.trimFieldsRight)(_dosleg.lecassrapFieldsToTrim, lecassrap);
373
- }));
374
- case 5:
375
- case "end":
376
- return _context12.stop();
377
- }
378
- }, _callee12);
379
- }));
380
- return function getLecassrapsFromLecassidts(_x12) {
381
- return _ref12.apply(this, arguments);
382
- };
383
- }();
384
- var getLecturesFromLoicods = exports.getLecturesFromLoicods = /*#__PURE__*/function () {
385
- var _ref13 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(ids) {
386
- return _regeneratorRuntime().wrap(function _callee13$(_context13) {
387
- while (1) switch (_context13.prev = _context13.next) {
388
- case 0:
389
- if (!(ids.length === 0)) {
390
- _context13.next = 2;
391
- break;
392
- }
393
- return _context13.abrupt("return", []);
394
- case 2:
395
- _context13.next = 4;
396
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM lecture\n WHERE loicod IN ($<ids:list>)\n ", {
397
- ids: ids
398
- });
399
- case 4:
400
- return _context13.abrupt("return", _context13.sent.map(function (lecture) {
401
- return (0, _fields.trimFieldsRight)(_dosleg.lectureFieldsToTrim, lecture);
402
- }));
403
- case 5:
404
- case "end":
405
- return _context13.stop();
406
- }
407
- }, _callee13);
408
- }));
409
- return function getLecturesFromLoicods(_x13) {
410
- return _ref13.apply(this, arguments);
411
- };
412
- }();
413
- var getLois = exports.getLois = /*#__PURE__*/function () {
414
- var _ref14 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee14(ids) {
415
- return _regeneratorRuntime().wrap(function _callee14$(_context14) {
416
- while (1) switch (_context14.prev = _context14.next) {
417
- case 0:
418
- if (!(ids.length === 0)) {
419
- _context14.next = 2;
420
- break;
421
- }
422
- return _context14.abrupt("return", []);
423
- case 2:
424
- _context14.next = 4;
425
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM loi\n WHERE loicod IN ($<ids:list>)\n ", {
426
- ids: ids
427
- });
428
- case 4:
429
- return _context14.abrupt("return", _context14.sent.map(function (loi) {
430
- return (0, _fields.trimFieldsRight)(_dosleg.loiFieldsToTrim, loi);
431
- }));
432
- case 5:
433
- case "end":
434
- return _context14.stop();
435
- }
436
- }, _callee14);
437
- }));
438
- return function getLois(_x14) {
439
- return _ref14.apply(this, arguments);
440
- };
441
- }();
442
- var getAllLois = exports.getAllLois = /*#__PURE__*/function () {
443
- var _ref15 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee15() {
444
- return _regeneratorRuntime().wrap(function _callee15$(_context15) {
445
- while (1) switch (_context15.prev = _context15.next) {
446
- case 0:
447
- _context15.next = 2;
448
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM loi\n ");
449
- case 2:
450
- return _context15.abrupt("return", _context15.sent.map(function (loi) {
451
- return (0, _fields.trimFieldsRight)(_dosleg.loiFieldsToTrim, loi);
452
- }));
453
- case 3:
454
- case "end":
455
- return _context15.stop();
456
- }
457
- }, _callee15);
458
- }));
459
- return function getAllLois() {
460
- return _ref15.apply(this, arguments);
461
- };
462
- }();
463
- var getOrgs = exports.getOrgs = /*#__PURE__*/function () {
464
- var _ref16 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee16(ids) {
465
- return _regeneratorRuntime().wrap(function _callee16$(_context16) {
466
- while (1) switch (_context16.prev = _context16.next) {
467
- case 0:
468
- if (!(ids.length === 0)) {
469
- _context16.next = 2;
470
- break;
471
- }
472
- return _context16.abrupt("return", []);
473
- case 2:
474
- _context16.next = 4;
475
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM org\n WHERE orgcod IN ($<ids:list>)\n ", {
476
- ids: ids
477
- });
478
- case 4:
479
- return _context16.abrupt("return", _context16.sent.map(function (org) {
480
- return (0, _fields.trimFieldsRight)(_dosleg.orgFieldsToTrim, org);
481
- }));
482
- case 5:
483
- case "end":
484
- return _context16.stop();
485
- }
486
- }, _callee16);
487
- }));
488
- return function getOrgs(_x15) {
489
- return _ref16.apply(this, arguments);
490
- };
491
- }();
492
- var getOrgsFromRapcods = exports.getOrgsFromRapcods = /*#__PURE__*/function () {
493
- var _ref17 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee17(ids) {
494
- return _regeneratorRuntime().wrap(function _callee17$(_context17) {
495
- while (1) switch (_context17.prev = _context17.next) {
496
- case 0:
497
- if (!(ids.length === 0)) {
498
- _context17.next = 2;
499
- break;
500
- }
501
- return _context17.abrupt("return", []);
502
- case 2:
503
- _context17.next = 4;
504
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM org\n WHERE orgcod IN (\n SELECT orgcod\n FROM raporg\n WHERE rapcod IN ($<ids:list>)\n )\n ", {
505
- ids: ids
506
- });
507
- case 4:
508
- return _context17.abrupt("return", _context17.sent.map(function (org) {
509
- return (0, _fields.trimFieldsRight)(_dosleg.orgFieldsToTrim, org);
510
- }));
511
- case 5:
512
- case "end":
513
- return _context17.stop();
514
- }
515
- }, _callee17);
516
- }));
517
- return function getOrgsFromRapcods(_x16) {
518
- return _ref17.apply(this, arguments);
519
- };
520
- }();
521
- var getRaporgsFromOrgcods = exports.getRaporgsFromOrgcods = /*#__PURE__*/function () {
522
- var _ref18 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(ids) {
523
- return _regeneratorRuntime().wrap(function _callee18$(_context18) {
524
- while (1) switch (_context18.prev = _context18.next) {
525
- case 0:
526
- if (!(ids.length === 0)) {
527
- _context18.next = 2;
528
- break;
529
- }
530
- return _context18.abrupt("return", []);
531
- case 2:
532
- _context18.next = 4;
533
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM raporg\n WHERE orgcod IN ($<ids:list>)\n ", {
534
- ids: ids
535
- });
536
- case 4:
537
- return _context18.abrupt("return", _context18.sent.map(function (raporg) {
538
- return (0, _fields.trimFieldsRight)(_dosleg.raporgFieldsToTrim, raporg);
539
- }));
540
- case 5:
541
- case "end":
542
- return _context18.stop();
543
- }
544
- }, _callee18);
545
- }));
546
- return function getRaporgsFromOrgcods(_x17) {
547
- return _ref18.apply(this, arguments);
548
- };
549
- }();
550
- var getOritxts = exports.getOritxts = /*#__PURE__*/function () {
551
- var _ref19 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee19(ids) {
552
- return _regeneratorRuntime().wrap(function _callee19$(_context19) {
553
- while (1) switch (_context19.prev = _context19.next) {
554
- case 0:
555
- if (!(ids.length === 0)) {
556
- _context19.next = 2;
557
- break;
558
- }
559
- return _context19.abrupt("return", []);
560
- case 2:
561
- _context19.next = 4;
562
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM oritxt\n WHERE oritxtcod IN ($<ids:list>)\n ", {
563
- ids: ids
564
- });
565
- case 4:
566
- return _context19.abrupt("return", _context19.sent.map(function (oritxt) {
567
- return (0, _fields.trimFieldsRight)(_dosleg.oritxtFieldsToTrim, oritxt);
568
- }));
569
- case 5:
570
- case "end":
571
- return _context19.stop();
572
- }
573
- }, _callee19);
574
- }));
575
- return function getOritxts(_x18) {
576
- return _ref19.apply(this, arguments);
577
- };
578
- }();
579
- var getQuas = exports.getQuas = /*#__PURE__*/function () {
580
- var _ref20 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee20(ids) {
581
- return _regeneratorRuntime().wrap(function _callee20$(_context20) {
582
- while (1) switch (_context20.prev = _context20.next) {
583
- case 0:
584
- if (!(ids.length === 0)) {
585
- _context20.next = 2;
586
- break;
587
- }
588
- return _context20.abrupt("return", []);
589
- case 2:
590
- _context20.next = 4;
591
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM qua\n WHERE quacod IN ($<ids:list>)\n ", {
592
- ids: ids
593
- });
594
- case 4:
595
- return _context20.abrupt("return", _context20.sent.map(function (qua) {
596
- return (0, _fields.trimFieldsRight)(_dosleg.quaFieldsToTrim, qua);
597
- }));
598
- case 5:
599
- case "end":
600
- return _context20.stop();
601
- }
602
- }, _callee20);
603
- }));
604
- return function getQuas(_x19) {
605
- return _ref20.apply(this, arguments);
606
- };
607
- }();
608
- var getRaps = exports.getRaps = /*#__PURE__*/function () {
609
- var _ref21 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee21(ids) {
610
- return _regeneratorRuntime().wrap(function _callee21$(_context21) {
611
- while (1) switch (_context21.prev = _context21.next) {
612
- case 0:
613
- if (!(ids.length === 0)) {
614
- _context21.next = 2;
615
- break;
616
- }
617
- return _context21.abrupt("return", []);
618
- case 2:
619
- _context21.next = 4;
620
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM rap\n WHERE rapcod IN ($<ids:list>)\n ", {
621
- ids: ids
622
- });
623
- case 4:
624
- return _context21.abrupt("return", _context21.sent.map(function (rap) {
625
- return (0, _fields.parseIntFields)(_dosleg.rapFieldsToParseInt, (0, _fields.trimFieldsRight)(_dosleg.rapFieldsToTrim, rap));
626
- }));
627
- case 5:
628
- case "end":
629
- return _context21.stop();
630
- }
631
- }, _callee21);
632
- }));
633
- return function getRaps(_x20) {
634
- return _ref21.apply(this, arguments);
635
- };
636
- }();
637
- var getScrsFromCodes = exports.getScrsFromCodes = /*#__PURE__*/function () {
638
- var _ref22 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee22(ids) {
639
- return _regeneratorRuntime().wrap(function _callee22$(_context22) {
640
- while (1) switch (_context22.prev = _context22.next) {
641
- case 0:
642
- if (!(ids.length === 0)) {
643
- _context22.next = 2;
644
- break;
645
- }
646
- return _context22.abrupt("return", []);
647
- case 2:
648
- _context22.next = 4;
649
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM scr\n WHERE code IN ($<ids:list>)\n ", {
650
- ids: ids
651
- });
652
- case 4:
653
- return _context22.abrupt("return", _context22.sent.map(function (scr) {
654
- return (0, _fields.trimFieldsRight)(_dosleg.scrFieldsToTrim, scr);
655
- }));
656
- case 5:
657
- case "end":
658
- return _context22.stop();
659
- }
660
- }, _callee22);
661
- }));
662
- return function getScrsFromCodes(_x21) {
663
- return _ref22.apply(this, arguments);
664
- };
665
- }();
666
- var getTextesFromLecassidts = exports.getTextesFromLecassidts = /*#__PURE__*/function () {
667
- var _ref23 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee23(ids) {
668
- return _regeneratorRuntime().wrap(function _callee23$(_context23) {
669
- while (1) switch (_context23.prev = _context23.next) {
670
- case 0:
671
- if (!(ids.length === 0)) {
672
- _context23.next = 2;
673
- break;
674
- }
675
- return _context23.abrupt("return", []);
676
- case 2:
677
- _context23.next = 4;
678
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM texte\n WHERE lecassidt IN ($<ids:list>)\n ", {
679
- ids: ids
680
- });
681
- case 4:
682
- return _context23.abrupt("return", _context23.sent.map(function (texte) {
683
- return (0, _fields.parseIntFields)(_dosleg.texteFieldsToParseInt, (0, _fields.trimFieldsRight)(_dosleg.texteFieldsToTrim, texte));
684
- }));
685
- case 5:
686
- case "end":
687
- return _context23.stop();
688
- }
689
- }, _callee23);
690
- }));
691
- return function getTextesFromLecassidts(_x22) {
692
- return _ref23.apply(this, arguments);
693
- };
694
- }();
695
- var getTypatts = exports.getTypatts = /*#__PURE__*/function () {
696
- var _ref24 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee24(ids) {
697
- return _regeneratorRuntime().wrap(function _callee24$(_context24) {
698
- while (1) switch (_context24.prev = _context24.next) {
699
- case 0:
700
- if (!(ids.length === 0)) {
701
- _context24.next = 2;
702
- break;
703
- }
704
- return _context24.abrupt("return", []);
705
- case 2:
706
- _context24.next = 4;
707
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM typatt\n WHERE typattcod IN ($<ids:list>)\n ", {
708
- ids: ids
709
- });
710
- case 4:
711
- return _context24.abrupt("return", _context24.sent.map(function (typatt) {
712
- return (0, _fields.trimFieldsRight)(_dosleg.typattFieldsToTrim, typatt);
713
- }));
714
- case 5:
715
- case "end":
716
- return _context24.stop();
717
- }
718
- }, _callee24);
719
- }));
720
- return function getTypatts(_x23) {
721
- return _ref24.apply(this, arguments);
722
- };
723
- }();
724
- var getTyplecs = exports.getTyplecs = /*#__PURE__*/function () {
725
- var _ref25 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee25(ids) {
726
- return _regeneratorRuntime().wrap(function _callee25$(_context25) {
727
- while (1) switch (_context25.prev = _context25.next) {
728
- case 0:
729
- if (!(ids.length === 0)) {
730
- _context25.next = 2;
731
- break;
732
- }
733
- return _context25.abrupt("return", []);
734
- case 2:
735
- _context25.next = 4;
736
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM typlec\n WHERE typleccod IN ($<ids:list>)\n ", {
737
- ids: ids
738
- });
739
- case 4:
740
- return _context25.abrupt("return", _context25.sent.map(function (typlec) {
741
- return (0, _fields.trimFieldsRight)(_dosleg.typlecFieldsToTrim, typlec);
742
- }));
743
- case 5:
744
- case "end":
745
- return _context25.stop();
746
- }
747
- }, _callee25);
748
- }));
749
- return function getTyplecs(_x24) {
750
- return _ref25.apply(this, arguments);
751
- };
752
- }();
753
- var getTyplois = exports.getTyplois = /*#__PURE__*/function () {
754
- var _ref26 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee26(ids) {
755
- return _regeneratorRuntime().wrap(function _callee26$(_context26) {
756
- while (1) switch (_context26.prev = _context26.next) {
757
- case 0:
758
- if (!(ids.length === 0)) {
759
- _context26.next = 2;
760
- break;
761
- }
762
- return _context26.abrupt("return", []);
763
- case 2:
764
- _context26.next = 4;
765
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM typloi\n WHERE typloicod IN ($<ids:list>)\n ", {
766
- ids: ids
767
- });
768
- case 4:
769
- return _context26.abrupt("return", _context26.sent.map(function (typloi) {
770
- return (0, _fields.trimFieldsRight)(_dosleg.typloiFieldsToTrim, typloi);
771
- }));
772
- case 5:
773
- case "end":
774
- return _context26.stop();
775
- }
776
- }, _callee26);
777
- }));
778
- return function getTyplois(_x25) {
779
- return _ref26.apply(this, arguments);
780
- };
781
- }();
782
- var getTyptxts = exports.getTyptxts = /*#__PURE__*/function () {
783
- var _ref27 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee27(ids) {
784
- return _regeneratorRuntime().wrap(function _callee27$(_context27) {
785
- while (1) switch (_context27.prev = _context27.next) {
786
- case 0:
787
- if (!(ids.length === 0)) {
788
- _context27.next = 2;
789
- break;
790
- }
791
- return _context27.abrupt("return", []);
792
- case 2:
793
- _context27.next = 4;
794
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM typtxt\n WHERE typtxtcod IN ($<ids:list>)\n ", {
795
- ids: ids
796
- });
797
- case 4:
798
- return _context27.abrupt("return", _context27.sent.map(function (typtxt) {
799
- return (0, _fields.trimFieldsRight)(_dosleg.typtxtFieldsToTrim, typtxt);
800
- }));
801
- case 5:
802
- case "end":
803
- return _context27.stop();
804
- }
805
- }, _callee27);
806
- }));
807
- return function getTyptxts(_x26) {
808
- return _ref27.apply(this, arguments);
809
- };
810
- }();
811
- var getTypurls = exports.getTypurls = /*#__PURE__*/function () {
812
- var _ref28 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee28(ids) {
813
- return _regeneratorRuntime().wrap(function _callee28$(_context28) {
814
- while (1) switch (_context28.prev = _context28.next) {
815
- case 0:
816
- if (!(ids.length === 0)) {
817
- _context28.next = 2;
818
- break;
819
- }
820
- return _context28.abrupt("return", []);
821
- case 2:
822
- _context28.next = 4;
823
- return _databases.dbByName.dosleg.any("\n SELECT *\n FROM typurl\n WHERE typurl IN ($<ids:list>)\n ", {
824
- ids: ids
825
- });
826
- case 4:
827
- return _context28.abrupt("return", _context28.sent.map(function (typurl) {
828
- return (0, _fields.trimFieldsRight)(_dosleg.typurlFieldsToTrim, typurl);
829
- }));
830
- case 5:
831
- case "end":
832
- return _context28.stop();
833
- }
834
- }, _callee28);
835
- }));
836
- return function getTypurls(_x27) {
837
- return _ref28.apply(this, arguments);
838
- };
839
- }();
840
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZG9zbGVnIiwicmVxdWlyZSIsIl9kYXRhYmFzZXMiLCJfZmllbGRzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImUiLCJ0IiwiciIsIk9iamVjdCIsInByb3RvdHlwZSIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsIm8iLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiaSIsIlN5bWJvbCIsImEiLCJpdGVyYXRvciIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsIl90eXBlb2YiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsImdldEFzc3MiLCJleHBvcnRzIiwiX3JlZiIsIl9jYWxsZWUiLCJpZHMiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiZGJCeU5hbWUiLCJkb3NsZWciLCJhbnkiLCJtYXAiLCJhc3MiLCJ0cmltRmllbGRzUmlnaHQiLCJhc3NGaWVsZHNUb1RyaW0iLCJfeCIsImdldEF1ZHNGcm9tTGVjYXNzaWR0cyIsIl9yZWYyIiwiX2NhbGxlZTIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJhdWQiLCJhdWRGaWVsZHNUb1RyaW0iLCJfeDIiLCJnZXRBdXRldXJzIiwiX3JlZjMiLCJfY2FsbGVlMyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImF1dGV1ciIsImF1dGV1ckZpZWxkc1RvVHJpbSIsIl94MyIsImdldERhdGVzU2VhbmNlc0Zyb21MZWNhc3NpZHRzIiwiX3JlZjQiLCJfY2FsbGVlNCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImRhdGVTZWFuY2UiLCJkYXRlU2VhbmNlRmllbGRzVG9UcmltIiwiX3g0IiwiZ2V0RGVjY29jcyIsIl9yZWY1IiwiX2NhbGxlZTUiLCJfY2FsbGVlNSQiLCJfY29udGV4dDUiLCJkZWNjb2MiLCJkZWNjb2NGaWVsZHNUb1RyaW0iLCJfeDUiLCJnZXREZW5yYXBzIiwiX3JlZjYiLCJfY2FsbGVlNiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImRlbnJhcCIsImRlbnJhcEZpZWxkc1RvVHJpbSIsIl94NiIsImdldERvY2F0dHNGcm9tUmFwY29kcyIsIl9yZWY3IiwiX2NhbGxlZTciLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJkb2NhdHQiLCJwYXJzZUludEZpZWxkcyIsImRvY2F0dEZpZWxkc1RvUGFyc2VJbnQiLCJkb2NhdHRGaWVsZHNUb1RyaW0iLCJfeDciLCJnZXRFY3JzRnJvbVJhcGNvZHMiLCJfcmVmOCIsIl9jYWxsZWU4IiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4IiwiZWNyIiwiZWNyRmllbGRzVG9UcmltIiwiX3g4IiwiZ2V0RWNyc0Zyb21UZXhjb2RzIiwiX3JlZjkiLCJfY2FsbGVlOSIsIl9jYWxsZWU5JCIsIl9jb250ZXh0OSIsIl94OSIsImdldEV0YWxvaXMiLCJfcmVmMTAiLCJfY2FsbGVlMTAiLCJfY2FsbGVlMTAkIiwiX2NvbnRleHQxMCIsImV0YWxvaSIsImV0YWxvaUZpZWxkc1RvVHJpbSIsIl94MTAiLCJnZXRMZWNhc3NzRnJvbUxlY2lkdHMiLCJfcmVmMTEiLCJfY2FsbGVlMTEiLCJfY2FsbGVlMTEkIiwiX2NvbnRleHQxMSIsImxlY2FzcyIsImxlY2Fzc0ZpZWxkc1RvVHJpbSIsIl94MTEiLCJnZXRMZWNhc3NyYXBzRnJvbUxlY2Fzc2lkdHMiLCJfcmVmMTIiLCJfY2FsbGVlMTIiLCJfY2FsbGVlMTIkIiwiX2NvbnRleHQxMiIsImxlY2Fzc3JhcCIsImxlY2Fzc3JhcEZpZWxkc1RvVHJpbSIsIl94MTIiLCJnZXRMZWN0dXJlc0Zyb21Mb2ljb2RzIiwiX3JlZjEzIiwiX2NhbGxlZTEzIiwiX2NhbGxlZTEzJCIsIl9jb250ZXh0MTMiLCJsZWN0dXJlIiwibGVjdHVyZUZpZWxkc1RvVHJpbSIsIl94MTMiLCJnZXRMb2lzIiwiX3JlZjE0IiwiX2NhbGxlZTE0IiwiX2NhbGxlZTE0JCIsIl9jb250ZXh0MTQiLCJsb2kiLCJsb2lGaWVsZHNUb1RyaW0iLCJfeDE0IiwiZ2V0QWxsTG9pcyIsIl9yZWYxNSIsIl9jYWxsZWUxNSIsIl9jYWxsZWUxNSQiLCJfY29udGV4dDE1IiwiZ2V0T3JncyIsIl9yZWYxNiIsIl9jYWxsZWUxNiIsIl9jYWxsZWUxNiQiLCJfY29udGV4dDE2Iiwib3JnIiwib3JnRmllbGRzVG9UcmltIiwiX3gxNSIsImdldE9yZ3NGcm9tUmFwY29kcyIsIl9yZWYxNyIsIl9jYWxsZWUxNyIsIl9jYWxsZWUxNyQiLCJfY29udGV4dDE3IiwiX3gxNiIsImdldFJhcG9yZ3NGcm9tT3JnY29kcyIsIl9yZWYxOCIsIl9jYWxsZWUxOCIsIl9jYWxsZWUxOCQiLCJfY29udGV4dDE4IiwicmFwb3JnIiwicmFwb3JnRmllbGRzVG9UcmltIiwiX3gxNyIsImdldE9yaXR4dHMiLCJfcmVmMTkiLCJfY2FsbGVlMTkiLCJfY2FsbGVlMTkkIiwiX2NvbnRleHQxOSIsIm9yaXR4dCIsIm9yaXR4dEZpZWxkc1RvVHJpbSIsIl94MTgiLCJnZXRRdWFzIiwiX3JlZjIwIiwiX2NhbGxlZTIwIiwiX2NhbGxlZTIwJCIsIl9jb250ZXh0MjAiLCJxdWEiLCJxdWFGaWVsZHNUb1RyaW0iLCJfeDE5IiwiZ2V0UmFwcyIsIl9yZWYyMSIsIl9jYWxsZWUyMSIsIl9jYWxsZWUyMSQiLCJfY29udGV4dDIxIiwicmFwIiwicmFwRmllbGRzVG9QYXJzZUludCIsInJhcEZpZWxkc1RvVHJpbSIsIl94MjAiLCJnZXRTY3JzRnJvbUNvZGVzIiwiX3JlZjIyIiwiX2NhbGxlZTIyIiwiX2NhbGxlZTIyJCIsIl9jb250ZXh0MjIiLCJzY3IiLCJzY3JGaWVsZHNUb1RyaW0iLCJfeDIxIiwiZ2V0VGV4dGVzRnJvbUxlY2Fzc2lkdHMiLCJfcmVmMjMiLCJfY2FsbGVlMjMiLCJfY2FsbGVlMjMkIiwiX2NvbnRleHQyMyIsInRleHRlIiwidGV4dGVGaWVsZHNUb1BhcnNlSW50IiwidGV4dGVGaWVsZHNUb1RyaW0iLCJfeDIyIiwiZ2V0VHlwYXR0cyIsIl9yZWYyNCIsIl9jYWxsZWUyNCIsIl9jYWxsZWUyNCQiLCJfY29udGV4dDI0IiwidHlwYXR0IiwidHlwYXR0RmllbGRzVG9UcmltIiwiX3gyMyIsImdldFR5cGxlY3MiLCJfcmVmMjUiLCJfY2FsbGVlMjUiLCJfY2FsbGVlMjUkIiwiX2NvbnRleHQyNSIsInR5cGxlYyIsInR5cGxlY0ZpZWxkc1RvVHJpbSIsIl94MjQiLCJnZXRUeXBsb2lzIiwiX3JlZjI2IiwiX2NhbGxlZTI2IiwiX2NhbGxlZTI2JCIsIl9jb250ZXh0MjYiLCJ0eXBsb2kiLCJ0eXBsb2lGaWVsZHNUb1RyaW0iLCJfeDI1IiwiZ2V0VHlwdHh0cyIsIl9yZWYyNyIsIl9jYWxsZWUyNyIsIl9jYWxsZWUyNyQiLCJfY29udGV4dDI3IiwidHlwdHh0IiwidHlwdHh0RmllbGRzVG9UcmltIiwiX3gyNiIsImdldFR5cHVybHMiLCJfcmVmMjgiLCJfY2FsbGVlMjgiLCJfY2FsbGVlMjgkIiwiX2NvbnRleHQyOCIsInR5cHVybCIsInR5cHVybEZpZWxkc1RvVHJpbSIsIl94MjciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvZG9zbGVnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFzcywgYXNzRmllbGRzVG9UcmltLFxuICBBdWQsIGF1ZEZpZWxkc1RvVHJpbSxcbiAgQXV0ZXVyLCBhdXRldXJGaWVsZHNUb1RyaW0sXG4gIERhdGVTZWFuY2UsIGRhdGVTZWFuY2VGaWVsZHNUb1RyaW0sXG4gIERlY0NvYywgZGVjY29jRmllbGRzVG9UcmltLFxuICBEZW5SYXAsIGRlbnJhcEZpZWxkc1RvVHJpbSxcbiAgRG9jQXR0LCBkb2NhdHRGaWVsZHNUb1BhcnNlSW50LCBkb2NhdHRGaWVsZHNUb1RyaW0sXG4gIEVjciwgZWNyRmllbGRzVG9UcmltLFxuICBFdGFMb2ksIGV0YWxvaUZpZWxkc1RvVHJpbSxcbiAgTGVjQXNzLCBsZWNhc3NGaWVsZHNUb1RyaW0sXG4gIExlY0Fzc1JhcCwgbGVjYXNzcmFwRmllbGRzVG9UcmltLFxuICBMZWN0dXJlLCBsZWN0dXJlRmllbGRzVG9UcmltLFxuICBMb2ksIGxvaUZpZWxkc1RvVHJpbSxcbiAgT3JnLCBvcmdGaWVsZHNUb1RyaW0sXG4gIE9yaVR4dCwgb3JpdHh0RmllbGRzVG9UcmltLFxuICBRdWEsIHF1YUZpZWxkc1RvVHJpbSxcbiAgUmFwLCByYXBGaWVsZHNUb1BhcnNlSW50LCByYXBGaWVsZHNUb1RyaW0sXG4gIFJhcE9yZywgcmFwb3JnRmllbGRzVG9UcmltLFxuICBTY3IsIHNjckZpZWxkc1RvVHJpbSxcbiAgVGV4dGUsIHRleHRlRmllbGRzVG9QYXJzZUludCwgdGV4dGVGaWVsZHNUb1RyaW0sXG4gIFR5cEF0dCwgdHlwYXR0RmllbGRzVG9UcmltLFxuICBUeXBMZWMsIHR5cGxlY0ZpZWxkc1RvVHJpbSxcbiAgVHlwTG9pLCB0eXBsb2lGaWVsZHNUb1RyaW0sXG4gIFR5cFR4dCwgdHlwdHh0RmllbGRzVG9UcmltLFxuICBUeXBVcmwsIHR5cHVybEZpZWxkc1RvVHJpbSxcbn0gZnJvbSAnLi4vdHlwZXMvZG9zbGVnJ1xuaW1wb3J0IHsgZGJCeU5hbWUgfSBmcm9tIFwiLi4vZGF0YWJhc2VzXCJcbmltcG9ydCB7IHBhcnNlSW50RmllbGRzLCB0cmltRmllbGRzUmlnaHQgfSBmcm9tICcuLi9maWVsZHMnXG5cbmV4cG9ydCBjb25zdCBnZXRBc3NzID0gYXN5bmMgKGlkczogc3RyaW5nW10pOiBQcm9taXNlPEFzc1tdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gYXNzXG4gICAgICBXSEVSRSBjb2Rhc3MgSU4gKCQ8aWRzOmxpc3Q+KVxuICAgIGAsXG4gICAgICB7XG4gICAgICAgIGlkcyxcbiAgICAgIH0sXG4gICAgKVxuICApLm1hcCgoYXNzOiBBc3MpID0+IHRyaW1GaWVsZHNSaWdodChhc3NGaWVsZHNUb1RyaW0sIGFzcykpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBdWRzRnJvbUxlY2Fzc2lkdHMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8QXVkW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSBhdWRcbiAgICAgIFdIRVJFIGxlY2Fzc2lkdCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKChhdWQ6IEF1ZCkgPT4gdHJpbUZpZWxkc1JpZ2h0KGF1ZEZpZWxkc1RvVHJpbSwgYXVkKSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldEF1dGV1cnMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8QXV0ZXVyW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSBhdXRldXJcbiAgICAgIFdIRVJFIGF1dGNvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKChhdXRldXI6IEF1dGV1cikgPT4gdHJpbUZpZWxkc1JpZ2h0KGF1dGV1ckZpZWxkc1RvVHJpbSwgYXV0ZXVyKSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldERhdGVzU2VhbmNlc0Zyb21MZWNhc3NpZHRzID0gYXN5bmMgKFxuICBpZHM6IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxEYXRlU2VhbmNlW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSBkYXRlX3NlYW5jZVxuICAgICAgV0hFUkUgbGVjaWR0IElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKGRhdGVTZWFuY2U6IERhdGVTZWFuY2UpID0+XG4gICAgdHJpbUZpZWxkc1JpZ2h0KGRhdGVTZWFuY2VGaWVsZHNUb1RyaW0sIGRhdGVTZWFuY2UpLFxuICApXG59XG5cbmV4cG9ydCBjb25zdCBnZXREZWNjb2NzID0gYXN5bmMgKGlkczogc3RyaW5nW10pOiBQcm9taXNlPERlY0NvY1tdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gZGVjY29jXG4gICAgICBXSEVSRSBkZWNjb2Njb2QgSU4gKCQ8aWRzOmxpc3Q+KVxuICAgIGAsXG4gICAgICB7XG4gICAgICAgIGlkcyxcbiAgICAgIH0sXG4gICAgKVxuICApLm1hcCgoZGVjY29jOiBEZWNDb2MpID0+IHRyaW1GaWVsZHNSaWdodChkZWNjb2NGaWVsZHNUb1RyaW0sIGRlY2NvYykpXG59XG5cbmV4cG9ydCBjb25zdCBnZXREZW5yYXBzID0gYXN5bmMgKGlkczogc3RyaW5nW10pOiBQcm9taXNlPERlblJhcFtdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gZGVucmFwXG4gICAgICBXSEVSRSBjb2RkZW5yYXAgSU4gKCQ8aWRzOmxpc3Q+KVxuICAgIGAsXG4gICAgICB7XG4gICAgICAgIGlkcyxcbiAgICAgIH0sXG4gICAgKVxuICApLm1hcCgoZGVucmFwOiBEZW5SYXApID0+IHRyaW1GaWVsZHNSaWdodChkZW5yYXBGaWVsZHNUb1RyaW0sIGRlbnJhcCkpXG59XG5cbmV4cG9ydCBjb25zdCBnZXREb2NhdHRzRnJvbVJhcGNvZHMgPSBhc3luYyAoXG4gIGlkczogc3RyaW5nW10sXG4pOiBQcm9taXNlPERvY0F0dFtdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gZG9jYXR0XG4gICAgICBXSEVSRSByYXBjb2QgSU4oJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKChkb2NhdHQ6IERvY0F0dCkgPT5cbiAgICBwYXJzZUludEZpZWxkcyhcbiAgICAgIGRvY2F0dEZpZWxkc1RvUGFyc2VJbnQsXG4gICAgICB0cmltRmllbGRzUmlnaHQoZG9jYXR0RmllbGRzVG9UcmltLCBkb2NhdHQpLFxuICAgICksXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGdldEVjcnNGcm9tUmFwY29kcyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxFY3JbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIGVjclxuICAgICAgV0hFUkUgcmFwY29kIElOKCQ8aWRzOmxpc3Q+KVxuICAgIGAsXG4gICAgICB7XG4gICAgICAgIGlkcyxcbiAgICAgIH0sXG4gICAgKVxuICApLm1hcCgoZWNyOiBFY3IpID0+IHRyaW1GaWVsZHNSaWdodChlY3JGaWVsZHNUb1RyaW0sIGVjcikpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRFY3JzRnJvbVRleGNvZHMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8RWNyW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSBlY3JcbiAgICAgIFdIRVJFIHRleGNvZCBJTigkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKGVjcjogRWNyKSA9PiB0cmltRmllbGRzUmlnaHQoZWNyRmllbGRzVG9UcmltLCBlY3IpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0RXRhbG9pcyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxFdGFMb2lbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIGV0YWxvaVxuICAgICAgV0hFUkUgZXRhbG9pY29kIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKGV0YWxvaTogRXRhTG9pKSA9PiB0cmltRmllbGRzUmlnaHQoZXRhbG9pRmllbGRzVG9UcmltLCBldGFsb2kpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0TGVjYXNzc0Zyb21MZWNpZHRzID0gYXN5bmMgKFxuICBpZHM6IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxMZWNBc3NbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIGxlY2Fzc1xuICAgICAgV0hFUkUgbGVjaWR0IElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKGxlY2FzczogTGVjQXNzKSA9PiB0cmltRmllbGRzUmlnaHQobGVjYXNzRmllbGRzVG9UcmltLCBsZWNhc3MpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0TGVjYXNzcmFwc0Zyb21MZWNhc3NpZHRzID0gYXN5bmMgKFxuICBpZHM6IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxMZWNBc3NSYXBbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIGxlY2Fzc3JhcFxuICAgICAgV0hFUkUgbGVjYXNzaWR0IElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKGxlY2Fzc3JhcDogTGVjQXNzUmFwKSA9PlxuICAgIHRyaW1GaWVsZHNSaWdodChsZWNhc3NyYXBGaWVsZHNUb1RyaW0sIGxlY2Fzc3JhcCksXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGdldExlY3R1cmVzRnJvbUxvaWNvZHMgPSBhc3luYyAoXG4gIGlkczogc3RyaW5nW10sXG4pOiBQcm9taXNlPExlY3R1cmVbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIGxlY3R1cmVcbiAgICAgIFdIRVJFIGxvaWNvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKChsZWN0dXJlOiBMZWN0dXJlKSA9PiB0cmltRmllbGRzUmlnaHQobGVjdHVyZUZpZWxkc1RvVHJpbSwgbGVjdHVyZSkpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRMb2lzID0gYXN5bmMgKGlkczogc3RyaW5nW10pOiBQcm9taXNlPExvaVtdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gbG9pXG4gICAgICBXSEVSRSBsb2ljb2QgSU4gKCQ8aWRzOmxpc3Q+KVxuICAgIGAsXG4gICAgICB7XG4gICAgICAgIGlkcyxcbiAgICAgIH0sXG4gICAgKVxuICApLm1hcCgobG9pOiBMb2kpID0+IHRyaW1GaWVsZHNSaWdodChsb2lGaWVsZHNUb1RyaW0sIGxvaSkpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBbGxMb2lzID0gYXN5bmMgKCk6IFByb21pc2U8TG9pW10+ID0+IHtcbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gbG9pXG4gICAgYFxuICAgIClcbiAgKS5tYXAoKGxvaTogTG9pKSA9PiB0cmltRmllbGRzUmlnaHQobG9pRmllbGRzVG9UcmltLCBsb2kpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0T3JncyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxPcmdbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIG9yZ1xuICAgICAgV0hFUkUgb3JnY29kIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKG9yZzogT3JnKSA9PiB0cmltRmllbGRzUmlnaHQob3JnRmllbGRzVG9UcmltLCBvcmcpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0T3Jnc0Zyb21SYXBjb2RzID0gYXN5bmMgKGlkczogc3RyaW5nW10pOiBQcm9taXNlPE9yZ1tdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gb3JnXG4gICAgICBXSEVSRSBvcmdjb2QgSU4gKFxuICAgICAgICBTRUxFQ1Qgb3JnY29kXG4gICAgICAgIEZST00gcmFwb3JnXG4gICAgICAgIFdIRVJFIHJhcGNvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgICApXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKChvcmc6IE9yZykgPT4gdHJpbUZpZWxkc1JpZ2h0KG9yZ0ZpZWxkc1RvVHJpbSwgb3JnKSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFJhcG9yZ3NGcm9tT3JnY29kcyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxSYXBPcmdbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIHJhcG9yZ1xuICAgICAgV0hFUkUgb3JnY29kIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKHJhcG9yZzogUmFwT3JnKSA9PiB0cmltRmllbGRzUmlnaHQocmFwb3JnRmllbGRzVG9UcmltLCByYXBvcmcpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0T3JpdHh0cyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxPcmlUeHRbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIG9yaXR4dFxuICAgICAgV0hFUkUgb3JpdHh0Y29kIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKG9yaXR4dDogT3JpVHh0KSA9PiB0cmltRmllbGRzUmlnaHQob3JpdHh0RmllbGRzVG9UcmltLCBvcml0eHQpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0UXVhcyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxRdWFbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIHF1YVxuICAgICAgV0hFUkUgcXVhY29kIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKHF1YTogUXVhKSA9PiB0cmltRmllbGRzUmlnaHQocXVhRmllbGRzVG9UcmltLCBxdWEpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0UmFwcyA9IGFzeW5jIChpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxSYXBbXT4gPT4ge1xuICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXVxuICB9XG4gIHJldHVybiAoXG4gICAgYXdhaXQgZGJCeU5hbWUuZG9zbGVnLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIHJhcFxuICAgICAgV0hFUkUgcmFwY29kIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKHJhcDogUmFwKSA9PlxuICAgIHBhcnNlSW50RmllbGRzKHJhcEZpZWxkc1RvUGFyc2VJbnQsIHRyaW1GaWVsZHNSaWdodChyYXBGaWVsZHNUb1RyaW0sIHJhcCkpLFxuICApXG59XG5cbmV4cG9ydCBjb25zdCBnZXRTY3JzRnJvbUNvZGVzID0gYXN5bmMgKGlkczogc3RyaW5nW10pOiBQcm9taXNlPFNjcltdPiA9PiB7XG4gIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtdXG4gIH1cbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5kb3NsZWcuYW55KFxuICAgICAgYFxuICAgICAgU0VMRUNUICpcbiAgICAgIEZST00gc2NyXG4gICAgICBXSEVSRSBjb2RlIElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKHNjcjogU2NyKSA9PiB0cmltRmllbGRzUmlnaHQoc2NyRmllbGRzVG9UcmltLCBzY3IpKVxufVxuXG5leHBvcnQgY29uc3QgZ2V0VGV4dGVzRnJvbUxlY2Fzc2lkdHMgPSBhc3luYyAoXG4gIGlkczogc3RyaW5nW10sXG4pOiBQcm9taXNlPFRleHRlW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSB0ZXh0ZVxuICAgICAgV0hFUkUgbGVjYXNzaWR0IElOICgkPGlkczpsaXN0PilcbiAgICBgLFxuICAgICAge1xuICAgICAgICBpZHMsXG4gICAgICB9LFxuICAgIClcbiAgKS5tYXAoKHRleHRlOiBUZXh0ZSkgPT5cbiAgICBwYXJzZUludEZpZWxkcyhcbiAgICAgIHRleHRlRmllbGRzVG9QYXJzZUludCxcbiAgICAgIHRyaW1GaWVsZHNSaWdodCh0ZXh0ZUZpZWxkc1RvVHJpbSwgdGV4dGUpLFxuICAgICksXG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGdldFR5cGF0dHMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8VHlwQXR0W10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSB0eXBhdHRcbiAgICAgIFdIRVJFIHR5cGF0dGNvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKCh0eXBhdHQ6IFR5cEF0dCkgPT4gdHJpbUZpZWxkc1JpZ2h0KHR5cGF0dEZpZWxkc1RvVHJpbSwgdHlwYXR0KSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFR5cGxlY3MgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8VHlwTGVjW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSB0eXBsZWNcbiAgICAgIFdIRVJFIHR5cGxlY2NvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKCh0eXBsZWM6IFR5cExlYykgPT4gdHJpbUZpZWxkc1JpZ2h0KHR5cGxlY0ZpZWxkc1RvVHJpbSwgdHlwbGVjKSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFR5cGxvaXMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8VHlwTG9pW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSB0eXBsb2lcbiAgICAgIFdIRVJFIHR5cGxvaWNvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKCh0eXBsb2k6IFR5cExvaSkgPT4gdHJpbUZpZWxkc1JpZ2h0KHR5cGxvaUZpZWxkc1RvVHJpbSwgdHlwbG9pKSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFR5cHR4dHMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8VHlwVHh0W10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSB0eXB0eHRcbiAgICAgIFdIRVJFIHR5cHR4dGNvZCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKCh0eXB0eHQ6IFR5cFR4dCkgPT4gdHJpbUZpZWxkc1JpZ2h0KHR5cHR4dEZpZWxkc1RvVHJpbSwgdHlwdHh0KSlcbn1cblxuZXhwb3J0IGNvbnN0IGdldFR5cHVybHMgPSBhc3luYyAoaWRzOiBzdHJpbmdbXSk6IFByb21pc2U8VHlwVXJsW10+ID0+IHtcbiAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW11cbiAgfVxuICByZXR1cm4gKFxuICAgIGF3YWl0IGRiQnlOYW1lLmRvc2xlZy5hbnkoXG4gICAgICBgXG4gICAgICBTRUxFQ1QgKlxuICAgICAgRlJPTSB0eXB1cmxcbiAgICAgIFdIRVJFIHR5cHVybCBJTiAoJDxpZHM6bGlzdD4pXG4gICAgYCxcbiAgICAgIHtcbiAgICAgICAgaWRzLFxuICAgICAgfSxcbiAgICApXG4gICkubWFwKCh0eXB1cmw6IFR5cFVybCkgPT4gdHJpbUZpZWxkc1JpZ2h0KHR5cHVybEZpZWxkc1RvVHJpbSwgdHlwdXJsKSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUEyQkEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQTJELFNBQUFHLG9CQUFBLGtCQTNCM0QscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFB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
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findAll = findAll;
4
+ exports.findSenatTexteUrls = findSenatTexteUrls;
5
+ exports.findSenatRapportUrls = findSenatRapportUrls;
6
+ const kysely_1 = require("kysely");
7
+ const postgres_1 = require("kysely/helpers/postgres");
8
+ const databases_1 = require("../databases");
9
+ const util_1 = require("./util");
10
+ function orderOrdreOrigineTexte(expr) {
11
+ return (0, kysely_1.sql) `array_position(array['0','2','1'], ${expr})`;
12
+ }
13
+ function datesSeances(lectureAssembleeId) {
14
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
15
+ .selectFrom("date_seance")
16
+ .where("date_seance.lecidt", "=", lectureAssembleeId)
17
+ .select(({ ref }) => [
18
+ (0, util_1.toDateString)(ref("date_seance.date_s")).as("date"),
19
+ ]));
20
+ }
21
+ function organismesRapport(rapportId) {
22
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
23
+ .selectFrom("org")
24
+ .leftJoin("raporg", "raporg.orgcod", "org.orgcod")
25
+ .where("raporg.rapcod", "=", rapportId)
26
+ .select(["org.orgnom as libelle"]));
27
+ }
28
+ function auteursRapport(rapportId) {
29
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
30
+ .selectFrom("auteur")
31
+ .leftJoin("ecr", "ecr.autcod", "auteur.autcod")
32
+ .where("ecr.rapcod", "=", rapportId)
33
+ .select([
34
+ "auteur.prenom as prenom",
35
+ "auteur.nomuse as nom_usuel",
36
+ "auteur.autmat as matricule",
37
+ ])
38
+ .orderBy("ecr.ecrnumtri", "asc"));
39
+ }
40
+ function rapports(lectureAssembleeId) {
41
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
42
+ .selectFrom("rap")
43
+ .leftJoin("lecassrap", "lecassrap.rapcod", "rap.rapcod")
44
+ .leftJoin("denrap", "denrap.coddenrap", "rap.coddenrap")
45
+ .where("lecassrap.lecassidt", "=", lectureAssembleeId)
46
+ .select(({ eb, ref, val }) => [
47
+ "rap.rapnum as numero",
48
+ (0, util_1.rtrim)(ref("denrap.libdenrap")).as("type_rapport"),
49
+ eb
50
+ .case()
51
+ .when("rap.typurl", "=", "I")
52
+ .then((0, util_1.concat)(val("https://www.senat.fr/rap/"), (0, util_1.rtrim)(ref("rap.rapurl"))))
53
+ .else((0, util_1.rtrim)(ref("rap.rapurl")))
54
+ .end()
55
+ .as("url"),
56
+ (0, util_1.toDateString)(ref("rap.date_depot")).as("date_depot"),
57
+ auteursRapport(ref("rap.rapcod")).as("auteurs"),
58
+ organismesRapport(ref("rap.rapcod")).as("organismes"),
59
+ ]));
60
+ }
61
+ function auteursTexte(texteId) {
62
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
63
+ .selectFrom("auteur")
64
+ .leftJoin("ecr", "ecr.autcod", "auteur.autcod")
65
+ .where("ecr.texcod", "=", texteId)
66
+ .select([
67
+ "auteur.prenom as prenom",
68
+ "auteur.nomuse as nom_usuel",
69
+ "auteur.autmat as matricule",
70
+ ])
71
+ .orderBy("ecr.ecrnumtri", "asc"));
72
+ }
73
+ function textes(lectureAssembleeId) {
74
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
75
+ .selectFrom("texte")
76
+ .leftJoin("oritxt", "oritxt.oritxtcod", "texte.oritxtcod")
77
+ .leftJoin("typtxt", "typtxt.typtxtcod", "texte.typtxtcod")
78
+ .where("texte.lecassidt", "=", lectureAssembleeId)
79
+ .select(({ eb, ref, val }) => [
80
+ "texte.texnum as numero",
81
+ eb
82
+ .case()
83
+ .when("texte.typurl", "=", "I")
84
+ .then((0, util_1.removeSubstring)(ref("texte.texurl"), val(".html")))
85
+ .else(null)
86
+ .end()
87
+ .as("id"),
88
+ eb
89
+ .case()
90
+ .when("texte.typurl", "=", "I")
91
+ .then((0, util_1.concat)(val("https://www.senat.fr/leg/"), (0, util_1.rtrim)(ref("texte.texurl"))))
92
+ .else((0, util_1.rtrim)(ref("texte.texurl")))
93
+ .end()
94
+ .as("url"),
95
+ (0, util_1.rtrim)(ref("oritxt.oritxtlib")).as("origine_texte"),
96
+ (0, util_1.rtrim)(ref("typtxt.typtxtlib")).as("type_texte"),
97
+ (0, util_1.toDateString)(ref("texte.txtoritxtdat")).as("date"),
98
+ "sesann as session",
99
+ auteursTexte(ref("texte.texcod")).as("auteurs"),
100
+ ])
101
+ .orderBy(({ ref }) => orderOrdreOrigineTexte(ref("oritxt.oriordre"))));
102
+ }
103
+ function lecturesAssemblee(lectureId) {
104
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
105
+ .selectFrom("lecass")
106
+ .where("lecass.lecidt", "=", lectureId)
107
+ .leftJoin("ass", "ass.codass", "lecass.codass")
108
+ .leftJoin("org", "org.orgcod", "lecass.orgcod")
109
+ .select(({ ref }) => [
110
+ (0, util_1.rtrim)(ref("ass.libass")).as("assemblee"),
111
+ "org.orgnom as libelle_organisme",
112
+ "org.orgcod as code_organisme",
113
+ "lecass.ordreass as ordre_lecture_assemblee",
114
+ textes(ref("lecass.lecassidt")).as("textes"),
115
+ rapports(ref("lecass.lecassidt")).as("rapports"),
116
+ datesSeances(ref("lecass.lecassidt")).as("dates_seances"),
117
+ ])
118
+ .orderBy("lecass.ordreass", "asc"));
119
+ }
120
+ function lectures(loiId) {
121
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
122
+ .selectFrom("lecture")
123
+ .leftJoin("typlec", "typlec.typleccod", "lecture.typleccod")
124
+ .where("lecture.loicod", "=", loiId)
125
+ .select(({ ref }) => [
126
+ (0, util_1.rtrim)(ref("typlec.typleclib")).as("type_lecture"),
127
+ (0, util_1.rtrim)(ref("lecture.leccom")).as("libelle"),
128
+ "typlec.typlecord as ordre_lecture",
129
+ lecturesAssemblee(ref("lecture.lecidt")).as("lectures_assemblee"),
130
+ ])
131
+ .orderBy("typlec.typlecord", "asc"));
132
+ }
133
+ function themes(loiId) {
134
+ return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
135
+ .selectFrom("the")
136
+ .leftJoin("loithe", "loithe.thecle", "the.thecle")
137
+ .where("loithe.loicod", "=", loiId)
138
+ .select(["the.thelib as libelle"]));
139
+ }
140
+ const findAllQuery = databases_1.dbDosleg
141
+ .selectFrom("loi")
142
+ .leftJoin("typloi", "typloi.typloicod", "loi.typloicod")
143
+ .leftJoin("etaloi", "etaloi.etaloicod", "loi.etaloicod")
144
+ .select(({ eb, ref, val }) => [
145
+ "loi.signet as signet",
146
+ (0, util_1.concat)(val("https://www.senat.fr/dossier-legislatif/"), ref("loi.signet"), val(".html")).as("url"),
147
+ (0, util_1.concat)((0, util_1.rtrim)(ref("typloi.typloiden")), val(" "), (0, util_1.rtrim)(ref("loi.loitit"))).as("titre"),
148
+ (0, util_1.rtrim)(ref("loi.loient")).as("titre_court"),
149
+ (0, util_1.rtrim)(ref("typloi.groupe")).as("code_nature_dossier"),
150
+ (0, util_1.rtrim)(ref("typloi.typloilib")).as("libelle_type_dossier"),
151
+ (0, util_1.rtrim)(ref("etaloi.etaloilib")).as("etat_dossier"),
152
+ "loi.url_an as url_dossier_assemblee_nationale",
153
+ (0, util_1.toDateString)(ref("loi.date_decision")).as("date_decision_CoC"),
154
+ "loi.num_decision as num_decision_CoC",
155
+ "loi.deccocurl as url_decision_CoC",
156
+ (0, util_1.toDateString)(ref("loi.saisine_date")).as("date_saisine_CoC"),
157
+ "loi.saisine_par as condition_saisine_CoC",
158
+ (0, util_1.toDateString)(ref("loi.date_loi")).as("date_promulgation"),
159
+ "loi.numero as numero_loi",
160
+ eb
161
+ .case()
162
+ .when("loi.loititjo", "is not", null)
163
+ .then((0, util_1.concat)((0, util_1.rtrim)(ref("typloi.typloiden")), val(" "), (0, util_1.rtrim)(ref("loi.loititjo"))))
164
+ .else("")
165
+ .end()
166
+ .as("titre_JO"),
167
+ (0, util_1.toDateString)(ref("loi.loidatjo")).as("date_publication_JO"),
168
+ "loi.loinumjo as numero_JO",
169
+ "loi.url_jo as url_JO",
170
+ lectures(ref("loi.loicod")).as("lectures"),
171
+ themes(ref("loi.loicod")).as("themes"),
172
+ ])
173
+ .$narrowType();
174
+ function findAll() {
175
+ return findAllQuery.stream();
176
+ }
177
+ function findSenatTexteUrls(sessions = []) {
178
+ return databases_1.dbDosleg
179
+ .selectFrom("texte")
180
+ .where("texurl", "is not", null)
181
+ .where("typurl", "=", "I")
182
+ .$if(sessions.length > 0, (qb) => qb.where("sesann", "in", sessions))
183
+ .select(({ eb, ref }) => [
184
+ "sesann as session",
185
+ (0, util_1.rtrim)(ref("texurl")).as("url"),
186
+ eb
187
+ .case()
188
+ .when("oritxtcod", "=", "1")
189
+ .then(true)
190
+ .else(false)
191
+ .end()
192
+ .as("hasExposeDesMotifs"),
193
+ ])
194
+ .$narrowType()
195
+ .stream();
196
+ }
197
+ function findSenatRapportUrls(sessions = []) {
198
+ return databases_1.dbDosleg
199
+ .selectFrom("rap")
200
+ .where("rapurl", "is not", null)
201
+ .where("typurl", "=", "I")
202
+ .$if(sessions.length > 0, (qb) => qb.where("sesann", "in", sessions))
203
+ .select(({ ref }) => [(0, util_1.rtrim)(ref("rapurl")).as("url"), "sesann as session"])
204
+ .$narrowType()
205
+ .stream();
206
+ }