@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.
Files changed (275) hide show
  1. package/README.md +8 -1
  2. package/lib/amendements-79bwpkvR.js +154 -0
  3. package/lib/amendements-CV3s5a0M.js +667 -0
  4. package/lib/cleaners/index.d.ts +9 -9
  5. package/lib/cleaners.js +564 -0
  6. package/lib/datasets.d.ts +3 -3
  7. package/lib/dossiers_legislatifs.d.ts +2 -2
  8. package/lib/index.d.ts +17 -22
  9. package/lib/index.js +1542 -314
  10. package/lib/inserters.d.ts +5 -5
  11. package/lib/loaders-9mHdTl9L.js +4158 -0
  12. package/lib/loaders.d.ts +12 -12
  13. package/lib/loaders.js +29 -1689
  14. package/lib/organes.d.ts +1 -1
  15. package/lib/parse-Ccs6wcUg.js +2512 -0
  16. package/lib/parsers/index.d.ts +2 -3
  17. package/lib/parsers/plf.d.ts +1 -0
  18. package/lib/parsers/recherche_amendements.d.ts +2 -2
  19. package/lib/parsers/textes_lois.d.ts +1 -23
  20. package/lib/parsers.js +398 -0
  21. package/lib/raw_types/acteurs_et_organes.d.ts +4 -2
  22. package/lib/raw_types/debats.d.ts +2 -2
  23. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
  24. package/lib/schemas/acteurs_et_organes.json +1166 -0
  25. package/lib/schemas/agendas.json +1745 -0
  26. package/lib/schemas/amendements.json +2085 -0
  27. package/lib/schemas/debats.json +842 -0
  28. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  29. package/lib/schemas/legislatures.json +17 -0
  30. package/lib/schemas/questions.json +704 -0
  31. package/lib/schemas/scrutins.json +701 -0
  32. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
  33. package/lib/types/acteurs_et_organes.d.ts +344 -2
  34. package/lib/types/agendas.d.ts +236 -10
  35. package/lib/types/amendements.d.ts +276 -1
  36. package/lib/types/debats.d.ts +52 -2
  37. package/lib/types/dossiers_legislatifs.d.ts +403 -9
  38. package/lib/types/questions.d.ts +99 -2
  39. package/lib/types/scrutins.d.ts +101 -0
  40. package/lib/urls.d.ts +2 -2
  41. package/package.json +33 -95
  42. package/lib/api.js +0 -52
  43. package/lib/api.mjs +0 -45
  44. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  45. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  46. package/lib/bugs/acteur-00010.d.ts +0 -7
  47. package/lib/bugs/acteur-00010.js +0 -116
  48. package/lib/bugs/acteur-00010.mjs +0 -26
  49. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  50. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  51. package/lib/bugs/agenda-00002.d.ts +0 -15
  52. package/lib/bugs/agenda-00002.js +0 -406
  53. package/lib/bugs/agenda-00002.mjs +0 -172
  54. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  55. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  56. package/lib/bugs/agenda-00008.d.ts +0 -7
  57. package/lib/bugs/agenda-00008.js +0 -123
  58. package/lib/bugs/agenda-00008.mjs +0 -26
  59. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  60. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  61. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  62. package/lib/bugs/agenda-00011.d.ts +0 -16
  63. package/lib/bugs/agenda-00011.js +0 -333
  64. package/lib/bugs/agenda-00011.mjs +0 -125
  65. package/lib/bugs.d.ts +0 -21
  66. package/lib/bugs.js +0 -452
  67. package/lib/bugs.mjs +0 -70
  68. package/lib/cleaners/actes_legislatifs.js +0 -315
  69. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  70. package/lib/cleaners/acteurs.js +0 -265
  71. package/lib/cleaners/acteurs.mjs +0 -180
  72. package/lib/cleaners/amendements.js +0 -294
  73. package/lib/cleaners/amendements.mjs +0 -227
  74. package/lib/cleaners/debats.js +0 -12
  75. package/lib/cleaners/debats.mjs +0 -5
  76. package/lib/cleaners/documents.js +0 -205
  77. package/lib/cleaners/documents.mjs +0 -133
  78. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  79. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  80. package/lib/cleaners/index.js +0 -70
  81. package/lib/cleaners/index.mjs +0 -10
  82. package/lib/cleaners/organes.js +0 -65
  83. package/lib/cleaners/organes.mjs +0 -48
  84. package/lib/cleaners/questions.js +0 -12
  85. package/lib/cleaners/questions.mjs +0 -5
  86. package/lib/cleaners/reunions.js +0 -312
  87. package/lib/cleaners/reunions.mjs +0 -255
  88. package/lib/cleaners/scrutins.js +0 -340
  89. package/lib/cleaners/scrutins.mjs +0 -221
  90. package/lib/cleaners/xml.js +0 -95
  91. package/lib/cleaners/xml.mjs +0 -58
  92. package/lib/datasets.js +0 -837
  93. package/lib/datasets.mjs +0 -755
  94. package/lib/dates.js +0 -124
  95. package/lib/dates.mjs +0 -100
  96. package/lib/dossiers_legislatifs.js +0 -346
  97. package/lib/dossiers_legislatifs.mjs +0 -208
  98. package/lib/file_systems.js +0 -162
  99. package/lib/file_systems.mjs +0 -62
  100. package/lib/git.js +0 -223
  101. package/lib/git.mjs +0 -151
  102. package/lib/index.mjs +0 -17
  103. package/lib/inserters.js +0 -521
  104. package/lib/inserters.mjs +0 -337
  105. package/lib/loaders.mjs +0 -886
  106. package/lib/logger.js +0 -35
  107. package/lib/logger.mjs +0 -26
  108. package/lib/organes.js +0 -22
  109. package/lib/organes.mjs +0 -15
  110. package/lib/parsers/documents.d.ts +0 -62
  111. package/lib/parsers/documents.js +0 -453
  112. package/lib/parsers/documents.mjs +0 -370
  113. package/lib/parsers/index.js +0 -40
  114. package/lib/parsers/index.mjs +0 -4
  115. package/lib/parsers/recherche_amendements.js +0 -403
  116. package/lib/parsers/recherche_amendements.mjs +0 -167
  117. package/lib/parsers/textes_lois.js +0 -307
  118. package/lib/parsers/textes_lois.mjs +0 -264
  119. package/lib/raw_types/acteurs_et_organes.js +0 -1213
  120. package/lib/raw_types/acteurs_et_organes.mjs +0 -1146
  121. package/lib/raw_types/agendas.js +0 -777
  122. package/lib/raw_types/agendas.mjs +0 -724
  123. package/lib/raw_types/amendements.js +0 -1052
  124. package/lib/raw_types/amendements.mjs +0 -993
  125. package/lib/raw_types/debats.js +0 -630
  126. package/lib/raw_types/debats.mjs +0 -573
  127. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  128. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  129. package/lib/raw_types/questions.js +0 -469
  130. package/lib/raw_types/questions.mjs +0 -416
  131. package/lib/raw_types/scrutins.js +0 -651
  132. package/lib/raw_types/scrutins.mjs +0 -598
  133. package/lib/schemas/acteur/Acteur.json +0 -56
  134. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  135. package/lib/schemas/acteur/AdressePostale.json +0 -75
  136. package/lib/schemas/acteur/Civ.json +0 -14
  137. package/lib/schemas/acteur/Collaborateur.json +0 -29
  138. package/lib/schemas/acteur/EtatCivil.json +0 -51
  139. package/lib/schemas/acteur/Ident.json +0 -40
  140. package/lib/schemas/acteur/Lieu.json +0 -66
  141. package/lib/schemas/acteur/Mandat.json +0 -192
  142. package/lib/schemas/acteur/Profession.json +0 -46
  143. package/lib/schemas/agenda/Agenda.json +0 -318
  144. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  145. package/lib/schemas/agenda/PointOdj.json +0 -82
  146. package/lib/schemas/amendement/Amendement.json +0 -246
  147. package/lib/schemas/amendement/Diff.json +0 -25
  148. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  149. package/lib/schemas/amendement/Identifiant.json +0 -62
  150. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  151. package/lib/schemas/amendement/Representation.json +0 -67
  152. package/lib/schemas/amendement/Total.json +0 -26
  153. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  154. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  155. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  156. package/lib/schemas/converted_from_type/debats.json +0 -682
  157. package/lib/schemas/converted_from_type/deputes.json +0 -26
  158. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  159. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  160. package/lib/schemas/converted_from_type/questions.json +0 -328
  161. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  162. package/lib/schemas/debat/Contenu.json +0 -75
  163. package/lib/schemas/debat/Debat.json +0 -40
  164. package/lib/schemas/debat/Metadonnees.json +0 -75
  165. package/lib/schemas/debat/Orateur.json +0 -60
  166. package/lib/schemas/debat/Point.json +0 -169
  167. package/lib/schemas/debat/Sommaire.json +0 -71
  168. package/lib/schemas/debat/SommaireElement.json +0 -108
  169. package/lib/schemas/debat/Texte.json +0 -34
  170. package/lib/schemas/document/CodeLibelle.json +0 -25
  171. package/lib/schemas/document/Document.json +0 -385
  172. package/lib/schemas/document/Indexation.json +0 -38
  173. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  174. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  175. package/lib/schemas/dossier/Agenda.json +0 -23
  176. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  177. package/lib/schemas/dossier/Decision.json +0 -25
  178. package/lib/schemas/dossier/Dossier.json +0 -124
  179. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  180. package/lib/schemas/dossier/EtudePlf.json +0 -105
  181. package/lib/schemas/dossier/Europe.json +0 -42
  182. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  183. package/lib/schemas/dossier/InfoJO.json +0 -23
  184. package/lib/schemas/dossier/Initiateur.json +0 -36
  185. package/lib/schemas/dossier/Motion.json +0 -27
  186. package/lib/schemas/dossier/Promulgation.json +0 -62
  187. package/lib/schemas/dossier/Rapporteur.json +0 -36
  188. package/lib/schemas/dossier/Texte.json +0 -47
  189. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  190. package/lib/schemas/organe/Organe.json +0 -136
  191. package/lib/schemas/organe/ViMoDe.json +0 -28
  192. package/lib/schemas/question/Auteur.json +0 -58
  193. package/lib/schemas/question/Cloture.json +0 -28
  194. package/lib/schemas/question/InfoJO.json +0 -40
  195. package/lib/schemas/question/MinAttribElement.json +0 -30
  196. package/lib/schemas/question/Question.json +0 -172
  197. package/lib/schemas/question/Renouvellement.json +0 -17
  198. package/lib/schemas/question/Signalement.json +0 -21
  199. package/lib/schemas/question/Texte.json +0 -24
  200. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  201. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  202. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  203. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  204. package/lib/schemas/scrutin/Scrutin.json +0 -187
  205. package/lib/schemas/scrutin/Votant.json +0 -37
  206. package/lib/scripts/bugs_helper.d.ts +0 -13
  207. package/lib/scripts/bugs_helper.js +0 -595
  208. package/lib/scripts/bugs_helper.mjs +0 -251
  209. package/lib/scripts/clean_reorganized_data.js +0 -610
  210. package/lib/scripts/clean_reorganized_data.mjs +0 -273
  211. package/lib/scripts/diff_amendements.js +0 -249
  212. package/lib/scripts/diff_amendements.mjs +0 -202
  213. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  214. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  215. package/lib/scripts/get_today_reunions.js +0 -37
  216. package/lib/scripts/get_today_reunions.mjs +0 -31
  217. package/lib/scripts/merge_scrutins.js +0 -97
  218. package/lib/scripts/merge_scrutins.mjs +0 -47
  219. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  220. package/lib/scripts/parse_textes_lois.js +0 -171
  221. package/lib/scripts/parse_textes_lois.mjs +0 -140
  222. package/lib/scripts/process_open_dataset.js +0 -301
  223. package/lib/scripts/process_open_dataset.mjs +0 -134
  224. package/lib/scripts/raw_types_from_amendements.js +0 -135
  225. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  226. package/lib/scripts/reorganize_data.js +0 -805
  227. package/lib/scripts/reorganize_data.mjs +0 -517
  228. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  229. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  230. package/lib/scripts/retrieve_documents.js +0 -547
  231. package/lib/scripts/retrieve_documents.mjs +0 -242
  232. package/lib/scripts/retrieve_open_data.js +0 -107
  233. package/lib/scripts/retrieve_open_data.mjs +0 -26
  234. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  235. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  236. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  237. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  238. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  239. package/lib/scripts/retrieve_textes_lois.js +0 -240
  240. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  241. package/lib/scripts/shared/cli_helpers.js +0 -89
  242. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  243. package/lib/scripts/test_iter_load.js +0 -155
  244. package/lib/scripts/test_iter_load.mjs +0 -72
  245. package/lib/scripts/test_load.js +0 -26
  246. package/lib/scripts/test_load.mjs +0 -16
  247. package/lib/scripts/test_load_big_files.js +0 -26
  248. package/lib/scripts/test_load_big_files.mjs +0 -16
  249. package/lib/scripts/validate_json.js +0 -353
  250. package/lib/scripts/validate_json.mjs +0 -184
  251. package/lib/shared_types/codes_actes.js +0 -231
  252. package/lib/shared_types/codes_actes.mjs +0 -224
  253. package/lib/strings.js +0 -16
  254. package/lib/strings.mjs +0 -7
  255. package/lib/types/acteurs_et_organes.js +0 -963
  256. package/lib/types/acteurs_et_organes.mjs +0 -904
  257. package/lib/types/agendas.js +0 -628
  258. package/lib/types/agendas.mjs +0 -575
  259. package/lib/types/amendements.js +0 -899
  260. package/lib/types/amendements.mjs +0 -842
  261. package/lib/types/debats.js +0 -619
  262. package/lib/types/debats.mjs +0 -562
  263. package/lib/types/dossiers_legislatifs.js +0 -1188
  264. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  265. package/lib/types/legislatures.js +0 -17
  266. package/lib/types/legislatures.mjs +0 -10
  267. package/lib/types/questions.js +0 -454
  268. package/lib/types/questions.mjs +0 -401
  269. package/lib/types/scrutins.js +0 -556
  270. package/lib/types/scrutins.mjs +0 -503
  271. package/lib/urls.js +0 -325
  272. package/lib/urls.mjs +0 -258
  273. /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
  274. /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
  275. /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
@@ -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
- }