@tricoteuses/arbre-de-la-loi
Version:
Generate ASTs from the French bills & laws; manipulate & export them to Markdown, etc.
99 lines (76 loc) • 7.84 kB
JavaScript
;
require("regenerator-runtime/runtime.js");
require("core-js/modules/es.promise.js");
require("core-js/modules/es.object.to-string.js");
require("core-js/modules/es.array.concat.js");
var _assert = _interopRequireDefault(require("assert"));
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
var _xastUtilFromXml = _interopRequireDefault(require("xast-util-from-xml"));
var _senat_akoma_ntoso_parser = require("../senat_akoma_ntoso_parser");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
var optionsDefinitions = [{
alias: "b",
help: "signet of Sénat bill to fetch and convert",
name: "bill",
type: String
}, {
alias: "s",
help: "don't log anything",
name: "silent",
type: Boolean
}, {
alias: "v",
help: "verbose logs",
name: "verbose",
type: Boolean
}, {
defaultOption: true,
help: "directory where to store the parsed bill",
name: "dir",
type: String
}];
var options = (0, _commandLineArgs["default"])(optionsDefinitions);
function main() {
return _main.apply(this, arguments);
}
function _main() {
_main = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var billSignet, billUrl, response, billXml, billXast, bill;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
billSignet = options.bill; // const dir = options.dir
billUrl = "https://www.senat.fr/akomantoso/".concat(billSignet, ".akn.xml");
if (!options.silent) {
console.log("Retrieving S\xE9nat bill at ".concat(billUrl, "\u2026"));
}
_context.next = 5;
return (0, _nodeFetch["default"])(billUrl);
case 5:
response = _context.sent;
(0, _assert["default"])(response.ok, "".concat(response.status, " ").concat(response.statusText));
_context.next = 9;
return response.text();
case 9:
billXml = _context.sent;
billXast = (0, _xastUtilFromXml["default"])(billXml); // console.log(inspectUnist.noColor(billXast, {showPositions: false}))
bill = (0, _senat_akoma_ntoso_parser.billFromSenatAkomaNtosoXast)(billXast);
console.log(JSON.stringify(bill, null, 2));
case 13:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return _main.apply(this, arguments);
}
main()["catch"](function (error) {
console.log(error);
process.exit(1);
});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2JpbGxfZnJvbV9zZW5hdF90ZXh0ZV9sb2lfc2lnbmV0LnRzIl0sIm5hbWVzIjpbIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiQm9vbGVhbiIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwibWFpbiIsImJpbGxTaWduZXQiLCJiaWxsIiwiYmlsbFVybCIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJiaWxsWG1sIiwiYmlsbFhhc3QiLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3IiLCJwcm9jZXNzIiwiZXhpdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOzs7Ozs7OztBQUVBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0FBQ0VDLEVBQUFBLEtBQUssRUFBRSxHQURUO0FBRUVDLEVBQUFBLElBQUksRUFBRSwyQ0FGUjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsTUFIUjtBQUlFQyxFQUFBQSxJQUFJLEVBQUVDO0FBSlIsQ0FEeUIsRUFPekI7QUFDRUosRUFBQUEsS0FBSyxFQUFFLEdBRFQ7QUFFRUMsRUFBQUEsSUFBSSxFQUFFLG9CQUZSO0FBR0VDLEVBQUFBLElBQUksRUFBRSxRQUhSO0FBSUVDLEVBQUFBLElBQUksRUFBRUU7QUFKUixDQVB5QixFQWF6QjtBQUNFTCxFQUFBQSxLQUFLLEVBQUUsR0FEVDtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsY0FGUjtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsU0FIUjtBQUlFQyxFQUFBQSxJQUFJLEVBQUVFO0FBSlIsQ0FieUIsRUFtQnpCO0FBQ0VDLEVBQUFBLGFBQWEsRUFBRSxJQURqQjtBQUVFTCxFQUFBQSxJQUFJLEVBQUUsMENBRlI7QUFHRUMsRUFBQUEsSUFBSSxFQUFFLEtBSFI7QUFJRUMsRUFBQUEsSUFBSSxFQUFFQztBQUpSLENBbkJ5QixDQUEzQjtBQTBCQSxJQUFNRyxPQUFPLEdBQUcsaUNBQWdCUixrQkFBaEIsQ0FBaEI7O1NBRWVTLEk7Ozs7O2tFQUFmO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNRQyxZQUFBQSxVQURSLEdBQ3FCRixPQUFPLENBQUNHLElBRDdCLEVBRUU7O0FBRU1DLFlBQUFBLE9BSlIsNkNBSXFERixVQUpyRDs7QUFLRSxnQkFBSSxDQUFDRixPQUFPLENBQUNLLE1BQWIsRUFBcUI7QUFDbkJDLGNBQUFBLE9BQU8sQ0FBQ0MsR0FBUix1Q0FBd0NILE9BQXhDO0FBQ0Q7O0FBUEg7QUFBQSxtQkFReUIsMkJBQU1BLE9BQU4sQ0FSekI7O0FBQUE7QUFRUUksWUFBQUEsUUFSUjtBQVNFLG9DQUFPQSxRQUFRLENBQUNDLEVBQWhCLFlBQXVCRCxRQUFRLENBQUNFLE1BQWhDLGNBQTBDRixRQUFRLENBQUNHLFVBQW5EO0FBVEY7QUFBQSxtQkFVd0JILFFBQVEsQ0FBQ0ksSUFBVCxFQVZ4Qjs7QUFBQTtBQVVRQyxZQUFBQSxPQVZSO0FBV1FDLFlBQUFBLFFBWFIsR0FXbUIsaUNBQVlELE9BQVosQ0FYbkIsRUFZRTs7QUFDTVYsWUFBQUEsSUFiUixHQWFlLDJEQUE0QlcsUUFBNUIsQ0FiZjtBQWNFUixZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWVEsSUFBSSxDQUFDQyxTQUFMLENBQWViLElBQWYsRUFBcUIsSUFBckIsRUFBMkIsQ0FBM0IsQ0FBWjs7QUFkRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHOzs7O0FBaUJBRixJQUFJLFdBQUosQ0FBYSxVQUFDZ0IsS0FBRCxFQUFXO0FBQ3RCWCxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWVUsS0FBWjtBQUNBQyxFQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYSxDQUFiO0FBQ0QsQ0FIRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuLy8gaW1wb3J0IGluc3BlY3RVbmlzdCBmcm9tIFwidW5pc3QtdXRpbC1pbnNwZWN0XCJcbmltcG9ydCB4YXN0RnJvbVhtbCBmcm9tIFwieGFzdC11dGlsLWZyb20teG1sXCJcblxuaW1wb3J0IHsgYmlsbEZyb21TZW5hdEFrb21hTnRvc29YYXN0IH0gZnJvbSBcIi4uL3NlbmF0X2Frb21hX250b3NvX3BhcnNlclwiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImJcIixcbiAgICBoZWxwOiBcInNpZ25ldCBvZiBTw6luYXQgYmlsbCB0byBmZXRjaCBhbmQgY29udmVydFwiLFxuICAgIG5hbWU6IFwiYmlsbFwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IHdoZXJlIHRvIHN0b3JlIHRoZSBwYXJzZWQgYmlsbFwiLFxuICAgIG5hbWU6IFwiZGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IGJpbGxTaWduZXQgPSBvcHRpb25zLmJpbGxcbiAgLy8gY29uc3QgZGlyID0gb3B0aW9ucy5kaXJcblxuICBjb25zdCBiaWxsVXJsID0gYGh0dHBzOi8vd3d3LnNlbmF0LmZyL2Frb21hbnRvc28vJHtiaWxsU2lnbmV0fS5ha24ueG1sYFxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYFJldHJpZXZpbmcgU8OpbmF0IGJpbGwgYXQgJHtiaWxsVXJsfeKApmApXG4gIH1cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChiaWxsVXJsKVxuICBhc3NlcnQocmVzcG9uc2Uub2ssIGAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWApXG4gIGNvbnN0IGJpbGxYbWwgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgY29uc3QgYmlsbFhhc3QgPSB4YXN0RnJvbVhtbChiaWxsWG1sKVxuICAvLyBjb25zb2xlLmxvZyhpbnNwZWN0VW5pc3Qubm9Db2xvcihiaWxsWGFzdCwge3Nob3dQb3NpdGlvbnM6IGZhbHNlfSkpXG4gIGNvbnN0IGJpbGwgPSBiaWxsRnJvbVNlbmF0QWtvbWFOdG9zb1hhc3QoYmlsbFhhc3QpXG4gIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGJpbGwsIG51bGwsIDIpKVxufVxuXG5tYWluKCkuY2F0Y2goKGVycm9yKSA9PiB7XG4gIGNvbnNvbGUubG9nKGVycm9yKVxuICBwcm9jZXNzLmV4aXQoMSlcbn0pXG4iXX0=