@tricoteuses/assemblee 1.8.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/lib/bugs/acteur-00010/plugin.test.js +2 -2
  2. package/lib/bugs/acteur-00010.js +3 -3
  3. package/lib/bugs/agenda-00002/plugin.test.js +3 -3
  4. package/lib/bugs/agenda-00002.js +5 -5
  5. package/lib/bugs/agenda-00008/plugin.test.js +2 -2
  6. package/lib/bugs/agenda-00008.js +3 -3
  7. package/lib/bugs/agenda-00011/plugin.test.js +6 -6
  8. package/lib/bugs/agenda-00011.js +8 -8
  9. package/lib/bugs.js +11 -11
  10. package/lib/cleaners/index.d.ts +1 -0
  11. package/lib/cleaners/index.js +8 -1
  12. package/lib/cleaners/index.mjs +2 -1
  13. package/lib/cleaners/scrutins.js +2 -1
  14. package/lib/cleaners/scrutins.mjs +3 -2
  15. package/lib/cleaners/textes_loi.d.ts +1 -0
  16. package/lib/cleaners/textes_loi.js +12 -0
  17. package/lib/cleaners/textes_loi.mjs +5 -0
  18. package/lib/cleaners/xml.d.ts +3 -0
  19. package/lib/cleaners/xml.js +13 -1
  20. package/lib/cleaners/xml.mjs +11 -1
  21. package/lib/datasets.d.ts +9 -2
  22. package/lib/datasets.js +24 -3
  23. package/lib/datasets.mjs +24 -3
  24. package/lib/dates.js +3 -3
  25. package/lib/examples/PIONANR5L15B0020/input.d.ts +2 -0
  26. package/lib/examples/PIONANR5L15B0020/input.js +10 -0
  27. package/lib/examples/PIONANR5L15B0020/input.mjs +193 -0
  28. package/lib/examples/PRJLANR5L16B0914/input.d.ts +2 -0
  29. package/lib/examples/PRJLANR5L16B0914/input.js +10 -0
  30. package/lib/examples/PRJLANR5L16B0914/input.mjs +322 -0
  31. package/lib/examples/PRJLANR5L16B2014/input.d.ts +2 -0
  32. package/lib/examples/PRJLANR5L16B2014/input.js +10 -0
  33. package/lib/examples/PRJLANR5L16B2014/input.mjs +577 -0
  34. package/lib/examples/PRJLANR5L16B2424/input.d.ts +2 -0
  35. package/lib/examples/PRJLANR5L16B2424/input.js +10 -0
  36. package/lib/examples/PRJLANR5L16B2424/input.mjs +322 -0
  37. package/lib/examples/PRJLANR5L16B2462/input.d.ts +2 -0
  38. package/lib/examples/PRJLANR5L16B2462/input.js +10 -0
  39. package/lib/examples/PRJLANR5L16B2462/input.mjs +1308 -0
  40. package/lib/loaders.d.ts +5 -0
  41. package/lib/loaders.js +308 -262
  42. package/lib/loaders.mjs +16 -3
  43. package/lib/logger.d.ts +16 -0
  44. package/lib/logger.js +35 -0
  45. package/lib/logger.mjs +26 -0
  46. package/lib/parsers/documents.js +2 -2
  47. package/lib/parsers/textes_lois.d.ts +16 -1
  48. package/lib/parsers/textes_lois.js +733 -28
  49. package/lib/parsers/textes_lois.mjs +587 -22
  50. package/lib/raw_types/acteurs_et_organes.js +1 -1
  51. package/lib/raw_types/agendas.js +1 -1
  52. package/lib/raw_types/amendements.js +1 -1
  53. package/lib/raw_types/debats.js +1 -1
  54. package/lib/raw_types/dossiers_legislatifs.js +1 -1
  55. package/lib/raw_types/questions.js +1 -1
  56. package/lib/raw_types/scrutins.d.ts +18 -13
  57. package/lib/raw_types/scrutins.js +28 -14
  58. package/lib/raw_types/scrutins.mjs +28 -14
  59. package/lib/raw_types/textes_loi.d.ts +93 -0
  60. package/lib/raw_types/textes_loi.js +429 -0
  61. package/lib/raw_types/textes_loi.mjs +378 -0
  62. package/lib/scripts/bugs_helper.js +9 -9
  63. package/lib/scripts/document_dossiers_legislatifs.js +1 -1
  64. package/lib/scripts/process_open_dataset.d.ts +17 -0
  65. package/lib/scripts/process_open_dataset.js +302 -0
  66. package/lib/scripts/process_open_dataset.mjs +136 -0
  67. package/lib/scripts/process_textes_loi_dataset.d.ts +7 -0
  68. package/lib/scripts/process_textes_loi_dataset.js +374 -0
  69. package/lib/scripts/process_textes_loi_dataset.mjs +237 -0
  70. package/lib/scripts/raw_types_from_amendements.js +2 -2
  71. package/lib/scripts/reorganize_data.js +1 -1
  72. package/lib/scripts/reorganize_data.mjs +1 -1
  73. package/lib/scripts/retrieve_deputes_photos.js +3 -3
  74. package/lib/scripts/retrieve_documents.js +4 -4
  75. package/lib/scripts/retrieve_open_data.js +41 -279
  76. package/lib/scripts/retrieve_open_data.mjs +13 -126
  77. package/lib/scripts/retrieve_pending_amendments.js +2 -2
  78. package/lib/scripts/retrieve_senateurs_photos.js +2 -2
  79. package/lib/scripts/retrieve_textes_lois.js +2 -2
  80. package/lib/scripts/shared/cli_helpers.d.ts +5 -0
  81. package/lib/scripts/shared/cli_helpers.js +7 -2
  82. package/lib/scripts/shared/cli_helpers.mjs +6 -1
  83. package/lib/scripts/test_iter_load.js +25 -10
  84. package/lib/scripts/test_iter_load.mjs +19 -11
  85. package/lib/scripts/validate_json.js +3 -3
  86. package/lib/types/acteurs_et_organes.js +1 -1
  87. package/lib/types/agendas.js +1 -1
  88. package/lib/types/amendements.js +1 -1
  89. package/lib/types/debats.js +1 -1
  90. package/lib/types/dossiers_legislatifs.js +1 -1
  91. package/lib/types/questions.js +1 -1
  92. package/lib/types/scrutins.d.ts +6 -3
  93. package/lib/types/scrutins.js +13 -7
  94. package/lib/types/scrutins.mjs +13 -7
  95. package/lib/types/textes_loi.d.ts +94 -0
  96. package/lib/types/textes_loi.js +429 -0
  97. package/lib/types/textes_loi.mjs +378 -0
  98. package/package.json +13 -12
  99. package/lib/scripts/retrieve_textes_lois_llm.d.ts +0 -1
  100. package/lib/scripts/retrieve_textes_lois_llm.js +0 -188
  101. package/lib/scripts/retrieve_textes_lois_llm.mjs +0 -85
