@tricoteuses/assemblee 1.10.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/lib/amendements-79bwpkvR.js +154 -0
- package/lib/amendements-CV3s5a0M.js +667 -0
- package/lib/cleaners/index.d.ts +9 -9
- package/lib/cleaners.js +564 -0
- package/lib/datasets.d.ts +3 -3
- package/lib/dossiers_legislatifs.d.ts +2 -2
- package/lib/index.d.ts +17 -22
- package/lib/index.js +1542 -314
- package/lib/inserters.d.ts +5 -5
- package/lib/loaders-9mHdTl9L.js +4158 -0
- package/lib/loaders.d.ts +12 -12
- package/lib/loaders.js +29 -1689
- package/lib/organes.d.ts +1 -1
- package/lib/parse-Ccs6wcUg.js +2512 -0
- package/lib/parsers/index.d.ts +2 -3
- package/lib/parsers/plf.d.ts +1 -0
- package/lib/parsers/recherche_amendements.d.ts +2 -2
- package/lib/parsers/textes_lois.d.ts +1 -23
- package/lib/parsers.js +398 -0
- package/lib/raw_types/acteurs_et_organes.d.ts +4 -2
- package/lib/raw_types/debats.d.ts +2 -2
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
- package/lib/schemas/acteurs_et_organes.json +1166 -0
- package/lib/schemas/agendas.json +1745 -0
- package/lib/schemas/amendements.json +2085 -0
- package/lib/schemas/debats.json +842 -0
- package/lib/schemas/dossiers_legislatifs.json +3874 -0
- package/lib/schemas/legislatures.json +17 -0
- package/lib/schemas/questions.json +704 -0
- package/lib/schemas/scrutins.json +701 -0
- package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
- package/lib/types/acteurs_et_organes.d.ts +344 -2
- package/lib/types/agendas.d.ts +236 -10
- package/lib/types/amendements.d.ts +276 -1
- package/lib/types/debats.d.ts +52 -2
- package/lib/types/dossiers_legislatifs.d.ts +403 -9
- package/lib/types/questions.d.ts +99 -2
- package/lib/types/scrutins.d.ts +101 -0
- package/lib/urls.d.ts +2 -2
- package/package.json +33 -95
- package/lib/api.js +0 -52
- package/lib/api.mjs +0 -45
- package/lib/bugs/acteur-00010/plugin.test.js +0 -90
- package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
- package/lib/bugs/acteur-00010.d.ts +0 -7
- package/lib/bugs/acteur-00010.js +0 -116
- package/lib/bugs/acteur-00010.mjs +0 -26
- package/lib/bugs/agenda-00002/plugin.test.js +0 -124
- package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
- package/lib/bugs/agenda-00002.d.ts +0 -15
- package/lib/bugs/agenda-00002.js +0 -406
- package/lib/bugs/agenda-00002.mjs +0 -172
- package/lib/bugs/agenda-00008/plugin.test.js +0 -92
- package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
- package/lib/bugs/agenda-00008.d.ts +0 -7
- package/lib/bugs/agenda-00008.js +0 -123
- package/lib/bugs/agenda-00008.mjs +0 -26
- package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
- package/lib/bugs/agenda-00011/plugin.test.js +0 -263
- package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
- package/lib/bugs/agenda-00011.d.ts +0 -16
- package/lib/bugs/agenda-00011.js +0 -333
- package/lib/bugs/agenda-00011.mjs +0 -125
- package/lib/bugs.d.ts +0 -21
- package/lib/bugs.js +0 -452
- package/lib/bugs.mjs +0 -70
- package/lib/cleaners/actes_legislatifs.js +0 -315
- package/lib/cleaners/actes_legislatifs.mjs +0 -253
- package/lib/cleaners/acteurs.js +0 -265
- package/lib/cleaners/acteurs.mjs +0 -180
- package/lib/cleaners/amendements.js +0 -294
- package/lib/cleaners/amendements.mjs +0 -227
- package/lib/cleaners/debats.js +0 -12
- package/lib/cleaners/debats.mjs +0 -5
- package/lib/cleaners/documents.js +0 -205
- package/lib/cleaners/documents.mjs +0 -133
- package/lib/cleaners/dossiers_legislatifs.js +0 -131
- package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
- package/lib/cleaners/index.js +0 -70
- package/lib/cleaners/index.mjs +0 -10
- package/lib/cleaners/organes.js +0 -65
- package/lib/cleaners/organes.mjs +0 -48
- package/lib/cleaners/questions.js +0 -12
- package/lib/cleaners/questions.mjs +0 -5
- package/lib/cleaners/reunions.js +0 -312
- package/lib/cleaners/reunions.mjs +0 -255
- package/lib/cleaners/scrutins.js +0 -340
- package/lib/cleaners/scrutins.mjs +0 -221
- package/lib/cleaners/xml.js +0 -95
- package/lib/cleaners/xml.mjs +0 -58
- package/lib/datasets.js +0 -837
- package/lib/datasets.mjs +0 -755
- package/lib/dates.js +0 -124
- package/lib/dates.mjs +0 -100
- package/lib/dossiers_legislatifs.js +0 -346
- package/lib/dossiers_legislatifs.mjs +0 -208
- package/lib/file_systems.js +0 -162
- package/lib/file_systems.mjs +0 -62
- package/lib/git.js +0 -223
- package/lib/git.mjs +0 -151
- package/lib/index.mjs +0 -17
- package/lib/inserters.js +0 -521
- package/lib/inserters.mjs +0 -337
- package/lib/loaders.mjs +0 -886
- package/lib/logger.js +0 -35
- package/lib/logger.mjs +0 -26
- package/lib/organes.js +0 -22
- package/lib/organes.mjs +0 -15
- package/lib/parsers/documents.d.ts +0 -62
- package/lib/parsers/documents.js +0 -453
- package/lib/parsers/documents.mjs +0 -370
- package/lib/parsers/index.js +0 -40
- package/lib/parsers/index.mjs +0 -4
- package/lib/parsers/recherche_amendements.js +0 -403
- package/lib/parsers/recherche_amendements.mjs +0 -167
- package/lib/parsers/textes_lois.js +0 -307
- package/lib/parsers/textes_lois.mjs +0 -264
- package/lib/raw_types/acteurs_et_organes.js +0 -1213
- package/lib/raw_types/acteurs_et_organes.mjs +0 -1146
- package/lib/raw_types/agendas.js +0 -777
- package/lib/raw_types/agendas.mjs +0 -724
- package/lib/raw_types/amendements.js +0 -1052
- package/lib/raw_types/amendements.mjs +0 -993
- package/lib/raw_types/debats.js +0 -630
- package/lib/raw_types/debats.mjs +0 -573
- package/lib/raw_types/dossiers_legislatifs.js +0 -1529
- package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
- package/lib/raw_types/questions.js +0 -469
- package/lib/raw_types/questions.mjs +0 -416
- package/lib/raw_types/scrutins.js +0 -651
- package/lib/raw_types/scrutins.mjs +0 -598
- package/lib/schemas/acteur/Acteur.json +0 -56
- package/lib/schemas/acteur/AdresseElectronique.json +0 -52
- package/lib/schemas/acteur/AdressePostale.json +0 -75
- package/lib/schemas/acteur/Civ.json +0 -14
- package/lib/schemas/acteur/Collaborateur.json +0 -29
- package/lib/schemas/acteur/EtatCivil.json +0 -51
- package/lib/schemas/acteur/Ident.json +0 -40
- package/lib/schemas/acteur/Lieu.json +0 -66
- package/lib/schemas/acteur/Mandat.json +0 -192
- package/lib/schemas/acteur/Profession.json +0 -46
- package/lib/schemas/agenda/Agenda.json +0 -318
- package/lib/schemas/agenda/CycleDeVie.json +0 -45
- package/lib/schemas/agenda/PointOdj.json +0 -82
- package/lib/schemas/amendement/Amendement.json +0 -246
- package/lib/schemas/amendement/Diff.json +0 -25
- package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
- package/lib/schemas/amendement/Identifiant.json +0 -62
- package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
- package/lib/schemas/amendement/Representation.json +0 -67
- package/lib/schemas/amendement/Total.json +0 -26
- package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
- package/lib/schemas/converted_from_type/agendas.json +0 -1100
- package/lib/schemas/converted_from_type/amendements.json +0 -3191
- package/lib/schemas/converted_from_type/debats.json +0 -682
- package/lib/schemas/converted_from_type/deputes.json +0 -26
- package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
- package/lib/schemas/converted_from_type/legislatures.json +0 -16
- package/lib/schemas/converted_from_type/questions.json +0 -328
- package/lib/schemas/converted_from_type/scrutins.json +0 -393
- package/lib/schemas/debat/Contenu.json +0 -75
- package/lib/schemas/debat/Debat.json +0 -40
- package/lib/schemas/debat/Metadonnees.json +0 -75
- package/lib/schemas/debat/Orateur.json +0 -60
- package/lib/schemas/debat/Point.json +0 -169
- package/lib/schemas/debat/Sommaire.json +0 -71
- package/lib/schemas/debat/SommaireElement.json +0 -108
- package/lib/schemas/debat/Texte.json +0 -34
- package/lib/schemas/document/CodeLibelle.json +0 -25
- package/lib/schemas/document/Document.json +0 -385
- package/lib/schemas/document/Indexation.json +0 -38
- package/lib/schemas/dossier/ActeLegislatif.json +0 -211
- package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
- package/lib/schemas/dossier/Agenda.json +0 -23
- package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
- package/lib/schemas/dossier/Decision.json +0 -25
- package/lib/schemas/dossier/Dossier.json +0 -124
- package/lib/schemas/dossier/EtudeImpact.json +0 -29
- package/lib/schemas/dossier/EtudePlf.json +0 -105
- package/lib/schemas/dossier/Europe.json +0 -42
- package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
- package/lib/schemas/dossier/InfoJO.json +0 -23
- package/lib/schemas/dossier/Initiateur.json +0 -36
- package/lib/schemas/dossier/Motion.json +0 -27
- package/lib/schemas/dossier/Promulgation.json +0 -62
- package/lib/schemas/dossier/Rapporteur.json +0 -36
- package/lib/schemas/dossier/Texte.json +0 -47
- package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
- package/lib/schemas/organe/Organe.json +0 -136
- package/lib/schemas/organe/ViMoDe.json +0 -28
- package/lib/schemas/question/Auteur.json +0 -58
- package/lib/schemas/question/Cloture.json +0 -28
- package/lib/schemas/question/InfoJO.json +0 -40
- package/lib/schemas/question/MinAttribElement.json +0 -30
- package/lib/schemas/question/Question.json +0 -172
- package/lib/schemas/question/Renouvellement.json +0 -17
- package/lib/schemas/question/Signalement.json +0 -21
- package/lib/schemas/question/Texte.json +0 -24
- package/lib/schemas/scrutin/DecompteVoix.json +0 -35
- package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
- package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
- package/lib/schemas/scrutin/OrganeVotant.json +0 -88
- package/lib/schemas/scrutin/Scrutin.json +0 -187
- package/lib/schemas/scrutin/Votant.json +0 -37
- package/lib/scripts/bugs_helper.d.ts +0 -13
- package/lib/scripts/bugs_helper.js +0 -595
- package/lib/scripts/bugs_helper.mjs +0 -251
- package/lib/scripts/clean_reorganized_data.js +0 -610
- package/lib/scripts/clean_reorganized_data.mjs +0 -273
- package/lib/scripts/diff_amendements.js +0 -249
- package/lib/scripts/diff_amendements.mjs +0 -202
- package/lib/scripts/document_dossiers_legislatifs.js +0 -655
- package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
- package/lib/scripts/get_today_reunions.js +0 -37
- package/lib/scripts/get_today_reunions.mjs +0 -31
- package/lib/scripts/merge_scrutins.js +0 -97
- package/lib/scripts/merge_scrutins.mjs +0 -47
- package/lib/scripts/parse_textes_lois.d.ts +0 -1
- package/lib/scripts/parse_textes_lois.js +0 -171
- package/lib/scripts/parse_textes_lois.mjs +0 -140
- package/lib/scripts/process_open_dataset.js +0 -301
- package/lib/scripts/process_open_dataset.mjs +0 -134
- package/lib/scripts/raw_types_from_amendements.js +0 -135
- package/lib/scripts/raw_types_from_amendements.mjs +0 -134
- package/lib/scripts/reorganize_data.js +0 -805
- package/lib/scripts/reorganize_data.mjs +0 -517
- package/lib/scripts/retrieve_deputes_photos.js +0 -310
- package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
- package/lib/scripts/retrieve_documents.js +0 -547
- package/lib/scripts/retrieve_documents.mjs +0 -242
- package/lib/scripts/retrieve_open_data.js +0 -107
- package/lib/scripts/retrieve_open_data.mjs +0 -26
- package/lib/scripts/retrieve_pending_amendments.js +0 -206
- package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
- package/lib/scripts/retrieve_senateurs_photos.js +0 -234
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
- package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois.js +0 -240
- package/lib/scripts/retrieve_textes_lois.mjs +0 -85
- package/lib/scripts/shared/cli_helpers.js +0 -89
- package/lib/scripts/shared/cli_helpers.mjs +0 -81
- package/lib/scripts/test_iter_load.js +0 -155
- package/lib/scripts/test_iter_load.mjs +0 -72
- package/lib/scripts/test_load.js +0 -26
- package/lib/scripts/test_load.mjs +0 -16
- package/lib/scripts/test_load_big_files.js +0 -26
- package/lib/scripts/test_load_big_files.mjs +0 -16
- package/lib/scripts/validate_json.js +0 -353
- package/lib/scripts/validate_json.mjs +0 -184
- package/lib/shared_types/codes_actes.js +0 -231
- package/lib/shared_types/codes_actes.mjs +0 -224
- package/lib/strings.js +0 -16
- package/lib/strings.mjs +0 -7
- package/lib/types/acteurs_et_organes.js +0 -963
- package/lib/types/acteurs_et_organes.mjs +0 -904
- package/lib/types/agendas.js +0 -628
- package/lib/types/agendas.mjs +0 -575
- package/lib/types/amendements.js +0 -899
- package/lib/types/amendements.mjs +0 -842
- package/lib/types/debats.js +0 -619
- package/lib/types/debats.mjs +0 -562
- package/lib/types/dossiers_legislatifs.js +0 -1188
- package/lib/types/dossiers_legislatifs.mjs +0 -1130
- package/lib/types/legislatures.js +0 -17
- package/lib/types/legislatures.mjs +0 -10
- package/lib/types/questions.js +0 -454
- package/lib/types/questions.mjs +0 -401
- package/lib/types/scrutins.js +0 -556
- package/lib/types/scrutins.mjs +0 -503
- package/lib/urls.js +0 -325
- package/lib/urls.mjs +0 -258
- /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
- /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
- /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
package/lib/bugs/agenda-00011.js
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.symbol.async-iterator.js");
|
|
6
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
7
|
-
require("core-js/modules/es.symbol.to-string-tag.js");
|
|
8
|
-
require("core-js/modules/es.array.for-each.js");
|
|
9
|
-
require("core-js/modules/es.array.iterator.js");
|
|
10
|
-
require("core-js/modules/es.array.reverse.js");
|
|
11
|
-
require("core-js/modules/es.array.slice.js");
|
|
12
|
-
require("core-js/modules/es.function.bind.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.reflect.construct.js");
|
|
21
|
-
require("core-js/modules/es.string.iterator.js");
|
|
22
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
23
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
24
|
-
Object.defineProperty(exports, "__esModule", {
|
|
25
|
-
value: true
|
|
26
|
-
});
|
|
27
|
-
exports.Plugin = void 0;
|
|
28
|
-
require("core-js/modules/es.symbol.to-primitive.js");
|
|
29
|
-
require("core-js/modules/es.array.map.js");
|
|
30
|
-
require("core-js/modules/es.array.sort.js");
|
|
31
|
-
require("core-js/modules/es.date.to-primitive.js");
|
|
32
|
-
require("core-js/modules/es.number.constructor.js");
|
|
33
|
-
require("core-js/modules/es.object.to-string.js");
|
|
34
|
-
require("core-js/modules/es.promise.js");
|
|
35
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
36
|
-
require("core-js/modules/es.string.replace.js");
|
|
37
|
-
var _tinyVersionCompare = _interopRequireDefault(require("tiny-version-compare"));
|
|
38
|
-
var _bugs = require("../bugs");
|
|
39
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
40
|
-
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); }
|
|
41
|
-
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; }
|
|
42
|
-
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); }
|
|
43
|
-
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); }); }; }
|
|
44
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
45
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
46
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
47
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
48
|
-
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
49
|
-
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
50
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
51
|
-
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
52
|
-
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
53
|
-
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
54
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
55
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
56
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
57
|
-
// https://www.wikidata.org/wiki/Wikidata:WikiProject_France/Assembl%C3%A9e_Nationale#Legislative_session
|
|
58
|
-
var url = "https://query.wikidata.org/sparql?query=SELECT%20DISTINCT%20%3Fsession%20%3Fstart_time%20%3Fend_time%20%3Flabel%20%3Ffollows%20%3Ffollowed_by%20WHERE%20%7B%0A%0A%20%20%20%3Fsession%20wdt%3AP31%2Fwdt%3AP279*%20wd%3AQ87337481.%0A%20%20%20%3Fsession%20wdt%3AP580%20%3Fstart_time.%20%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP582%20%3Fend_time%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP155%20%3Ffollows%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP156%20%3Ffollowed_by%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20rdfs%3Alabel%20%3Flabel%20filter%20(lang(%3Flabel)%20%3D%20%22fr%22)%20.%7D%0A%7D";
|
|
59
|
-
function compareString(a, b) {
|
|
60
|
-
if (a < b) return -1;
|
|
61
|
-
if (a > b) return 1;
|
|
62
|
-
return 0;
|
|
63
|
-
}
|
|
64
|
-
var Plugin = exports.Plugin = /*#__PURE__*/function (_BasePlugin) {
|
|
65
|
-
function Plugin(options) {
|
|
66
|
-
var _this;
|
|
67
|
-
_classCallCheck(this, Plugin);
|
|
68
|
-
_this = _callSuper(this, Plugin, [options, "agenda-00011"]);
|
|
69
|
-
_defineProperty(_this, "sessions", void 0);
|
|
70
|
-
_defineProperty(_this, "fetch", void 0);
|
|
71
|
-
_this.fetch = fetch;
|
|
72
|
-
return _this;
|
|
73
|
-
}
|
|
74
|
-
_inherits(Plugin, _BasePlugin);
|
|
75
|
-
return _createClass(Plugin, [{
|
|
76
|
-
key: "preFix",
|
|
77
|
-
value: function () {
|
|
78
|
-
var _preFix = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
79
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
80
|
-
while (1) switch (_context.prev = _context.next) {
|
|
81
|
-
case 0:
|
|
82
|
-
return _context.abrupt("return", this.setSessions());
|
|
83
|
-
case 1:
|
|
84
|
-
case "end":
|
|
85
|
-
return _context.stop();
|
|
86
|
-
}
|
|
87
|
-
}, _callee, this);
|
|
88
|
-
}));
|
|
89
|
-
function preFix() {
|
|
90
|
-
return _preFix.apply(this, arguments);
|
|
91
|
-
}
|
|
92
|
-
return preFix;
|
|
93
|
-
}()
|
|
94
|
-
}, {
|
|
95
|
-
key: "preCheck",
|
|
96
|
-
value: function () {
|
|
97
|
-
var _preCheck = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
98
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
99
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
100
|
-
case 0:
|
|
101
|
-
return _context2.abrupt("return", this.setSessions());
|
|
102
|
-
case 1:
|
|
103
|
-
case "end":
|
|
104
|
-
return _context2.stop();
|
|
105
|
-
}
|
|
106
|
-
}, _callee2, this);
|
|
107
|
-
}));
|
|
108
|
-
function preCheck() {
|
|
109
|
-
return _preCheck.apply(this, arguments);
|
|
110
|
-
}
|
|
111
|
-
return preCheck;
|
|
112
|
-
}()
|
|
113
|
-
}, {
|
|
114
|
-
key: "setSessions",
|
|
115
|
-
value: function () {
|
|
116
|
-
var _setSessions = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
117
|
-
var sessions;
|
|
118
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
119
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
120
|
-
case 0:
|
|
121
|
-
_context3.next = 2;
|
|
122
|
-
return this.fetchSessions();
|
|
123
|
-
case 2:
|
|
124
|
-
sessions = _context3.sent.sort(function (a, b) {
|
|
125
|
-
return compareString(a["start_time"]["value"], b["start_time"]["value"]);
|
|
126
|
-
});
|
|
127
|
-
this.sessions = sessions.map(function (s) {
|
|
128
|
-
return {
|
|
129
|
-
label: s["label"]["value"].replace(/\s+en france/i, ""),
|
|
130
|
-
debut: s["start_time"]["value"].substr(0, 10),
|
|
131
|
-
fin: s["end_time"]["value"].substr(0, 10)
|
|
132
|
-
};
|
|
133
|
-
});
|
|
134
|
-
case 4:
|
|
135
|
-
case "end":
|
|
136
|
-
return _context3.stop();
|
|
137
|
-
}
|
|
138
|
-
}, _callee3, this);
|
|
139
|
-
}));
|
|
140
|
-
function setSessions() {
|
|
141
|
-
return _setSessions.apply(this, arguments);
|
|
142
|
-
}
|
|
143
|
-
return setSessions;
|
|
144
|
-
}()
|
|
145
|
-
}, {
|
|
146
|
-
key: "get",
|
|
147
|
-
value: function () {
|
|
148
|
-
var _get = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(url, headers) {
|
|
149
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
150
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
151
|
-
case 0:
|
|
152
|
-
return _context4.abrupt("return", this.fetch(url, headers));
|
|
153
|
-
case 1:
|
|
154
|
-
case "end":
|
|
155
|
-
return _context4.stop();
|
|
156
|
-
}
|
|
157
|
-
}, _callee4, this);
|
|
158
|
-
}));
|
|
159
|
-
function get(_x, _x2) {
|
|
160
|
-
return _get.apply(this, arguments);
|
|
161
|
-
}
|
|
162
|
-
return get;
|
|
163
|
-
}()
|
|
164
|
-
}, {
|
|
165
|
-
key: "fetchSessions",
|
|
166
|
-
value: function () {
|
|
167
|
-
var _fetchSessions = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
168
|
-
var response, payload;
|
|
169
|
-
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
170
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
171
|
-
case 0:
|
|
172
|
-
_context5.next = 2;
|
|
173
|
-
return this.get(url, {
|
|
174
|
-
headers: {
|
|
175
|
-
Accept: "application/json"
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
case 2:
|
|
179
|
-
response = _context5.sent;
|
|
180
|
-
if (response.ok) {
|
|
181
|
-
_context5.next = 5;
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
throw response;
|
|
185
|
-
case 5:
|
|
186
|
-
_context5.next = 7;
|
|
187
|
-
return response.json();
|
|
188
|
-
case 7:
|
|
189
|
-
payload = _context5.sent;
|
|
190
|
-
return _context5.abrupt("return", payload["results"]["bindings"]);
|
|
191
|
-
case 9:
|
|
192
|
-
case "end":
|
|
193
|
-
return _context5.stop();
|
|
194
|
-
}
|
|
195
|
-
}, _callee5, this);
|
|
196
|
-
}));
|
|
197
|
-
function fetchSessions() {
|
|
198
|
-
return _fetchSessions.apply(this, arguments);
|
|
199
|
-
}
|
|
200
|
-
return fetchSessions;
|
|
201
|
-
}()
|
|
202
|
-
}, {
|
|
203
|
-
key: "lookupSession",
|
|
204
|
-
value: function lookupSession(debut) {
|
|
205
|
-
var max = this.sessions.length - 1;
|
|
206
|
-
var min = 0;
|
|
207
|
-
var h = max;
|
|
208
|
-
var m;
|
|
209
|
-
var l = min;
|
|
210
|
-
var session;
|
|
211
|
-
var ok;
|
|
212
|
-
do {
|
|
213
|
-
m = Math.floor((l + h) / 2);
|
|
214
|
-
session = this.sessions[m];
|
|
215
|
-
ok = session.debut <= debut && debut <= session.fin;
|
|
216
|
-
if (!ok) {
|
|
217
|
-
if (l == m && m == h)
|
|
218
|
-
// in between sessions
|
|
219
|
-
return null;
|
|
220
|
-
if (debut < session.debut) {
|
|
221
|
-
if (m <= min) return null;
|
|
222
|
-
h = m;
|
|
223
|
-
} else if (debut > session.fin) {
|
|
224
|
-
if (m >= max) return null;
|
|
225
|
-
l = l == m ? h : m;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
} while (!ok);
|
|
229
|
-
return session;
|
|
230
|
-
}
|
|
231
|
-
}, {
|
|
232
|
-
key: "inScope",
|
|
233
|
-
value: function inScope(agenda) {
|
|
234
|
-
if (agenda.xsiType != "seance_type" || agenda.lieu !== undefined && agenda.lieu.code != "CG" && agenda.lieu.code != "AN") return false;
|
|
235
|
-
if (agenda.cycleDeVie.etat != "Confirmé") return false;
|
|
236
|
-
return true;
|
|
237
|
-
}
|
|
238
|
-
}, {
|
|
239
|
-
key: "check",
|
|
240
|
-
value: function () {
|
|
241
|
-
var _check = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(agenda, _filename) {
|
|
242
|
-
var debut, session;
|
|
243
|
-
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
244
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
245
|
-
case 0:
|
|
246
|
-
if (this.inScope(agenda)) {
|
|
247
|
-
_context6.next = 2;
|
|
248
|
-
break;
|
|
249
|
-
}
|
|
250
|
-
return _context6.abrupt("return", null);
|
|
251
|
-
case 2:
|
|
252
|
-
debut = agenda.timestampDebut.substr(0, 10);
|
|
253
|
-
session = this.lookupSession(debut);
|
|
254
|
-
if (!(session == null)) {
|
|
255
|
-
_context6.next = 8;
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
return _context6.abrupt("return", {
|
|
259
|
-
status: "needs-fixing",
|
|
260
|
-
info: ["".concat(debut, " is not in a session")]
|
|
261
|
-
});
|
|
262
|
-
case 8:
|
|
263
|
-
return _context6.abrupt("return", {
|
|
264
|
-
status: "ok",
|
|
265
|
-
info: [""]
|
|
266
|
-
});
|
|
267
|
-
case 9:
|
|
268
|
-
case "end":
|
|
269
|
-
return _context6.stop();
|
|
270
|
-
}
|
|
271
|
-
}, _callee6, this);
|
|
272
|
-
}));
|
|
273
|
-
function check(_x3, _x4) {
|
|
274
|
-
return _check.apply(this, arguments);
|
|
275
|
-
}
|
|
276
|
-
return check;
|
|
277
|
-
}()
|
|
278
|
-
}, {
|
|
279
|
-
key: "maybeUpgradeSchemaVersion",
|
|
280
|
-
value: function maybeUpgradeSchemaVersion(agenda) {
|
|
281
|
-
if (agenda.schemaVersion !== undefined) {
|
|
282
|
-
var version = agenda.schemaVersion.split("-")[1];
|
|
283
|
-
if ((0, _tinyVersionCompare["default"])(version, "1.0") == 1) return;
|
|
284
|
-
}
|
|
285
|
-
agenda.schemaVersion = "agenda-1.1";
|
|
286
|
-
}
|
|
287
|
-
}, {
|
|
288
|
-
key: "fix",
|
|
289
|
-
value: function () {
|
|
290
|
-
var _fix = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(agenda, _filename) {
|
|
291
|
-
var status, session;
|
|
292
|
-
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
293
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
294
|
-
case 0:
|
|
295
|
-
if ("sessionRef" in agenda) {
|
|
296
|
-
// sessionRef is undefined and must be removed
|
|
297
|
-
delete agenda.sessionRef;
|
|
298
|
-
status = true;
|
|
299
|
-
} else {
|
|
300
|
-
// if there is no sessionRef to remove, file which is not in scope does not need to be rewritten
|
|
301
|
-
status = null;
|
|
302
|
-
}
|
|
303
|
-
if (this.inScope(agenda)) {
|
|
304
|
-
_context7.next = 3;
|
|
305
|
-
break;
|
|
306
|
-
}
|
|
307
|
-
return _context7.abrupt("return", status);
|
|
308
|
-
case 3:
|
|
309
|
-
if ("session" in agenda) delete agenda.session;
|
|
310
|
-
session = this.lookupSession(agenda.timestampDebut.substr(0, 10));
|
|
311
|
-
if (!(session == null)) {
|
|
312
|
-
_context7.next = 9;
|
|
313
|
-
break;
|
|
314
|
-
}
|
|
315
|
-
return _context7.abrupt("return", null);
|
|
316
|
-
case 9:
|
|
317
|
-
agenda.session = session;
|
|
318
|
-
this.maybeUpgradeSchemaVersion(agenda);
|
|
319
|
-
return _context7.abrupt("return", true);
|
|
320
|
-
case 12:
|
|
321
|
-
case "end":
|
|
322
|
-
return _context7.stop();
|
|
323
|
-
}
|
|
324
|
-
}, _callee7, this);
|
|
325
|
-
}));
|
|
326
|
-
function fix(_x5, _x6) {
|
|
327
|
-
return _fix.apply(this, arguments);
|
|
328
|
-
}
|
|
329
|
-
return fix;
|
|
330
|
-
}()
|
|
331
|
-
}]);
|
|
332
|
-
}(_bugs.BasePlugin);
|
|
333
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGlueVZlcnNpb25Db21wYXJlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYnVncyIsImUiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInQiLCJyIiwiT2JqZWN0IiwibiIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJhIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIlJlZmVyZW5jZUVycm9yIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJiaW5kIiwiX2luaGVyaXRzIiwiX3NldFByb3RvdHlwZU9mIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJ1cmwiLCJjb21wYXJlU3RyaW5nIiwiYiIsIlBsdWdpbiIsImV4cG9ydHMiLCJfQmFzZVBsdWdpbiIsIm9wdGlvbnMiLCJfdGhpcyIsImZldGNoIiwiX3ByZUZpeCIsIl9jYWxsZWUiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic2V0U2Vzc2lvbnMiLCJwcmVGaXgiLCJfcHJlQ2hlY2siLCJfY2FsbGVlMiIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInByZUNoZWNrIiwiX3NldFNlc3Npb25zIiwiX2NhbGxlZTMiLCJzZXNzaW9ucyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImZldGNoU2Vzc2lvbnMiLCJzb3J0IiwibWFwIiwibGFiZWwiLCJyZXBsYWNlIiwiZGVidXQiLCJzdWJzdHIiLCJmaW4iLCJfZ2V0IiwiX2NhbGxlZTQiLCJoZWFkZXJzIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwiZ2V0IiwiX3giLCJfeDIiLCJfZmV0Y2hTZXNzaW9ucyIsIl9jYWxsZWU1IiwicmVzcG9uc2UiLCJwYXlsb2FkIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwiQWNjZXB0Iiwib2siLCJqc29uIiwibG9va3VwU2Vzc2lvbiIsIm1heCIsIm1pbiIsIm0iLCJzZXNzaW9uIiwiTWF0aCIsImZsb29yIiwiaW5TY29wZSIsImFnZW5kYSIsInhzaVR5cGUiLCJsaWV1IiwidW5kZWZpbmVkIiwiY29kZSIsImN5Y2xlRGVWaWUiLCJldGF0IiwiX2NoZWNrIiwiX2NhbGxlZTYiLCJfZmlsZW5hbWUiLCJfY2FsbGVlNiQiLCJfY29udGV4dDYiLCJ0aW1lc3RhbXBEZWJ1dCIsInN0YXR1cyIsImluZm8iLCJjb25jYXQiLCJjaGVjayIsIl94MyIsIl94NCIsIm1heWJlVXBncmFkZVNjaGVtYVZlcnNpb24iLCJzY2hlbWFWZXJzaW9uIiwidmVyc2lvbiIsInNwbGl0IiwidmVyc2lvbkNvbXBhcmUiLCJfZml4IiwiX2NhbGxlZTciLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJzZXNzaW9uUmVmIiwiZml4IiwiX3g1IiwiX3g2IiwiQmFzZVBsdWdpbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWdzL2FnZW5kYS0wMDAxMS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdmVyc2lvbkNvbXBhcmUgZnJvbSBcInRpbnktdmVyc2lvbi1jb21wYXJlXCJcbmltcG9ydCB7IEJhc2VQbHVnaW4gfSBmcm9tIFwiLi4vYnVnc1wiXG5cbi8vIGh0dHBzOi8vd3d3Lndpa2lkYXRhLm9yZy93aWtpL1dpa2lkYXRhOldpa2lQcm9qZWN0X0ZyYW5jZS9Bc3NlbWJsJUMzJUE5ZV9OYXRpb25hbGUjTGVnaXNsYXRpdmVfc2Vzc2lvblxuY29uc3QgdXJsID1cbiAgXCJodHRwczovL3F1ZXJ5Lndpa2lkYXRhLm9yZy9zcGFycWw/cXVlcnk9U0VMRUNUJTIwRElTVElOQ1QlMjAlM0ZzZXNzaW9uJTIwJTNGc3RhcnRfdGltZSUyMCUzRmVuZF90aW1lJTIwJTNGbGFiZWwlMjAlM0Zmb2xsb3dzJTIwJTNGZm9sbG93ZWRfYnklMjBXSEVSRSUyMCU3QiUwQSUwQSUyMCUyMCUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQMzElMkZ3ZHQlM0FQMjc5KiUyMHdkJTNBUTg3MzM3NDgxLiUwQSUyMCUyMCUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQNTgwJTIwJTNGc3RhcnRfdGltZS4lMjAlMEElMjAlMjAlMjBPUFRJT05BTCUyMCU3QiUyMCUzRnNlc3Npb24lMjB3ZHQlM0FQNTgyJTIwJTNGZW5kX3RpbWUlMjAlN0QuJTBBJTIwJTIwJTIwT1BUSU9OQUwlMjAlN0IlMjAlM0ZzZXNzaW9uJTIwd2R0JTNBUDE1NSUyMCUzRmZvbGxvd3MlMjAlN0QuJTBBJTIwJTIwJTIwT1BUSU9OQUwlMjAlN0IlMjAlM0ZzZXNzaW9uJTIwd2R0JTNBUDE1NiUyMCUzRmZvbGxvd2VkX2J5JTIwJTdELiUwQSUyMCUyMCUyME9QVElPTkFMJTIwJTdCJTIwJTNGc2Vzc2lvbiUyMHJkZnMlM0FsYWJlbCUyMCUzRmxhYmVsJTIwZmlsdGVyJTIwKGxhbmcoJTNGbGFiZWwpJTIwJTNEJTIwJTIyZnIlMjIpJTIwLiU3RCUwQSU3RFwiXG5cbmZ1bmN0aW9uIGNvbXBhcmVTdHJpbmcoYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgaWYgKGEgPCBiKSByZXR1cm4gLTFcbiAgaWYgKGEgPiBiKSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG5leHBvcnQgY2xhc3MgUGx1Z2luIGV4dGVuZHMgQmFzZVBsdWdpbiB7XG4gIHNlc3Npb25zOiBhbnlcbiAgZmV0Y2g6IGFueVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSkge1xuICAgIHN1cGVyKG9wdGlvbnMsIFwiYWdlbmRhLTAwMDExXCIpXG4gICAgdGhpcy5mZXRjaCA9IGZldGNoXG4gIH1cblxuICBhc3luYyBwcmVGaXgoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRTZXNzaW9ucygpXG4gIH1cblxuICBhc3luYyBwcmVDaGVjaygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnNldFNlc3Npb25zKClcbiAgfVxuXG4gIGFzeW5jIHNldFNlc3Npb25zKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2Vzc2lvbnMgPSAoYXdhaXQgdGhpcy5mZXRjaFNlc3Npb25zKCkpLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PlxuICAgICAgY29tcGFyZVN0cmluZyhhW1wic3RhcnRfdGltZVwiXVtcInZhbHVlXCJdLCBiW1wic3RhcnRfdGltZVwiXVtcInZhbHVlXCJdKSxcbiAgICApXG4gICAgdGhpcy5zZXNzaW9ucyA9IHNlc3Npb25zLm1hcCgoczogYW55KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogc1tcImxhYmVsXCJdW1widmFsdWVcIl0ucmVwbGFjZSgvXFxzK2VuIGZyYW5jZS9pLCBcIlwiKSxcbiAgICAgICAgZGVidXQ6IHNbXCJzdGFydF90aW1lXCJdW1widmFsdWVcIl0uc3Vic3RyKDAsIDEwKSxcbiAgICAgICAgZmluOiBzW1wiZW5kX3RpbWVcIl1bXCJ2YWx1ZVwiXS5zdWJzdHIoMCwgMTApLFxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXQodXJsOiBzdHJpbmcsIGhlYWRlcnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2godXJsLCBoZWFkZXJzKVxuICB9XG5cbiAgYXN5bmMgZmV0Y2hTZXNzaW9ucygpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5nZXQodXJsLCB7XG4gICAgICBoZWFkZXJzOiB7IEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICB9KVxuICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IHJlc3BvbnNlXG4gICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgIHJldHVybiBwYXlsb2FkW1wicmVzdWx0c1wiXVtcImJpbmRpbmdzXCJdXG4gIH1cblxuICBsb29rdXBTZXNzaW9uKGRlYnV0OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IG1heCA9IHRoaXMuc2Vzc2lvbnMubGVuZ3RoIC0gMVxuICAgIGNvbnN0IG1pbiA9IDBcbiAgICBsZXQgaCA9IG1heFxuICAgIGxldCBtXG4gICAgbGV0IGwgPSBtaW5cbiAgICBsZXQgc2Vzc2lvblxuICAgIGxldCBva1xuICAgIGRvIHtcbiAgICAgIG0gPSBNYXRoLmZsb29yKChsICsgaCkgLyAyKVxuICAgICAgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnNbbV1cbiAgICAgIG9rID0gc2Vzc2lvbi5kZWJ1dCA8PSBkZWJ1dCAmJiBkZWJ1dCA8PSBzZXNzaW9uLmZpblxuICAgICAgaWYgKCFvaykge1xuICAgICAgICBpZiAobCA9PSBtICYmIG0gPT0gaClcbiAgICAgICAgICAvLyBpbiBiZXR3ZWVuIHNlc3Npb25zXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgaWYgKGRlYnV0IDwgc2Vzc2lvbi5kZWJ1dCkge1xuICAgICAgICAgIGlmIChtIDw9IG1pbikgcmV0dXJuIG51bGxcbiAgICAgICAgICBoID0gbVxuICAgICAgICB9IGVsc2UgaWYgKGRlYnV0ID4gc2Vzc2lvbi5maW4pIHtcbiAgICAgICAgICBpZiAobSA+PSBtYXgpIHJldHVybiBudWxsXG4gICAgICAgICAgbCA9IGwgPT0gbSA/IGggOiBtXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IHdoaWxlICghb2spXG4gICAgcmV0dXJuIHNlc3Npb25cbiAgfVxuXG4gIGluU2NvcGUoYWdlbmRhOiBhbnkpIHtcbiAgICBpZiAoXG4gICAgICBhZ2VuZGEueHNpVHlwZSAhPSBcInNlYW5jZV90eXBlXCIgfHxcbiAgICAgIChhZ2VuZGEubGlldSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGFnZW5kYS5saWV1LmNvZGUgIT0gXCJDR1wiICYmXG4gICAgICAgIGFnZW5kYS5saWV1LmNvZGUgIT0gXCJBTlwiKVxuICAgIClcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIGlmIChhZ2VuZGEuY3ljbGVEZVZpZS5ldGF0ICE9IFwiQ29uZmlybcOpXCIpIHJldHVybiBmYWxzZVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBhc3luYyBjaGVjayhhZ2VuZGE6IGFueSwgX2ZpbGVuYW1lOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghdGhpcy5pblNjb3BlKGFnZW5kYSkpIHJldHVybiBudWxsXG4gICAgY29uc3QgZGVidXQgPSBhZ2VuZGEudGltZXN0YW1wRGVidXQuc3Vic3RyKDAsIDEwKVxuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLmxvb2t1cFNlc3Npb24oZGVidXQpXG4gICAgaWYgKHNlc3Npb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHsgc3RhdHVzOiBcIm5lZWRzLWZpeGluZ1wiLCBpbmZvOiBbYCR7ZGVidXR9IGlzIG5vdCBpbiBhIHNlc3Npb25gXSB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IHN0YXR1czogXCJva1wiLCBpbmZvOiBbXCJcIl0gfVxuICAgIH1cbiAgfVxuXG4gIG1heWJlVXBncmFkZVNjaGVtYVZlcnNpb24oYWdlbmRhOiBhbnkpIHtcbiAgICBpZiAoYWdlbmRhLnNjaGVtYVZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgdmVyc2lvbiA9IGFnZW5kYS5zY2hlbWFWZXJzaW9uLnNwbGl0KFwiLVwiKVsxXVxuICAgICAgaWYgKHZlcnNpb25Db21wYXJlKHZlcnNpb24sIFwiMS4wXCIpID09IDEpIHJldHVyblxuICAgIH1cbiAgICBhZ2VuZGEuc2NoZW1hVmVyc2lvbiA9IFwiYWdlbmRhLTEuMVwiXG4gIH1cblxuICBhc3luYyBmaXgoYWdlbmRhOiBhbnksIF9maWxlbmFtZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBsZXQgc3RhdHVzXG4gICAgaWYgKFwic2Vzc2lvblJlZlwiIGluIGFnZW5kYSkge1xuICAgICAgLy8gc2Vzc2lvblJlZiBpcyB1bmRlZmluZWQgYW5kIG11c3QgYmUgcmVtb3ZlZFxuICAgICAgZGVsZXRlIGFnZW5kYS5zZXNzaW9uUmVmXG4gICAgICBzdGF0dXMgPSB0cnVlXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIHRoZXJlIGlzIG5vIHNlc3Npb25SZWYgdG8gcmVtb3ZlLCBmaWxlIHdoaWNoIGlzIG5vdCBpbiBzY29wZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHJld3JpdHRlblxuICAgICAgc3RhdHVzID0gbnVsbFxuICAgIH1cblxuICAgIGlmICghdGhpcy5pblNjb3BlKGFnZW5kYSkpIHJldHVybiBzdGF0dXNcblxuICAgIGlmIChcInNlc3Npb25cIiBpbiBhZ2VuZGEpIGRlbGV0ZSBhZ2VuZGEuc2Vzc2lvblxuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMubG9va3VwU2Vzc2lvbihhZ2VuZGEudGltZXN0YW1wRGVidXQuc3Vic3RyKDAsIDEwKSlcbiAgICBpZiAoc2Vzc2lvbiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH0gZWxzZSB7XG4gICAgICBhZ2VuZGEuc2Vzc2lvbiA9IHNlc3Npb25cbiAgICAgIHRoaXMubWF5YmVVcGdyYWRlU2NoZW1hVmVyc2lvbihhZ2VuZGEpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxtQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFB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
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
-
import versionCompare from "tiny-version-compare";
|
|
5
|
-
import { BasePlugin } from "../bugs/index.mjs"; // https://www.wikidata.org/wiki/Wikidata:WikiProject_France/Assembl%C3%A9e_Nationale#Legislative_session
|
|
6
|
-
const url = "https://query.wikidata.org/sparql?query=SELECT%20DISTINCT%20%3Fsession%20%3Fstart_time%20%3Fend_time%20%3Flabel%20%3Ffollows%20%3Ffollowed_by%20WHERE%20%7B%0A%0A%20%20%20%3Fsession%20wdt%3AP31%2Fwdt%3AP279*%20wd%3AQ87337481.%0A%20%20%20%3Fsession%20wdt%3AP580%20%3Fstart_time.%20%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP582%20%3Fend_time%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP155%20%3Ffollows%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20wdt%3AP156%20%3Ffollowed_by%20%7D.%0A%20%20%20OPTIONAL%20%7B%20%3Fsession%20rdfs%3Alabel%20%3Flabel%20filter%20(lang(%3Flabel)%20%3D%20%22fr%22)%20.%7D%0A%7D";
|
|
7
|
-
function compareString(a, b) {
|
|
8
|
-
if (a < b) return -1;
|
|
9
|
-
if (a > b) return 1;
|
|
10
|
-
return 0;
|
|
11
|
-
}
|
|
12
|
-
export class Plugin extends BasePlugin {
|
|
13
|
-
constructor(options) {
|
|
14
|
-
super(options, "agenda-00011");
|
|
15
|
-
_defineProperty(this, "sessions", void 0);
|
|
16
|
-
_defineProperty(this, "fetch", void 0);
|
|
17
|
-
this.fetch = fetch;
|
|
18
|
-
}
|
|
19
|
-
async preFix() {
|
|
20
|
-
return this.setSessions();
|
|
21
|
-
}
|
|
22
|
-
async preCheck() {
|
|
23
|
-
return this.setSessions();
|
|
24
|
-
}
|
|
25
|
-
async setSessions() {
|
|
26
|
-
const sessions = (await this.fetchSessions()).sort((a, b) => compareString(a["start_time"]["value"], b["start_time"]["value"]));
|
|
27
|
-
this.sessions = sessions.map(s => {
|
|
28
|
-
return {
|
|
29
|
-
label: s["label"]["value"].replace(/\s+en france/i, ""),
|
|
30
|
-
debut: s["start_time"]["value"].substr(0, 10),
|
|
31
|
-
fin: s["end_time"]["value"].substr(0, 10)
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
async get(url, headers) {
|
|
36
|
-
return this.fetch(url, headers);
|
|
37
|
-
}
|
|
38
|
-
async fetchSessions() {
|
|
39
|
-
const response = await this.get(url, {
|
|
40
|
-
headers: {
|
|
41
|
-
Accept: "application/json"
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
if (!response.ok) throw response;
|
|
45
|
-
const payload = await response.json();
|
|
46
|
-
return payload["results"]["bindings"];
|
|
47
|
-
}
|
|
48
|
-
lookupSession(debut) {
|
|
49
|
-
const max = this.sessions.length - 1;
|
|
50
|
-
const min = 0;
|
|
51
|
-
let h = max;
|
|
52
|
-
let m;
|
|
53
|
-
let l = min;
|
|
54
|
-
let session;
|
|
55
|
-
let ok;
|
|
56
|
-
do {
|
|
57
|
-
m = Math.floor((l + h) / 2);
|
|
58
|
-
session = this.sessions[m];
|
|
59
|
-
ok = session.debut <= debut && debut <= session.fin;
|
|
60
|
-
if (!ok) {
|
|
61
|
-
if (l == m && m == h)
|
|
62
|
-
// in between sessions
|
|
63
|
-
return null;
|
|
64
|
-
if (debut < session.debut) {
|
|
65
|
-
if (m <= min) return null;
|
|
66
|
-
h = m;
|
|
67
|
-
} else if (debut > session.fin) {
|
|
68
|
-
if (m >= max) return null;
|
|
69
|
-
l = l == m ? h : m;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
} while (!ok);
|
|
73
|
-
return session;
|
|
74
|
-
}
|
|
75
|
-
inScope(agenda) {
|
|
76
|
-
if (agenda.xsiType != "seance_type" || agenda.lieu !== undefined && agenda.lieu.code != "CG" && agenda.lieu.code != "AN") return false;
|
|
77
|
-
if (agenda.cycleDeVie.etat != "Confirmé") return false;
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
|
-
async check(agenda, _filename) {
|
|
81
|
-
if (!this.inScope(agenda)) return null;
|
|
82
|
-
const debut = agenda.timestampDebut.substr(0, 10);
|
|
83
|
-
const session = this.lookupSession(debut);
|
|
84
|
-
if (session == null) {
|
|
85
|
-
return {
|
|
86
|
-
status: "needs-fixing",
|
|
87
|
-
info: [`${debut} is not in a session`]
|
|
88
|
-
};
|
|
89
|
-
} else {
|
|
90
|
-
return {
|
|
91
|
-
status: "ok",
|
|
92
|
-
info: [""]
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
maybeUpgradeSchemaVersion(agenda) {
|
|
97
|
-
if (agenda.schemaVersion !== undefined) {
|
|
98
|
-
const version = agenda.schemaVersion.split("-")[1];
|
|
99
|
-
if (versionCompare(version, "1.0") == 1) return;
|
|
100
|
-
}
|
|
101
|
-
agenda.schemaVersion = "agenda-1.1";
|
|
102
|
-
}
|
|
103
|
-
async fix(agenda, _filename) {
|
|
104
|
-
let status;
|
|
105
|
-
if ("sessionRef" in agenda) {
|
|
106
|
-
// sessionRef is undefined and must be removed
|
|
107
|
-
delete agenda.sessionRef;
|
|
108
|
-
status = true;
|
|
109
|
-
} else {
|
|
110
|
-
// if there is no sessionRef to remove, file which is not in scope does not need to be rewritten
|
|
111
|
-
status = null;
|
|
112
|
-
}
|
|
113
|
-
if (!this.inScope(agenda)) return status;
|
|
114
|
-
if ("session" in agenda) delete agenda.session;
|
|
115
|
-
const session = this.lookupSession(agenda.timestampDebut.substr(0, 10));
|
|
116
|
-
if (session == null) {
|
|
117
|
-
return null;
|
|
118
|
-
} else {
|
|
119
|
-
agenda.session = session;
|
|
120
|
-
this.maybeUpgradeSchemaVersion(agenda);
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2ZXJzaW9uQ29tcGFyZSIsIkJhc2VQbHVnaW4iLCJ1cmwiLCJjb21wYXJlU3RyaW5nIiwiYSIsImIiLCJQbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfZGVmaW5lUHJvcGVydHkiLCJmZXRjaCIsInByZUZpeCIsInNldFNlc3Npb25zIiwicHJlQ2hlY2siLCJzZXNzaW9ucyIsImZldGNoU2Vzc2lvbnMiLCJzb3J0IiwibWFwIiwicyIsImxhYmVsIiwicmVwbGFjZSIsImRlYnV0Iiwic3Vic3RyIiwiZmluIiwiZ2V0IiwiaGVhZGVycyIsInJlc3BvbnNlIiwiQWNjZXB0Iiwib2siLCJwYXlsb2FkIiwianNvbiIsImxvb2t1cFNlc3Npb24iLCJtYXgiLCJsZW5ndGgiLCJtaW4iLCJoIiwibSIsImwiLCJzZXNzaW9uIiwiTWF0aCIsImZsb29yIiwiaW5TY29wZSIsImFnZW5kYSIsInhzaVR5cGUiLCJsaWV1IiwidW5kZWZpbmVkIiwiY29kZSIsImN5Y2xlRGVWaWUiLCJldGF0IiwiY2hlY2siLCJfZmlsZW5hbWUiLCJ0aW1lc3RhbXBEZWJ1dCIsInN0YXR1cyIsImluZm8iLCJtYXliZVVwZ3JhZGVTY2hlbWFWZXJzaW9uIiwic2NoZW1hVmVyc2lvbiIsInZlcnNpb24iLCJzcGxpdCIsImZpeCIsInNlc3Npb25SZWYiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVncy9hZ2VuZGEtMDAwMTEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHZlcnNpb25Db21wYXJlIGZyb20gXCJ0aW55LXZlcnNpb24tY29tcGFyZVwiXG5pbXBvcnQgeyBCYXNlUGx1Z2luIH0gZnJvbSBcIi4uL2J1Z3NcIlxuXG4vLyBodHRwczovL3d3dy53aWtpZGF0YS5vcmcvd2lraS9XaWtpZGF0YTpXaWtpUHJvamVjdF9GcmFuY2UvQXNzZW1ibCVDMyVBOWVfTmF0aW9uYWxlI0xlZ2lzbGF0aXZlX3Nlc3Npb25cbmNvbnN0IHVybCA9XG4gIFwiaHR0cHM6Ly9xdWVyeS53aWtpZGF0YS5vcmcvc3BhcnFsP3F1ZXJ5PVNFTEVDVCUyMERJU1RJTkNUJTIwJTNGc2Vzc2lvbiUyMCUzRnN0YXJ0X3RpbWUlMjAlM0ZlbmRfdGltZSUyMCUzRmxhYmVsJTIwJTNGZm9sbG93cyUyMCUzRmZvbGxvd2VkX2J5JTIwV0hFUkUlMjAlN0IlMEElMEElMjAlMjAlMjAlM0ZzZXNzaW9uJTIwd2R0JTNBUDMxJTJGd2R0JTNBUDI3OSolMjB3ZCUzQVE4NzMzNzQ4MS4lMEElMjAlMjAlMjAlM0ZzZXNzaW9uJTIwd2R0JTNBUDU4MCUyMCUzRnN0YXJ0X3RpbWUuJTIwJTBBJTIwJTIwJTIwT1BUSU9OQUwlMjAlN0IlMjAlM0ZzZXNzaW9uJTIwd2R0JTNBUDU4MiUyMCUzRmVuZF90aW1lJTIwJTdELiUwQSUyMCUyMCUyME9QVElPTkFMJTIwJTdCJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVAxNTUlMjAlM0Zmb2xsb3dzJTIwJTdELiUwQSUyMCUyMCUyME9QVElPTkFMJTIwJTdCJTIwJTNGc2Vzc2lvbiUyMHdkdCUzQVAxNTYlMjAlM0Zmb2xsb3dlZF9ieSUyMCU3RC4lMEElMjAlMjAlMjBPUFRJT05BTCUyMCU3QiUyMCUzRnNlc3Npb24lMjByZGZzJTNBbGFiZWwlMjAlM0ZsYWJlbCUyMGZpbHRlciUyMChsYW5nKCUzRmxhYmVsKSUyMCUzRCUyMCUyMmZyJTIyKSUyMC4lN0QlMEElN0RcIlxuXG5mdW5jdGlvbiBjb21wYXJlU3RyaW5nKGE6IHN0cmluZywgYjogc3RyaW5nKSB7XG4gIGlmIChhIDwgYikgcmV0dXJuIC0xXG4gIGlmIChhID4gYikgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuZXhwb3J0IGNsYXNzIFBsdWdpbiBleHRlbmRzIEJhc2VQbHVnaW4ge1xuICBzZXNzaW9uczogYW55XG4gIGZldGNoOiBhbnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkpIHtcbiAgICBzdXBlcihvcHRpb25zLCBcImFnZW5kYS0wMDAxMVwiKVxuICAgIHRoaXMuZmV0Y2ggPSBmZXRjaFxuICB9XG5cbiAgYXN5bmMgcHJlRml4KCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc2V0U2Vzc2lvbnMoKVxuICB9XG5cbiAgYXN5bmMgcHJlQ2hlY2soKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRTZXNzaW9ucygpXG4gIH1cblxuICBhc3luYyBzZXRTZXNzaW9ucygpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNlc3Npb25zID0gKGF3YWl0IHRoaXMuZmV0Y2hTZXNzaW9ucygpKS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT5cbiAgICAgIGNvbXBhcmVTdHJpbmcoYVtcInN0YXJ0X3RpbWVcIl1bXCJ2YWx1ZVwiXSwgYltcInN0YXJ0X3RpbWVcIl1bXCJ2YWx1ZVwiXSksXG4gICAgKVxuICAgIHRoaXMuc2Vzc2lvbnMgPSBzZXNzaW9ucy5tYXAoKHM6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWw6IHNbXCJsYWJlbFwiXVtcInZhbHVlXCJdLnJlcGxhY2UoL1xccytlbiBmcmFuY2UvaSwgXCJcIiksXG4gICAgICAgIGRlYnV0OiBzW1wic3RhcnRfdGltZVwiXVtcInZhbHVlXCJdLnN1YnN0cigwLCAxMCksXG4gICAgICAgIGZpbjogc1tcImVuZF90aW1lXCJdW1widmFsdWVcIl0uc3Vic3RyKDAsIDEwKSxcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0KHVybDogc3RyaW5nLCBoZWFkZXJzOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmZldGNoKHVybCwgaGVhZGVycylcbiAgfVxuXG4gIGFzeW5jIGZldGNoU2Vzc2lvbnMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuZ2V0KHVybCwge1xuICAgICAgaGVhZGVyczogeyBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgfSlcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyByZXNwb25zZVxuICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICByZXR1cm4gcGF5bG9hZFtcInJlc3VsdHNcIl1bXCJiaW5kaW5nc1wiXVxuICB9XG5cbiAgbG9va3VwU2Vzc2lvbihkZWJ1dDogc3RyaW5nKTogYW55IHtcbiAgICBjb25zdCBtYXggPSB0aGlzLnNlc3Npb25zLmxlbmd0aCAtIDFcbiAgICBjb25zdCBtaW4gPSAwXG4gICAgbGV0IGggPSBtYXhcbiAgICBsZXQgbVxuICAgIGxldCBsID0gbWluXG4gICAgbGV0IHNlc3Npb25cbiAgICBsZXQgb2tcbiAgICBkbyB7XG4gICAgICBtID0gTWF0aC5mbG9vcigobCArIGgpIC8gMilcbiAgICAgIHNlc3Npb24gPSB0aGlzLnNlc3Npb25zW21dXG4gICAgICBvayA9IHNlc3Npb24uZGVidXQgPD0gZGVidXQgJiYgZGVidXQgPD0gc2Vzc2lvbi5maW5cbiAgICAgIGlmICghb2spIHtcbiAgICAgICAgaWYgKGwgPT0gbSAmJiBtID09IGgpXG4gICAgICAgICAgLy8gaW4gYmV0d2VlbiBzZXNzaW9uc1xuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIGlmIChkZWJ1dCA8IHNlc3Npb24uZGVidXQpIHtcbiAgICAgICAgICBpZiAobSA8PSBtaW4pIHJldHVybiBudWxsXG4gICAgICAgICAgaCA9IG1cbiAgICAgICAgfSBlbHNlIGlmIChkZWJ1dCA+IHNlc3Npb24uZmluKSB7XG4gICAgICAgICAgaWYgKG0gPj0gbWF4KSByZXR1cm4gbnVsbFxuICAgICAgICAgIGwgPSBsID09IG0gPyBoIDogbVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAoIW9rKVxuICAgIHJldHVybiBzZXNzaW9uXG4gIH1cblxuICBpblNjb3BlKGFnZW5kYTogYW55KSB7XG4gICAgaWYgKFxuICAgICAgYWdlbmRhLnhzaVR5cGUgIT0gXCJzZWFuY2VfdHlwZVwiIHx8XG4gICAgICAoYWdlbmRhLmxpZXUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBhZ2VuZGEubGlldS5jb2RlICE9IFwiQ0dcIiAmJlxuICAgICAgICBhZ2VuZGEubGlldS5jb2RlICE9IFwiQU5cIilcbiAgICApXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICBpZiAoYWdlbmRhLmN5Y2xlRGVWaWUuZXRhdCAhPSBcIkNvbmZpcm3DqVwiKSByZXR1cm4gZmFsc2VcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgYXN5bmMgY2hlY2soYWdlbmRhOiBhbnksIF9maWxlbmFtZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuaW5TY29wZShhZ2VuZGEpKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGRlYnV0ID0gYWdlbmRhLnRpbWVzdGFtcERlYnV0LnN1YnN0cigwLCAxMClcbiAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5sb29rdXBTZXNzaW9uKGRlYnV0KVxuICAgIGlmIChzZXNzaW9uID09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IHN0YXR1czogXCJuZWVkcy1maXhpbmdcIiwgaW5mbzogW2Ake2RlYnV0fSBpcyBub3QgaW4gYSBzZXNzaW9uYF0gfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyBzdGF0dXM6IFwib2tcIiwgaW5mbzogW1wiXCJdIH1cbiAgICB9XG4gIH1cblxuICBtYXliZVVwZ3JhZGVTY2hlbWFWZXJzaW9uKGFnZW5kYTogYW55KSB7XG4gICAgaWYgKGFnZW5kYS5zY2hlbWFWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHZlcnNpb24gPSBhZ2VuZGEuc2NoZW1hVmVyc2lvbi5zcGxpdChcIi1cIilbMV1cbiAgICAgIGlmICh2ZXJzaW9uQ29tcGFyZSh2ZXJzaW9uLCBcIjEuMFwiKSA9PSAxKSByZXR1cm5cbiAgICB9XG4gICAgYWdlbmRhLnNjaGVtYVZlcnNpb24gPSBcImFnZW5kYS0xLjFcIlxuICB9XG5cbiAgYXN5bmMgZml4KGFnZW5kYTogYW55LCBfZmlsZW5hbWU6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgbGV0IHN0YXR1c1xuICAgIGlmIChcInNlc3Npb25SZWZcIiBpbiBhZ2VuZGEpIHtcbiAgICAgIC8vIHNlc3Npb25SZWYgaXMgdW5kZWZpbmVkIGFuZCBtdXN0IGJlIHJlbW92ZWRcbiAgICAgIGRlbGV0ZSBhZ2VuZGEuc2Vzc2lvblJlZlxuICAgICAgc3RhdHVzID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiB0aGVyZSBpcyBubyBzZXNzaW9uUmVmIHRvIHJlbW92ZSwgZmlsZSB3aGljaCBpcyBub3QgaW4gc2NvcGUgZG9lcyBub3QgbmVlZCB0byBiZSByZXdyaXR0ZW5cbiAgICAgIHN0YXR1cyA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaW5TY29wZShhZ2VuZGEpKSByZXR1cm4gc3RhdHVzXG5cbiAgICBpZiAoXCJzZXNzaW9uXCIgaW4gYWdlbmRhKSBkZWxldGUgYWdlbmRhLnNlc3Npb25cblxuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLmxvb2t1cFNlc3Npb24oYWdlbmRhLnRpbWVzdGFtcERlYnV0LnN1YnN0cigwLCAxMCkpXG4gICAgaWYgKHNlc3Npb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9IGVsc2Uge1xuICAgICAgYWdlbmRhLnNlc3Npb24gPSBzZXNzaW9uXG4gICAgICB0aGlzLm1heWJlVXBncmFkZVNjaGVtYVZlcnNpb24oYWdlbmRhKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsT0FBT0EsY0FBYyxNQUFNLHNCQUFzQjtBQUFBLFNBQ3hDQyxVQUFVLDZCQUVuQjtBQUNBLE1BQU1DLEdBQUcsR0FDUCxpbkJBQWluQjtBQUVubkIsU0FBU0MsYUFBYUEsQ0FBQ0MsQ0FBUyxFQUFFQyxDQUFTLEVBQUU7RUFDM0MsSUFBSUQsQ0FBQyxHQUFHQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7RUFDcEIsSUFBSUQsQ0FBQyxHQUFHQyxDQUFDLEVB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YUFBYSxDQUFDVixLQUFLLENBQUM7SUFDekMsSUFBSWlCLE9BQU8sSUFBSSxJQUFJLEVBQUU7TUFDbkIsT0FBTztRQUFFYyxNQUFNLEVBQUUsY0FBYztRQUFFQyxJQUFJLEVBQUUsQ0FBQyxHQUFHaEMsS0FBSyxzQkFBc0I7TUFBRSxDQUFDO0lBQzNFLENBQUMsTUFBTTtNQUNMLE9BQU87UUFBRStCLE1BQU0sRUFBRSxJQUFJO1FBQUVDLElBQUksRUFBRSxDQUFDLEVBQUU7TUFBRSxDQUFDO0lBQ3JDO0VBQ0Y7RUFFQUMseUJBQXlCQSxDQUFDWixNQUFXLEVBQUU7SUFDckMsSUFBSUEsTUFBTSxDQUFDYSxhQUFhLEtBQUtWLFNBQVMsRUFBRTtNQUN0QyxNQUFNVyxPQUFPLEdBQUdkLE1BQU0sQ0FBQ2EsYUFBYSxDQUFDRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ2xELElBQUl6RCxjQUFjLENBQUN3RCxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO0lBQzNDO0lBQ0FkLE1BQU0sQ0FBQ2EsYUFBYSxHQUFHLFlBQVk7RUFDckM7RUFFQSxNQUFNRyxHQUFHQSxDQUFDaEIsTUFBVyxFQUFFUSxTQUFjLEVBQWdCO0lBQ25ELElBQUlFLE1BQU07SUFDVixJQUFJLFlBQVksSUFBSVYsTUFBTSxFQUFFO01BQzFCO01BQ0EsT0FBT0EsTUFBTSxDQUFDaUIsVUFBVTtNQUN4QlAsTUFBTSxHQUFHLElBQUk7SUFDZixDQUFDLE1BQU07TUFDTDtNQUNBQSxNQUFNLEdBQUcsSUFBSTtJQUNmO0lBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ1gsT0FBTyxDQUFDQyxNQUFNLENBQUMsRUFBRSxPQUFPVSxNQUFNO0lBRXhDLElBQUksU0FBUyxJQUFJVixNQUFNLEVBQUUsT0FBT0EsTUFBTSxDQUFDSixPQUFPO0lBRTlDLE1BQU1BLE9BQU8sR0FBRyxJQUFJLENBQUNQLGFBQWEsQ0FBQ1csTUFBTSxDQUFDUyxjQUFjLENBQUM3QixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLElBQUlnQixPQUFPLElBQUksSUFBSSxFQUFFO01BQ25CLE9BQU8sSUFBSTtJQUNiLENBQUMsTUFBTTtNQUNMSSxNQUFNLENBQUNKLE9BQU8sR0FBR0EsT0FBTztNQUN4QixJQUFJLENBQUNnQix5QkFBeUIsQ0FBQ1osTUFBTSxDQUFDO01BQ3RDLE9BQU8sSUFBSTtJQUNiO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/bugs.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare class BasePlugin {
|
|
2
|
-
options: any;
|
|
3
|
-
name: string;
|
|
4
|
-
constructor(options: any, name: string);
|
|
5
|
-
preFix(): Promise<any>;
|
|
6
|
-
fix(_content: any, _filename: any): Promise<any>;
|
|
7
|
-
preCheck(): Promise<any>;
|
|
8
|
-
check(_content: any, _filename: any): Promise<any>;
|
|
9
|
-
postCheck(_analysis: any): Promise<any>;
|
|
10
|
-
}
|
|
11
|
-
export declare class SchemaBugs {
|
|
12
|
-
options: any;
|
|
13
|
-
plugins: any;
|
|
14
|
-
constructor(options: any);
|
|
15
|
-
get(schema: any): any;
|
|
16
|
-
preFix(): Promise<any>;
|
|
17
|
-
fix(filenames: any): Promise<any>;
|
|
18
|
-
preCheck(): Promise<void>;
|
|
19
|
-
check(content: any, filename: any): Promise<any>;
|
|
20
|
-
postCheck(analysis: any): Promise<any>;
|
|
21
|
-
}
|