@@ -1,188 +0,0 @@
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.from.js");
11
- require("core-js/modules/es.array.is-array.js");
12
- require("core-js/modules/es.array.iterator.js");
13
- require("core-js/modules/es.array.reverse.js");
14
- require("core-js/modules/es.array.slice.js");
15
- require("core-js/modules/es.date.to-string.js");
16
- require("core-js/modules/es.function.name.js");
17
- require("core-js/modules/es.json.to-string-tag.js");
18
- require("core-js/modules/es.math.to-string-tag.js");
19
- require("core-js/modules/es.object.create.js");
20
- require("core-js/modules/es.object.define-property.js");
21
- require("core-js/modules/es.object.get-own-property-descriptor.js");
22
- require("core-js/modules/es.object.get-prototype-of.js");
23
- require("core-js/modules/es.object.set-prototype-of.js");
24
- require("core-js/modules/es.regexp.exec.js");
25
- require("core-js/modules/es.regexp.to-string.js");
26
- require("core-js/modules/es.string.iterator.js");
27
- require("core-js/modules/es.weak-map.js");
28
- require("core-js/modules/web.dom-collections.for-each.js");
29
- require("core-js/modules/web.dom-collections.iterator.js");
30
- require("core-js/modules/es.array.concat.js");
31
- require("core-js/modules/es.array.includes.js");
32
- require("core-js/modules/es.array.join.js");
33
- require("core-js/modules/es.date.to-json.js");
34
- require("core-js/modules/es.object.to-string.js");
35
- require("core-js/modules/es.promise.js");
36
- require("core-js/modules/es.string.includes.js");
37
- var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
38
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
39
- var _path = _interopRequireDefault(require("path"));
40
- var _util = _interopRequireDefault(require("util"));
41
- var _stream = _interopRequireDefault(require("stream"));
42
- var _loaders = require("../loaders");
43
- var git = _interopRequireWildcard(require("../git"));
44
- var _textes_lois = require("../parsers/textes_lois");
45
- var _cli_helpers = require("./shared/cli_helpers");
46
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
47
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
48
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
49
- 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; }
50
- 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; } } }; }
51
- 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; } }
52
- 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; }
53
- 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); }
54
- 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); }); }; }
55
- var optionsDefinitions = [_cli_helpers.commitOption, _cli_helpers.legislatureOption, _cli_helpers.remoteOption, _cli_helpers.silentOption, _cli_helpers.verboseOption, _cli_helpers.dataDirDefaultOption, {
56
- alias: "f",
57
- help: "retrieve all documents, even already retrieved ones",
58
- name: "full",
59
- type: Boolean
60
- }];
61
- var options = (0, _commandLineArgs["default"])(optionsDefinitions);
62
- var pipeline = _util["default"].promisify(_stream["default"].pipeline);
63
- function retrieveTextesLois() {
64
- return _retrieveTextesLois.apply(this, arguments);
65
- }
66
- function _retrieveTextesLois() {
67
- _retrieveTextesLois = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
68
- var dataDir, documentsDir, _iterator, _step, _document$classificat, document, documentDir, documentType, allowedTypes, htmlFilePath, htmlTempFilePath, url, response, jsonFilePath, html, texteLoiParsed;
69
- return _regeneratorRuntime().wrap(function _callee$(_context) {
70
- while (1) switch (_context.prev = _context.next) {
71
- case 0:
72
- dataDir = options.dataDir;
73
- documentsDir = _path["default"].join(dataDir, "Documents");
74
- _fsExtra["default"].ensureDirSync(documentsDir);
75
- _iterator = _createForOfIteratorHelper((0, _loaders.iterLoadAssembleeDocuments)(dataDir, options.legislature, {
76
- noValidation: true
77
- }));
78
- _context.prev = 4;
79
- _iterator.s();
80
- case 6:
81
- if ((_step = _iterator.n()).done) {
82
- _context.next = 39;
83
- break;
84
- }
85
- document = _step.value.document;
86
- documentDir = (0, _loaders.pathFromDocumentUid)(documentsDir, document.uid);
87
- _fsExtra["default"].ensureDirSync(documentDir);
88
- documentType = (_document$classificat = document.classification) === null || _document$classificat === void 0 || (_document$classificat = _document$classificat.type) === null || _document$classificat === void 0 ? void 0 : _document$classificat.code;
89
- allowedTypes = ["PION", "PRJL"];
90
- if (allowedTypes.includes(documentType)) {
91
- _context.next = 14;
92
- break;
93
- }
94
- return _context.abrupt("continue", 37);
95
- case 14:
96
- htmlFilePath = _path["default"].join(documentDir, "dyn-opendata.html");
97
- htmlTempFilePath = _path["default"].join(documentDir, "dyn-opendata_temp.html");
98
- url = "https://www.assemblee-nationale.fr/dyn/opendata/".concat(document.uid, ".html");
99
- if (!options.silent) {
100
- console.log("Retrieving document ".concat(document.uid, " at ").concat(url, "\u2026"));
101
- }
102
- _context.next = 20;
103
- return fetch(url);
104
- case 20:
105
- response = _context.sent;
106
- if (!response.ok) {
107
- _context.next = 25;
108
- break;
109
- }
110
- _context.next = 24;
111
- return pipeline(response.body, _fsExtra["default"].createWriteStream(htmlTempFilePath));
112
- case 24:
113
- _fsExtra["default"].renameSync(htmlTempFilePath, htmlFilePath);
114
- case 25:
115
- jsonFilePath = _path["default"].join(documentDir, "parsed.json"); // If HTML does not exist, continue
116
- if (_fsExtra["default"].existsSync(htmlFilePath)) {
117
- _context.next = 29;
118
- break;
119
- }
120
- if (!options.silent) {
121
- console.log("Skipping document ".concat(document.uid));
122
- }
123
- return _context.abrupt("continue", 37);
124
- case 29:
125
- if (!(_fsExtra["default"].existsSync(jsonFilePath) && !options.full)) {
126
- _context.next = 31;
127
- break;
128
- }
129
- return _context.abrupt("continue", 37);
130
- case 31:
131
- html = _fsExtra["default"].readFileSync(htmlFilePath, {
132
- encoding: "utf8"
133
- });
134
- if (!options.silent) {
135
- console.log("Parsing document ".concat(document.uid, "\u2026"));
136
- }
137
- _context.next = 35;
138
- return (0, _textes_lois.parseTexteLoi)(html);
139
- case 35:
140
- texteLoiParsed = _context.sent;
141
- if (texteLoiParsed) {
142
- texteLoiParsed.documentRef = document.uid;
143
- _fsExtra["default"].writeFileSync(jsonFilePath, JSON.stringify(texteLoiParsed, null, 2));
144
- if (!options.silent) {
145
- console.log("Document ".concat(document.uid, " successfully parsed !"));
146
- }
147
- } else {
148
- if (!options.silent) {
149
- console.log("Error when parsing document ".concat(document.uid));
150
- }
151
- }
152
- case 37:
153
- _context.next = 6;
154
- break;
155
- case 39:
156
- _context.next = 44;
157
- break;
158
- case 41:
159
- _context.prev = 41;
160
- _context.t0 = _context["catch"](4);
161
- _iterator.e(_context.t0);
162
- case 44:
163
- _context.prev = 44;
164
- _iterator.f();
165
- return _context.finish(44);
166
- case 47:
167
- if (!options.commit) {
168
- _context.next = 49;
169
- break;
170
- }
171
- return _context.abrupt("return", git.commitAndPush(documentsDir, "Nouvelle moisson", options.remote));
172
- case 49:
173
- return _context.abrupt("return", 0);
174
- case 50:
175
- case "end":
176
- return _context.stop();
177
- }
178
- }, _callee, null, [[4, 41, 44, 47]]);
179
- }));
180
- return _retrieveTextesLois.apply(this, arguments);
181
- }
182
- retrieveTextesLois().then(function (exitCode) {
183
- return process.exit(exitCode);
184
- })["catch"](function (error) {
185
- console.log(error);
186
- process.exit(1);
187
- });
188
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX3V0aWwiLCJfc3RyZWFtIiwiX2xvYWRlcnMiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl90ZXh0ZXNfbG9pcyIsIl9jbGlfaGVscGVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJwcm90b3R5cGUiLCJvIiwidmFsdWUiLCJTeW1ib2wiLCJpdGVyYXRvciIsImMiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiVHlwZUVycm9yIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpc05hTiIsImxlbmd0aCIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY29tbWl0T3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJhbGlhcyIsImhlbHAiLCJCb29sZWFuIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsInBpcGVsaW5lIiwidXRpbCIsInByb21pc2lmeSIsInN0cmVhbSIsInJldHJpZXZlVGV4dGVzTG9pcyIsIl9yZXRyaWV2ZVRleHRlc0xvaXMiLCJfY2FsbGVlIiwiZGF0YURpciIsImRvY3VtZW50c0RpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX2RvY3VtZW50JGNsYXNzaWZpY2F0IiwiZG9jdW1lbnQiLCJkb2N1bWVudERpciIsImRvY3VtZW50VHlwZSIsImFsbG93ZWRUeXBlcyIsImh0bWxGaWxlUGF0aCIsImh0bWxUZW1wRmlsZVBhdGgiLCJ1cmwiLCJyZXNwb25zZSIsImpzb25GaWxlUGF0aCIsImh0bWwiLCJ0ZXh0ZUxvaVBhcnNlZCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyU3luYyIsIml0ZXJMb2FkQXNzZW1ibGVlRG9jdW1lbnRzIiwibGVnaXNsYXR1cmUiLCJub1ZhbGlkYXRpb24iLCJwYXRoRnJvbURvY3VtZW50VWlkIiwidWlkIiwiY2xhc3NpZmljYXRpb24iLCJjb2RlIiwiaW5jbHVkZXMiLCJjb25jYXQiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiZmV0Y2giLCJvayIsImJvZHkiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbmFtZVN5bmMiLCJleGlzdHNTeW5jIiwiZnVsbCIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwicGFyc2VUZXh0ZUxvaSIsImRvY3VtZW50UmVmIiwid3JpdGVGaWxlU3luYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0MCIsImNvbW1pdCIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJleGl0Q29kZSIsInByb2Nlc3MiLCJleGl0IiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV90ZXh0ZXNfbG9pc19sbG0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5pbXBvcnQgc3RyZWFtIGZyb20gXCJzdHJlYW1cIlxuaW1wb3J0IHsgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMsIHBhdGhGcm9tRG9jdW1lbnRVaWQgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBwYXJzZVRleHRlTG9pIH0gZnJvbSBcIi4uL3BhcnNlcnMvdGV4dGVzX2xvaXNcIlxuaW1wb3J0IHtcbiAgY29tbWl0T3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxufSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIGNvbW1pdE9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcInJldHJpZXZlIGFsbCBkb2N1bWVudHMsIGV2ZW4gYWxyZWFkeSByZXRyaWV2ZWQgb25lc1wiLFxuICAgIG5hbWU6IFwiZnVsbFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcbmNvbnN0IHBpcGVsaW5lID0gdXRpbC5wcm9taXNpZnkoc3RyZWFtLnBpcGVsaW5lKVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVRleHRlc0xvaXMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudHNEaXIpXG5cbiAgZm9yIChjb25zdCB7IGRvY3VtZW50IH0gb2YgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMoXG4gICAgZGF0YURpcixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAgIHsgbm9WYWxpZGF0aW9uOiB0cnVlIH0sXG4gICkpIHtcbiAgICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCBkb2N1bWVudC51aWQpXG4gICAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudERpcilcblxuICAgIGNvbnN0IGRvY3VtZW50VHlwZTogc3RyaW5nID0gZG9jdW1lbnQuY2xhc3NpZmljYXRpb24/LnR5cGU/LmNvZGVcbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBbXCJQSU9OXCIsIFwiUFJKTFwiXVxuXG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoZG9jdW1lbnRUeXBlKSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBodG1sRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJkeW4tb3BlbmRhdGEuaHRtbFwiKVxuICAgIGNvbnN0IGh0bWxUZW1wRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgIGRvY3VtZW50RGlyLFxuICAgICAgXCJkeW4tb3BlbmRhdGFfdGVtcC5odG1sXCIsXG4gICAgKVxuICAgIGNvbnN0IHVybCA9IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL2R5bi9vcGVuZGF0YS8ke2RvY3VtZW50LnVpZH0uaHRtbGBcblxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBSZXRyaWV2aW5nIGRvY3VtZW50ICR7ZG9jdW1lbnQudWlkfSBhdCAke3VybH3igKZgKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICBhd2FpdCBwaXBlbGluZShcbiAgICAgICAgcmVzcG9uc2UuYm9keSBhcyB1bmtub3duIGFzIE5vZGVKUy5SZWFkYWJsZVN0cmVhbSxcbiAgICAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0oaHRtbFRlbXBGaWxlUGF0aCksXG4gICAgICApXG4gICAgICBmcy5yZW5hbWVTeW5jKGh0bWxUZW1wRmlsZVBhdGgsIGh0bWxGaWxlUGF0aClcbiAgICB9XG5cbiAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJwYXJzZWQuanNvblwiKVxuXG4gICAgLy8gSWYgSFRNTCBkb2VzIG5vdCBleGlzdCwgY29udGludWVcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoaHRtbEZpbGVQYXRoKSkge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2tpcHBpbmcgZG9jdW1lbnQgJHtkb2N1bWVudC51aWR9YClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSAmJiAhb3B0aW9ucy5mdWxsKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGh0bWw6IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhodG1sRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgUGFyc2luZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH3igKZgKVxuICAgIH1cbiAgICBjb25zdCB0ZXh0ZUxvaVBhcnNlZDogYW55ID0gYXdhaXQgcGFyc2VUZXh0ZUxvaShodG1sKVxuXG4gICAgaWYgKHRleHRlTG9pUGFyc2VkKSB7XG4gICAgICB0ZXh0ZUxvaVBhcnNlZC5kb2N1bWVudFJlZiA9IGRvY3VtZW50LnVpZFxuXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkodGV4dGVMb2lQYXJzZWQsIG51bGwsIDIpKVxuXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBEb2N1bWVudCAke2RvY3VtZW50LnVpZH0gc3VjY2Vzc2Z1bGx5IHBhcnNlZCAhYClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3Igd2hlbiBwYXJzaW5nIGRvY3VtZW50ICR7ZG9jdW1lbnQudWlkfWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKGRvY3VtZW50c0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbnJldHJpZXZlVGV4dGVzTG9pcygpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sR0FB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
@@ -1,85 +0,0 @@
1
- import commandLineArgs from "command-line-args";
2
- import fs from "fs-extra";
3
- import path from "path";
4
- import util from "util";
5
- import stream from "stream";
6
- import { iterLoadAssembleeDocuments, pathFromDocumentUid } from "../loaders.mjs";
7
- import * as git from "../git.mjs";
8
- import { parseTexteLoi } from "../parsers/textes_lois.mjs";
9
- import { commitOption, dataDirDefaultOption, legislatureOption, remoteOption, silentOption, verboseOption } from "./shared/cli_helpers.mjs";
10
- const optionsDefinitions = [commitOption, legislatureOption, remoteOption, silentOption, verboseOption, dataDirDefaultOption, {
11
- alias: "f",
12
- help: "retrieve all documents, even already retrieved ones",
13
- name: "full",
14
- type: Boolean
15
- }];
16
- const options = commandLineArgs(optionsDefinitions);
17
- const pipeline = util.promisify(stream.pipeline);
18
- async function retrieveTextesLois() {
19
- const dataDir = options.dataDir;
20
- const documentsDir = path.join(dataDir, "Documents");
21
- fs.ensureDirSync(documentsDir);
22
- for (const {
23
- document
24
- } of iterLoadAssembleeDocuments(dataDir, options.legislature, {
25
- noValidation: true
26
- })) {
27
- const documentDir = pathFromDocumentUid(documentsDir, document.uid);
28
- fs.ensureDirSync(documentDir);
29
- const documentType = document.classification?.type?.code;
30
- const allowedTypes = ["PION", "PRJL"];
31
- if (!allowedTypes.includes(documentType)) {
32
- continue;
33
- }
34
- const htmlFilePath = path.join(documentDir, "dyn-opendata.html");
35
- const htmlTempFilePath = path.join(documentDir, "dyn-opendata_temp.html");
36
- const url = `https://www.assemblee-nationale.fr/dyn/opendata/${document.uid}.html`;
37
- if (!options.silent) {
38
- console.log(`Retrieving document ${document.uid} at ${url}…`);
39
- }
40
- const response = await fetch(url);
41
- if (response.ok) {
42
- await pipeline(response.body, fs.createWriteStream(htmlTempFilePath));
43
- fs.renameSync(htmlTempFilePath, htmlFilePath);
44
- }
45
- const jsonFilePath = path.join(documentDir, "parsed.json");
46
-
47
- // If HTML does not exist, continue
48
- if (!fs.existsSync(htmlFilePath)) {
49
- if (!options.silent) {
50
- console.log(`Skipping document ${document.uid}`);
51
- }
52
- continue;
53
- }
54
- if (fs.existsSync(jsonFilePath) && !options.full) {
55
- continue;
56
- }
57
- const html = fs.readFileSync(htmlFilePath, {
58
- encoding: "utf8"
59
- });
60
- if (!options.silent) {
61
- console.log(`Parsing document ${document.uid}…`);
62
- }
63
- const texteLoiParsed = await parseTexteLoi(html);
64
- if (texteLoiParsed) {
65
- texteLoiParsed.documentRef = document.uid;
66
- fs.writeFileSync(jsonFilePath, JSON.stringify(texteLoiParsed, null, 2));
67
- if (!options.silent) {
68
- console.log(`Document ${document.uid} successfully parsed !`);
69
- }
70
- } else {
71
- if (!options.silent) {
72
- console.log(`Error when parsing document ${document.uid}`);
73
- }
74
- }
75
- }
76
- if (options.commit) {
77
- return git.commitAndPush(documentsDir, "Nouvelle moisson", options.remote);
78
- }
79
- return 0;
80
- }
81
- retrieveTextesLois().then(exitCode => process.exit(exitCode)).catch(error => {
82
- console.log(error);
83
- process.exit(1);
84
- });
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJ1dGlsIiwic3RyZWFtIiwiaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMiLCJwYXRoRnJvbURvY3VtZW50VWlkIiwiZ2l0IiwicGFyc2VUZXh0ZUxvaSIsImNvbW1pdE9wdGlvbiIsImRhdGFEaXJEZWZhdWx0T3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwib3B0aW9ucyIsInBpcGVsaW5lIiwicHJvbWlzaWZ5IiwicmV0cmlldmVUZXh0ZXNMb2lzIiwiZGF0YURpciIsImRvY3VtZW50c0RpciIsImpvaW4iLCJlbnN1cmVEaXJTeW5jIiwiZG9jdW1lbnQiLCJsZWdpc2xhdHVyZSIsIm5vVmFsaWRhdGlvbiIsImRvY3VtZW50RGlyIiwidWlkIiwiZG9jdW1lbnRUeXBlIiwiY2xhc3NpZmljYXRpb24iLCJjb2RlIiwiYWxsb3dlZFR5cGVzIiwiaW5jbHVkZXMiLCJodG1sRmlsZVBhdGgiLCJodG1sVGVtcEZpbGVQYXRoIiwidXJsIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInJlc3BvbnNlIiwiZmV0Y2giLCJvayIsImJvZHkiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlbmFtZVN5bmMiLCJqc29uRmlsZVBhdGgiLCJleGlzdHNTeW5jIiwiZnVsbCIsImh0bWwiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsInRleHRlTG9pUGFyc2VkIiwiZG9jdW1lbnRSZWYiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbW1pdCIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJ0aGVuIiwiZXhpdENvZGUiLCJwcm9jZXNzIiwiZXhpdCIsImNhdGNoIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV90ZXh0ZXNfbG9pc19sbG0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5pbXBvcnQgc3RyZWFtIGZyb20gXCJzdHJlYW1cIlxuaW1wb3J0IHsgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMsIHBhdGhGcm9tRG9jdW1lbnRVaWQgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBwYXJzZVRleHRlTG9pIH0gZnJvbSBcIi4uL3BhcnNlcnMvdGV4dGVzX2xvaXNcIlxuaW1wb3J0IHtcbiAgY29tbWl0T3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxufSBmcm9tIFwiLi9zaGFyZWQvY2xpX2hlbHBlcnNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIGNvbW1pdE9wdGlvbixcbiAgbGVnaXNsYXR1cmVPcHRpb24sXG4gIHJlbW90ZU9wdGlvbixcbiAgc2lsZW50T3B0aW9uLFxuICB2ZXJib3NlT3B0aW9uLFxuICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcInJldHJpZXZlIGFsbCBkb2N1bWVudHMsIGV2ZW4gYWxyZWFkeSByZXRyaWV2ZWQgb25lc1wiLFxuICAgIG5hbWU6IFwiZnVsbFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcbmNvbnN0IHBpcGVsaW5lID0gdXRpbC5wcm9taXNpZnkoc3RyZWFtLnBpcGVsaW5lKVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVRleHRlc0xvaXMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudHNEaXIpXG5cbiAgZm9yIChjb25zdCB7IGRvY3VtZW50IH0gb2YgaXRlckxvYWRBc3NlbWJsZWVEb2N1bWVudHMoXG4gICAgZGF0YURpcixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAgIHsgbm9WYWxpZGF0aW9uOiB0cnVlIH0sXG4gICkpIHtcbiAgICBjb25zdCBkb2N1bWVudERpciA9IHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyLCBkb2N1bWVudC51aWQpXG4gICAgZnMuZW5zdXJlRGlyU3luYyhkb2N1bWVudERpcilcblxuICAgIGNvbnN0IGRvY3VtZW50VHlwZTogc3RyaW5nID0gZG9jdW1lbnQuY2xhc3NpZmljYXRpb24/LnR5cGU/LmNvZGVcbiAgICBjb25zdCBhbGxvd2VkVHlwZXMgPSBbXCJQSU9OXCIsIFwiUFJKTFwiXVxuXG4gICAgaWYgKCFhbGxvd2VkVHlwZXMuaW5jbHVkZXMoZG9jdW1lbnRUeXBlKSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBodG1sRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJkeW4tb3BlbmRhdGEuaHRtbFwiKVxuICAgIGNvbnN0IGh0bWxUZW1wRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgIGRvY3VtZW50RGlyLFxuICAgICAgXCJkeW4tb3BlbmRhdGFfdGVtcC5odG1sXCIsXG4gICAgKVxuICAgIGNvbnN0IHVybCA9IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL2R5bi9vcGVuZGF0YS8ke2RvY3VtZW50LnVpZH0uaHRtbGBcblxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBSZXRyaWV2aW5nIGRvY3VtZW50ICR7ZG9jdW1lbnQudWlkfSBhdCAke3VybH3igKZgKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuXG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICBhd2FpdCBwaXBlbGluZShcbiAgICAgICAgcmVzcG9uc2UuYm9keSBhcyB1bmtub3duIGFzIE5vZGVKUy5SZWFkYWJsZVN0cmVhbSxcbiAgICAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0oaHRtbFRlbXBGaWxlUGF0aCksXG4gICAgICApXG4gICAgICBmcy5yZW5hbWVTeW5jKGh0bWxUZW1wRmlsZVBhdGgsIGh0bWxGaWxlUGF0aClcbiAgICB9XG5cbiAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihkb2N1bWVudERpciwgXCJwYXJzZWQuanNvblwiKVxuXG4gICAgLy8gSWYgSFRNTCBkb2VzIG5vdCBleGlzdCwgY29udGludWVcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoaHRtbEZpbGVQYXRoKSkge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgU2tpcHBpbmcgZG9jdW1lbnQgJHtkb2N1bWVudC51aWR9YClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoanNvbkZpbGVQYXRoKSAmJiAhb3B0aW9ucy5mdWxsKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGNvbnN0IGh0bWw6IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhodG1sRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgUGFyc2luZyBkb2N1bWVudCAke2RvY3VtZW50LnVpZH3igKZgKVxuICAgIH1cbiAgICBjb25zdCB0ZXh0ZUxvaVBhcnNlZDogYW55ID0gYXdhaXQgcGFyc2VUZXh0ZUxvaShodG1sKVxuXG4gICAgaWYgKHRleHRlTG9pUGFyc2VkKSB7XG4gICAgICB0ZXh0ZUxvaVBhcnNlZC5kb2N1bWVudFJlZiA9IGRvY3VtZW50LnVpZFxuXG4gICAgICBmcy53cml0ZUZpbGVTeW5jKGpzb25GaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkodGV4dGVMb2lQYXJzZWQsIG51bGwsIDIpKVxuXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBEb2N1bWVudCAke2RvY3VtZW50LnVpZH0gc3VjY2Vzc2Z1bGx5IHBhcnNlZCAhYClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgRXJyb3Igd2hlbiBwYXJzaW5nIGRvY3VtZW50ICR7ZG9jdW1lbnQudWlkfWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKGRvY3VtZW50c0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbnJldHJpZXZlVGV4dGVzTG9pcygpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxlQUFlLE1BQU0sbUJBQW1CO0FBQy9DLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxNQUFN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