@tricoteuses/assemblee 1.10.5 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/README.md +8 -1
  2. package/lib/amendements-CN7bRFdP.js +259 -0
  3. package/lib/amendements-CN7bRFdP.js.map +1 -0
  4. package/lib/amendements-Cg1lyCBp.js +735 -0
  5. package/lib/amendements-Cg1lyCBp.js.map +1 -0
  6. package/lib/api.d.ts +1 -0
  7. package/lib/api.d.ts.map +1 -0
  8. package/lib/cleaners/actes_legislatifs.d.ts +1 -0
  9. package/lib/cleaners/actes_legislatifs.d.ts.map +1 -0
  10. package/lib/cleaners/acteurs.d.ts +1 -0
  11. package/lib/cleaners/acteurs.d.ts.map +1 -0
  12. package/lib/cleaners/amendements.d.ts +1 -0
  13. package/lib/cleaners/amendements.d.ts.map +1 -0
  14. package/lib/cleaners/debats.d.ts +1 -0
  15. package/lib/cleaners/debats.d.ts.map +1 -0
  16. package/lib/cleaners/documents.d.ts +1 -0
  17. package/lib/cleaners/documents.d.ts.map +1 -0
  18. package/lib/cleaners/dossiers_legislatifs.d.ts +1 -0
  19. package/lib/cleaners/dossiers_legislatifs.d.ts.map +1 -0
  20. package/lib/cleaners/index.d.ts +10 -9
  21. package/lib/cleaners/index.d.ts.map +1 -0
  22. package/lib/cleaners/organes.d.ts +1 -0
  23. package/lib/cleaners/organes.d.ts.map +1 -0
  24. package/lib/cleaners/questions.d.ts +1 -0
  25. package/lib/cleaners/questions.d.ts.map +1 -0
  26. package/lib/cleaners/reunions.d.ts +1 -0
  27. package/lib/cleaners/reunions.d.ts.map +1 -0
  28. package/lib/cleaners/scrutins.d.ts +1 -0
  29. package/lib/cleaners/scrutins.d.ts.map +1 -0
  30. package/lib/cleaners/xml.d.ts +1 -0
  31. package/lib/cleaners/xml.d.ts.map +1 -0
  32. package/lib/cleaners.js +1138 -0
  33. package/lib/cleaners.js.map +1 -0
  34. package/lib/datasets.d.ts +4 -3
  35. package/lib/datasets.d.ts.map +1 -0
  36. package/lib/dates.d.ts +1 -0
  37. package/lib/dates.d.ts.map +1 -0
  38. package/lib/debats-BwZYgzXe.js +3978 -0
  39. package/lib/debats-BwZYgzXe.js.map +1 -0
  40. package/lib/dossiers_legislatifs.d.ts +3 -2
  41. package/lib/dossiers_legislatifs.d.ts.map +1 -0
  42. package/lib/file_systems.d.ts +1 -0
  43. package/lib/file_systems.d.ts.map +1 -0
  44. package/lib/git.d.ts +1 -0
  45. package/lib/git.d.ts.map +1 -0
  46. package/lib/index.d.ts +18 -22
  47. package/lib/index.d.ts.map +1 -0
  48. package/lib/index.js +1916 -285
  49. package/lib/index.js.map +1 -0
  50. package/lib/inserters.d.ts +6 -5
  51. package/lib/inserters.d.ts.map +1 -0
  52. package/lib/loaders.d.ts +13 -12
  53. package/lib/loaders.d.ts.map +1 -0
  54. package/lib/loaders.js +812 -1516
  55. package/lib/loaders.js.map +1 -0
  56. package/lib/logger.d.ts +1 -0
  57. package/lib/logger.d.ts.map +1 -0
  58. package/lib/organes.d.ts +2 -1
  59. package/lib/organes.d.ts.map +1 -0
  60. package/lib/parse-CzW8NHW5.js +2850 -0
  61. package/lib/parse-CzW8NHW5.js.map +1 -0
  62. package/lib/parsers/index.d.ts +3 -3
  63. package/lib/parsers/index.d.ts.map +1 -0
  64. package/lib/parsers/plf.d.ts +2 -0
  65. package/lib/parsers/plf.d.ts.map +1 -0
  66. package/lib/parsers/recherche_amendements.d.ts +3 -2
  67. package/lib/parsers/recherche_amendements.d.ts.map +1 -0
  68. package/lib/parsers/textes_lois.d.ts +2 -23
  69. package/lib/parsers/textes_lois.d.ts.map +1 -0
  70. package/lib/parsers.js +393 -0
  71. package/lib/parsers.js.map +1 -0
  72. package/lib/raw_types/acteurs_et_organes.d.ts +1 -0
  73. package/lib/raw_types/acteurs_et_organes.d.ts.map +1 -0
  74. package/lib/raw_types/agendas.d.ts +1 -0
  75. package/lib/raw_types/agendas.d.ts.map +1 -0
  76. package/lib/raw_types/amendements.d.ts +1 -0
  77. package/lib/raw_types/amendements.d.ts.map +1 -0
  78. package/lib/raw_types/debats.d.ts +3 -2
  79. package/lib/raw_types/debats.d.ts.map +1 -0
  80. package/lib/raw_types/dossiers_legislatifs.d.ts +2 -1
  81. package/lib/raw_types/dossiers_legislatifs.d.ts.map +1 -0
  82. package/lib/raw_types/questions.d.ts +1 -0
  83. package/lib/raw_types/questions.d.ts.map +1 -0
  84. package/lib/raw_types/scrutins.d.ts +1 -0
  85. package/lib/raw_types/scrutins.d.ts.map +1 -0
  86. package/lib/schemas/acteurs_et_organes.d.json +982 -0
  87. package/lib/schemas/acteurs_et_organes.json +1166 -0
  88. package/lib/schemas/agendas.d.json +1561 -0
  89. package/lib/schemas/agendas.json +1745 -0
  90. package/lib/schemas/amendements.d.json +1901 -0
  91. package/lib/schemas/amendements.json +2085 -0
  92. package/lib/schemas/debats.d.json +623 -0
  93. package/lib/schemas/debats.json +842 -0
  94. package/lib/schemas/dossiers_legislatifs.d.json +3690 -0
  95. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  96. package/lib/schemas/legislatures.d.json +17 -0
  97. package/lib/schemas/legislatures.json +17 -0
  98. package/lib/schemas/questions.d.json +520 -0
  99. package/lib/schemas/questions.json +704 -0
  100. package/lib/schemas/scrutins.d.json +517 -0
  101. package/lib/schemas/scrutins.json +701 -0
  102. package/lib/scripts/add_links_to_documents.d.ts +2 -0
  103. package/lib/scripts/add_links_to_documents.d.ts.map +1 -0
  104. package/lib/scripts/clean_reorganized_data.d.ts +1 -0
  105. package/lib/scripts/clean_reorganized_data.d.ts.map +1 -0
  106. package/lib/scripts/copy-schemas.d.ts +2 -0
  107. package/lib/scripts/copy-schemas.d.ts.map +1 -0
  108. package/lib/scripts/diff_amendements.d.ts +1 -0
  109. package/lib/scripts/diff_amendements.d.ts.map +1 -0
  110. package/lib/scripts/document_dossiers_legislatifs.d.ts +1 -0
  111. package/lib/scripts/document_dossiers_legislatifs.d.ts.map +1 -0
  112. package/lib/scripts/generate-json-schemas.d.ts +2 -0
  113. package/lib/scripts/generate-json-schemas.d.ts.map +1 -0
  114. package/lib/scripts/get_today_reunions.d.ts +1 -0
  115. package/lib/scripts/get_today_reunions.d.ts.map +1 -0
  116. package/lib/scripts/merge_scrutins.d.ts +1 -0
  117. package/lib/scripts/merge_scrutins.d.ts.map +1 -0
  118. package/lib/scripts/process_open_dataset.d.ts +1 -0
  119. package/lib/scripts/process_open_dataset.d.ts.map +1 -0
  120. package/lib/scripts/raw_types_from_amendements.d.ts +1 -0
  121. package/lib/scripts/raw_types_from_amendements.d.ts.map +1 -0
  122. package/lib/scripts/reorganize_data.d.ts +1 -0
  123. package/lib/scripts/reorganize_data.d.ts.map +1 -0
  124. package/lib/scripts/retrieve_deputes_photos.d.ts +2 -1
  125. package/lib/scripts/retrieve_deputes_photos.d.ts.map +1 -0
  126. package/lib/scripts/retrieve_documents.d.ts +1 -0
  127. package/lib/scripts/retrieve_documents.d.ts.map +1 -0
  128. package/lib/scripts/retrieve_open_data.d.ts +1 -0
  129. package/lib/scripts/retrieve_open_data.d.ts.map +1 -0
  130. package/lib/scripts/retrieve_pending_amendments.d.ts +1 -0
  131. package/lib/scripts/retrieve_pending_amendments.d.ts.map +1 -0
  132. package/lib/scripts/retrieve_senateurs_photos.d.ts +1 -0
  133. package/lib/scripts/retrieve_senateurs_photos.d.ts.map +1 -0
  134. package/lib/scripts/shared/cli_helpers.d.ts +1 -0
  135. package/lib/scripts/shared/cli_helpers.d.ts.map +1 -0
  136. package/lib/scripts/test_iter_load.d.ts +1 -0
  137. package/lib/scripts/test_iter_load.d.ts.map +1 -0
  138. package/lib/scripts/test_load.d.ts +1 -0
  139. package/lib/scripts/test_load.d.ts.map +1 -0
  140. package/lib/scripts/test_load_big_files.d.ts +1 -0
  141. package/lib/scripts/test_load_big_files.d.ts.map +1 -0
  142. package/lib/scripts/validate_json.d.ts +1 -0
  143. package/lib/scripts/validate_json.d.ts.map +1 -0
  144. package/lib/shared_types/codes_actes.d.ts +1 -0
  145. package/lib/shared_types/codes_actes.d.ts.map +1 -0
  146. package/lib/strings.d.ts +1 -0
  147. package/lib/strings.d.ts.map +1 -0
  148. package/lib/types/acteurs_et_organes.d.ts +341 -0
  149. package/lib/types/acteurs_et_organes.d.ts.map +1 -0
  150. package/lib/types/agendas.d.ts +237 -10
  151. package/lib/types/agendas.d.ts.map +1 -0
  152. package/lib/types/amendements.d.ts +277 -1
  153. package/lib/types/amendements.d.ts.map +1 -0
  154. package/lib/types/debats.d.ts +53 -2
  155. package/lib/types/debats.d.ts.map +1 -0
  156. package/lib/types/dossiers_legislatifs.d.ts +404 -9
  157. package/lib/types/dossiers_legislatifs.d.ts.map +1 -0
  158. package/lib/types/legislatures.d.ts +1 -0
  159. package/lib/types/legislatures.d.ts.map +1 -0
  160. package/lib/types/questions.d.ts +100 -2
  161. package/lib/types/questions.d.ts.map +1 -0
  162. package/lib/types/scrutins.d.ts +102 -0
  163. package/lib/types/scrutins.d.ts.map +1 -0
  164. package/lib/urls.d.ts +3 -2
  165. package/lib/urls.d.ts.map +1 -0
  166. package/package.json +31 -95
  167. package/lib/api.js +0 -52
  168. package/lib/api.mjs +0 -45
  169. package/lib/bugs/acteur-00010/plugin.test.d.ts +0 -1
  170. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  171. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  172. package/lib/bugs/acteur-00010.d.ts +0 -7
  173. package/lib/bugs/acteur-00010.js +0 -116
  174. package/lib/bugs/acteur-00010.mjs +0 -26
  175. package/lib/bugs/agenda-00002/plugin.test.d.ts +0 -1
  176. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  177. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  178. package/lib/bugs/agenda-00002.d.ts +0 -15
  179. package/lib/bugs/agenda-00002.js +0 -406
  180. package/lib/bugs/agenda-00002.mjs +0 -172
  181. package/lib/bugs/agenda-00008/plugin.test.d.ts +0 -1
  182. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  183. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  184. package/lib/bugs/agenda-00008.d.ts +0 -7
  185. package/lib/bugs/agenda-00008.js +0 -123
  186. package/lib/bugs/agenda-00008.mjs +0 -26
  187. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  188. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  189. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  190. package/lib/bugs/agenda-00011.d.ts +0 -16
  191. package/lib/bugs/agenda-00011.js +0 -333
  192. package/lib/bugs/agenda-00011.mjs +0 -125
  193. package/lib/bugs.d.ts +0 -21
  194. package/lib/bugs.js +0 -452
  195. package/lib/bugs.mjs +0 -70
  196. package/lib/cleaners/actes_legislatifs.js +0 -315
  197. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  198. package/lib/cleaners/acteurs.js +0 -265
  199. package/lib/cleaners/acteurs.mjs +0 -180
  200. package/lib/cleaners/amendements.js +0 -294
  201. package/lib/cleaners/amendements.mjs +0 -227
  202. package/lib/cleaners/debats.js +0 -12
  203. package/lib/cleaners/debats.mjs +0 -5
  204. package/lib/cleaners/documents.js +0 -205
  205. package/lib/cleaners/documents.mjs +0 -133
  206. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  207. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  208. package/lib/cleaners/index.js +0 -70
  209. package/lib/cleaners/index.mjs +0 -10
  210. package/lib/cleaners/organes.js +0 -65
  211. package/lib/cleaners/organes.mjs +0 -48
  212. package/lib/cleaners/questions.js +0 -12
  213. package/lib/cleaners/questions.mjs +0 -5
  214. package/lib/cleaners/reunions.js +0 -312
  215. package/lib/cleaners/reunions.mjs +0 -255
  216. package/lib/cleaners/scrutins.js +0 -340
  217. package/lib/cleaners/scrutins.mjs +0 -221
  218. package/lib/cleaners/xml.js +0 -74
  219. package/lib/cleaners/xml.mjs +0 -59
  220. package/lib/datasets.js +0 -837
  221. package/lib/datasets.mjs +0 -755
  222. package/lib/dates.js +0 -124
  223. package/lib/dates.mjs +0 -100
  224. package/lib/dossiers_legislatifs.js +0 -346
  225. package/lib/dossiers_legislatifs.mjs +0 -208
  226. package/lib/file_systems.js +0 -162
  227. package/lib/file_systems.mjs +0 -62
  228. package/lib/git.js +0 -223
  229. package/lib/git.mjs +0 -151
  230. package/lib/index.mjs +0 -17
  231. package/lib/inserters.js +0 -521
  232. package/lib/inserters.mjs +0 -337
  233. package/lib/loaders.mjs +0 -886
  234. package/lib/logger.js +0 -35
  235. package/lib/logger.mjs +0 -26
  236. package/lib/organes.js +0 -22
  237. package/lib/organes.mjs +0 -15
  238. package/lib/parsers/documents.d.ts +0 -62
  239. package/lib/parsers/documents.js +0 -453
  240. package/lib/parsers/documents.mjs +0 -370
  241. package/lib/parsers/index.js +0 -40
  242. package/lib/parsers/index.mjs +0 -4
  243. package/lib/parsers/recherche_amendements.js +0 -403
  244. package/lib/parsers/recherche_amendements.mjs +0 -167
  245. package/lib/parsers/textes_lois.js +0 -307
  246. package/lib/parsers/textes_lois.mjs +0 -264
  247. package/lib/raw_types/acteurs_et_organes.js +0 -1215
  248. package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
  249. package/lib/raw_types/agendas.js +0 -777
  250. package/lib/raw_types/agendas.mjs +0 -724
  251. package/lib/raw_types/amendements.js +0 -1052
  252. package/lib/raw_types/amendements.mjs +0 -993
  253. package/lib/raw_types/debats.js +0 -630
  254. package/lib/raw_types/debats.mjs +0 -573
  255. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  256. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  257. package/lib/raw_types/questions.js +0 -469
  258. package/lib/raw_types/questions.mjs +0 -416
  259. package/lib/raw_types/scrutins.js +0 -651
  260. package/lib/raw_types/scrutins.mjs +0 -598
  261. package/lib/schemas/acteur/Acteur.json +0 -56
  262. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  263. package/lib/schemas/acteur/AdressePostale.json +0 -75
  264. package/lib/schemas/acteur/Civ.json +0 -14
  265. package/lib/schemas/acteur/Collaborateur.json +0 -29
  266. package/lib/schemas/acteur/EtatCivil.json +0 -51
  267. package/lib/schemas/acteur/Ident.json +0 -40
  268. package/lib/schemas/acteur/Lieu.json +0 -66
  269. package/lib/schemas/acteur/Mandat.json +0 -192
  270. package/lib/schemas/acteur/Profession.json +0 -46
  271. package/lib/schemas/agenda/Agenda.json +0 -318
  272. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  273. package/lib/schemas/agenda/PointOdj.json +0 -82
  274. package/lib/schemas/amendement/Amendement.json +0 -246
  275. package/lib/schemas/amendement/Diff.json +0 -25
  276. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  277. package/lib/schemas/amendement/Identifiant.json +0 -62
  278. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  279. package/lib/schemas/amendement/Representation.json +0 -67
  280. package/lib/schemas/amendement/Total.json +0 -26
  281. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  282. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  283. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  284. package/lib/schemas/converted_from_type/debats.json +0 -682
  285. package/lib/schemas/converted_from_type/deputes.json +0 -26
  286. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  287. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  288. package/lib/schemas/converted_from_type/questions.json +0 -328
  289. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  290. package/lib/schemas/debat/Contenu.json +0 -75
  291. package/lib/schemas/debat/Debat.json +0 -40
  292. package/lib/schemas/debat/Metadonnees.json +0 -75
  293. package/lib/schemas/debat/Orateur.json +0 -60
  294. package/lib/schemas/debat/Point.json +0 -169
  295. package/lib/schemas/debat/Sommaire.json +0 -71
  296. package/lib/schemas/debat/SommaireElement.json +0 -108
  297. package/lib/schemas/debat/Texte.json +0 -34
  298. package/lib/schemas/document/CodeLibelle.json +0 -25
  299. package/lib/schemas/document/Document.json +0 -385
  300. package/lib/schemas/document/Indexation.json +0 -38
  301. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  302. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  303. package/lib/schemas/dossier/Agenda.json +0 -23
  304. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  305. package/lib/schemas/dossier/Decision.json +0 -25
  306. package/lib/schemas/dossier/Dossier.json +0 -124
  307. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  308. package/lib/schemas/dossier/EtudePlf.json +0 -105
  309. package/lib/schemas/dossier/Europe.json +0 -42
  310. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  311. package/lib/schemas/dossier/InfoJO.json +0 -23
  312. package/lib/schemas/dossier/Initiateur.json +0 -36
  313. package/lib/schemas/dossier/Motion.json +0 -27
  314. package/lib/schemas/dossier/Promulgation.json +0 -62
  315. package/lib/schemas/dossier/Rapporteur.json +0 -36
  316. package/lib/schemas/dossier/Texte.json +0 -47
  317. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  318. package/lib/schemas/organe/Organe.json +0 -136
  319. package/lib/schemas/organe/ViMoDe.json +0 -28
  320. package/lib/schemas/question/Auteur.json +0 -58
  321. package/lib/schemas/question/Cloture.json +0 -28
  322. package/lib/schemas/question/InfoJO.json +0 -40
  323. package/lib/schemas/question/MinAttribElement.json +0 -30
  324. package/lib/schemas/question/Question.json +0 -172
  325. package/lib/schemas/question/Renouvellement.json +0 -17
  326. package/lib/schemas/question/Signalement.json +0 -21
  327. package/lib/schemas/question/Texte.json +0 -24
  328. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  329. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  330. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  331. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  332. package/lib/schemas/scrutin/Scrutin.json +0 -187
  333. package/lib/schemas/scrutin/Votant.json +0 -37
  334. package/lib/scripts/bugs_helper.d.ts +0 -13
  335. package/lib/scripts/bugs_helper.js +0 -595
  336. package/lib/scripts/bugs_helper.mjs +0 -251
  337. package/lib/scripts/clean_reorganized_data.js +0 -613
  338. package/lib/scripts/clean_reorganized_data.mjs +0 -276
  339. package/lib/scripts/diff_amendements.js +0 -249
  340. package/lib/scripts/diff_amendements.mjs +0 -202
  341. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  342. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  343. package/lib/scripts/get_today_reunions.js +0 -37
  344. package/lib/scripts/get_today_reunions.mjs +0 -31
  345. package/lib/scripts/merge_scrutins.js +0 -97
  346. package/lib/scripts/merge_scrutins.mjs +0 -47
  347. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  348. package/lib/scripts/parse_textes_lois.js +0 -171
  349. package/lib/scripts/parse_textes_lois.mjs +0 -140
  350. package/lib/scripts/process_open_dataset.js +0 -301
  351. package/lib/scripts/process_open_dataset.mjs +0 -134
  352. package/lib/scripts/raw_types_from_amendements.js +0 -135
  353. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  354. package/lib/scripts/reorganize_data.js +0 -805
  355. package/lib/scripts/reorganize_data.mjs +0 -517
  356. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  357. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  358. package/lib/scripts/retrieve_documents.js +0 -547
  359. package/lib/scripts/retrieve_documents.mjs +0 -242
  360. package/lib/scripts/retrieve_open_data.js +0 -107
  361. package/lib/scripts/retrieve_open_data.mjs +0 -26
  362. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  363. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  364. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  365. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  366. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  367. package/lib/scripts/retrieve_textes_lois.js +0 -240
  368. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  369. package/lib/scripts/shared/cli_helpers.js +0 -89
  370. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  371. package/lib/scripts/test_iter_load.js +0 -155
  372. package/lib/scripts/test_iter_load.mjs +0 -72
  373. package/lib/scripts/test_load.js +0 -26
  374. package/lib/scripts/test_load.mjs +0 -16
  375. package/lib/scripts/test_load_big_files.js +0 -26
  376. package/lib/scripts/test_load_big_files.mjs +0 -16
  377. package/lib/scripts/validate_json.js +0 -353
  378. package/lib/scripts/validate_json.mjs +0 -184
  379. package/lib/shared_types/codes_actes.js +0 -231
  380. package/lib/shared_types/codes_actes.mjs +0 -224
  381. package/lib/strings.js +0 -16
  382. package/lib/strings.mjs +0 -7
  383. package/lib/types/acteurs_et_organes.js +0 -965
  384. package/lib/types/acteurs_et_organes.mjs +0 -906
  385. package/lib/types/agendas.js +0 -628
  386. package/lib/types/agendas.mjs +0 -575
  387. package/lib/types/amendements.js +0 -899
  388. package/lib/types/amendements.mjs +0 -842
  389. package/lib/types/debats.js +0 -619
  390. package/lib/types/debats.mjs +0 -562
  391. package/lib/types/dossiers_legislatifs.js +0 -1188
  392. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  393. package/lib/types/legislatures.js +0 -17
  394. package/lib/types/legislatures.mjs +0 -10
  395. package/lib/types/questions.js +0 -454
  396. package/lib/types/questions.mjs +0 -401
  397. package/lib/types/scrutins.js +0 -556
  398. package/lib/types/scrutins.mjs +0 -503
  399. package/lib/urls.js +0 -325
  400. package/lib/urls.mjs +0 -258
@@ -1,353 +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-primitive.js");
8
- require("core-js/modules/es.symbol.to-string-tag.js");
9
- require("core-js/modules/es.array.for-each.js");
10
- require("core-js/modules/es.array.from.js");
11
- require("core-js/modules/es.array.is-array.js");
12
- require("core-js/modules/es.array.iterator.js");
13
- require("core-js/modules/es.array.reverse.js");
14
- require("core-js/modules/es.date.to-primitive.js");
15
- require("core-js/modules/es.date.to-string.js");
16
- require("core-js/modules/es.function.name.js");
17
- require("core-js/modules/es.json.to-string-tag.js");
18
- require("core-js/modules/es.math.to-string-tag.js");
19
- require("core-js/modules/es.number.constructor.js");
20
- require("core-js/modules/es.object.create.js");
21
- require("core-js/modules/es.object.define-property.js");
22
- require("core-js/modules/es.object.get-own-property-descriptor.js");
23
- require("core-js/modules/es.object.get-prototype-of.js");
24
- require("core-js/modules/es.object.set-prototype-of.js");
25
- require("core-js/modules/es.object.to-string.js");
26
- require("core-js/modules/es.promise.js");
27
- require("core-js/modules/es.regexp.to-string.js");
28
- require("core-js/modules/es.string.iterator.js");
29
- require("core-js/modules/es.weak-map.js");
30
- require("core-js/modules/web.dom-collections.for-each.js");
31
- require("core-js/modules/web.dom-collections.iterator.js");
32
- 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); }
33
- require("core-js/modules/es.array.concat.js");
34
- require("core-js/modules/es.array.includes.js");
35
- require("core-js/modules/es.array.join.js");
36
- require("core-js/modules/es.array.slice.js");
37
- require("core-js/modules/es.regexp.exec.js");
38
- require("core-js/modules/es.string.ends-with.js");
39
- require("core-js/modules/es.string.includes.js");
40
- require("core-js/modules/es.string.replace.js");
41
- var _ajv = _interopRequireDefault(require("ajv"));
42
- var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
43
- var _commandLineUsage = _interopRequireDefault(require("command-line-usage"));
44
- var _file_systems = require("../file_systems");
45
- var git = _interopRequireWildcard(require("../git"));
46
- var _temp = _interopRequireDefault(require("temp"));
47
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
48
- var _path = _interopRequireDefault(require("path"));
49
- var _datasets = require("../../src/datasets");
50
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
51
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
52
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
53
- 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; }
54
- 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); }
55
- 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); }); }; }
56
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
57
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
58
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
59
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
60
- 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); } }
61
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
62
- 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; }
63
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
64
- 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); }
65
- // Automatically track and cleanup files at exit
66
- _temp["default"].track();
67
- function parseArgs(argv) {
68
- var optionsDefinitions = [{
69
- description: "pathname to the directory containing the dataset",
70
- defaultOption: true,
71
- name: "data",
72
- type: String
73
- }, {
74
- description: "URL or path to the tricoteuses-assemblee git repository",
75
- defaultValue: "https://git.en-root.org/tricoteuses/tricoteuses-assemblee.git",
76
- name: "repository",
77
- type: String
78
- }, {
79
- description: "dataset (possible values must include exactly one of ".concat((0, _datasets.getDatasets)(), ")"),
80
- name: "dataset",
81
- type: String
82
- }, {
83
- description: "schema (possible values are ".concat((0, _datasets.getSchemas)(), ")"),
84
- name: "schema",
85
- type: String
86
- }, {
87
- description: "ignore schemaVersion from JSON files and use the current directory instead of the --repository",
88
- name: "dev",
89
- type: Boolean
90
- }, {
91
- description: "increase verbosity",
92
- name: "verbose",
93
- type: Boolean
94
- }, {
95
- name: "help",
96
- description: "Print this usage guide."
97
- }];
98
- var sections = [{
99
- header: "Validate JSON files",
100
- content: "Validate JSON files"
101
- }, {
102
- header: "Options",
103
- optionList: optionsDefinitions
104
- }];
105
- var options = (0, _commandLineArgs["default"])(optionsDefinitions, {
106
- argv: argv
107
- });
108
- if (options.dataset) {
109
- if (!(0, _datasets.validDataset)(options.dataset)) {
110
- console.error("--dataset ".concat(options.dataset));
111
- options.help = true;
112
- }
113
- }
114
- if (options.schema) {
115
- if (!(0, _datasets.getSchemas)().includes(options.schema)) {
116
- console.error("--schema ".concat(options.schema));
117
- options.help = true;
118
- }
119
- }
120
- if ("help" in options) {
121
- var usage = (0, _commandLineUsage["default"])(sections);
122
- console.warn(usage);
123
- return null;
124
- }
125
- return options;
126
- }
127
- var Validate = /*#__PURE__*/function () {
128
- function Validate(options) {
129
- _classCallCheck(this, Validate);
130
- _defineProperty(this, "options", void 0);
131
- _defineProperty(this, "version2schema", void 0);
132
- _defineProperty(this, "tmpDir", void 0);
133
- this.options = options;
134
- this.version2schema = {};
135
- this.tmpDir = _temp["default"].mkdirSync("validation");
136
- }
137
- return _createClass(Validate, [{
138
- key: "getSchemaDir",
139
- value: function getSchemaDir(tag) {
140
- if (this.options.dev == true) {
141
- if (this.options.verbose) console.log("--dev: use src/schemas");
142
- return "src/schemas";
143
- }
144
- var repositoryDir = _path["default"].join(this.tmpDir, "tricoteuses-assemblee");
145
- var tagDir = _path["default"].join(this.tmpDir, tag);
146
- if (!_fsExtra["default"].existsSync(tagDir)) {
147
- if (!_fsExtra["default"].existsSync(repositoryDir)) {
148
- git.run(this.tmpDir, "clone --quiet ".concat(this.options.repository, " ").concat(repositoryDir));
149
- }
150
- git.run(repositoryDir, "checkout tags/".concat(tag, " -- src/schemas > /dev/null 2>&1"));
151
- _fsExtra["default"].renameSync(_path["default"].join(repositoryDir, "src/schemas"), tagDir);
152
- }
153
- return tagDir;
154
- }
155
- }, {
156
- key: "getValidator",
157
- value: function getValidator(version) {
158
- if (!(version in this.version2schema)) {
159
- var ajv = new _ajv["default"]();
160
- var dir = this.getSchemaDir("schema-".concat(version));
161
- var references = [];
162
- var _iterator = _createForOfIteratorHelper((0, _file_systems.getFiles)(["".concat(dir, "/").concat(this.options.schema, "/*.json")])),
163
- _step;
164
- try {
165
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
166
- var reference = _step.value;
167
- references.push(reference);
168
- }
169
- } catch (err) {
170
- _iterator.e(err);
171
- } finally {
172
- _iterator.f();
173
- }
174
- var _iterator2 = _createForOfIteratorHelper((0, _file_systems.getFiles)(references)),
175
- _step2;
176
- try {
177
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
178
- var file = _step2.value;
179
- if (this.options.verbose) console.log("reference: ".concat(file));
180
- ajv.addSchema((0, _file_systems.load)(file));
181
- }
182
- } catch (err) {
183
- _iterator2.e(err);
184
- } finally {
185
- _iterator2.f();
186
- }
187
- var schema = this.options.schema;
188
- var Schema = schema.charAt(0).toUpperCase() + schema.slice(1);
189
- var s = "".concat(dir, "/").concat(schema, "/").concat(Schema, ".json");
190
- if (this.options.verbose) console.log("schema ".concat(s));
191
- this.version2schema[version] = ajv.compile((0, _file_systems.load)(s));
192
- }
193
- return this.version2schema[version];
194
- }
195
- }, {
196
- key: "getVersion",
197
- value: function getVersion(content) {
198
- if (content.schemaVersion != undefined) return content.schemaVersion;
199
- return "".concat(this.options.schema, "-1.0");
200
- }
201
- }, {
202
- key: "getSchemaURL",
203
- value: function getSchemaURL(version) {
204
- if (this.options.dev == true) return "src/schemas";else {
205
- if (_fsExtra["default"].existsSync(this.options.repository)) {
206
- return "".concat(this.options.repository, "/src/schemas at tag schema-").concat(version);
207
- } else {
208
- var repository = this.options.repository.replace(/\.git$/, "");
209
- return "".concat(repository, "/tree/schema-").concat(version, "/src/schemas");
210
- }
211
- }
212
- }
213
- }, {
214
- key: "validate",
215
- value: function validate(content, filename) {
216
- var tag = this.getVersion(content);
217
- var validator = this.getValidator(tag);
218
- var valid = validator(content);
219
- var schemaURL = this.getSchemaURL(tag);
220
- if (!valid) {
221
- console.error("".concat(schemaURL, " finds ").concat(filename, " is invalid"));
222
- console.error(validator.errors);
223
- return 1;
224
- } else {
225
- if (this.options.verbose) console.log("".concat(schemaURL, " finds ").concat(filename, " is valid"));
226
- return 0;
227
- }
228
- }
229
- }, {
230
- key: "process",
231
- value: function () {
232
- var _process = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
233
- var status, _iterator3, _step3, file, content;
234
- return _regeneratorRuntime().wrap(function _callee$(_context) {
235
- while (1) switch (_context.prev = _context.next) {
236
- case 0:
237
- status = 0;
238
- _iterator3 = _createForOfIteratorHelper((0, _file_systems.getFiles)([this.options.data]));
239
- try {
240
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
241
- file = _step3.value;
242
- content = (0, _file_systems.load)(file);
243
- status |= this.validate(content, file);
244
- }
245
- } catch (err) {
246
- _iterator3.e(err);
247
- } finally {
248
- _iterator3.f();
249
- }
250
- return _context.abrupt("return", status);
251
- case 4:
252
- case "end":
253
- return _context.stop();
254
- }
255
- }, _callee, this);
256
- }));
257
- function process() {
258
- return _process.apply(this, arguments);
259
- }
260
- return process;
261
- }()
262
- }]);
263
- }();
264
- function main(_x) {
265
- return _main.apply(this, arguments);
266
- }
267
- /* istanbul ignore if */
268
- function _main() {
269
- _main = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(argv) {
270
- var options, directorySchema, _iterator4, _step4, d, validate, status;
271
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
272
- while (1) switch (_context2.prev = _context2.next) {
273
- case 0:
274
- options = parseArgs(argv);
275
- if (!(options === null)) {
276
- _context2.next = 3;
277
- break;
278
- }
279
- return _context2.abrupt("return", 1);
280
- case 3:
281
- directorySchema = [];
282
- if (!options.schema) {
283
- _context2.next = 8;
284
- break;
285
- }
286
- directorySchema = [[options.data, options.schema]];
287
- _context2.next = 14;
288
- break;
289
- case 8:
290
- if (!options.dataset) {
291
- _context2.next = 12;
292
- break;
293
- }
294
- directorySchema = (0, _datasets.datasetDirectorySchema)(options.dataset);
295
- _context2.next = 14;
296
- break;
297
- case 12:
298
- console.error("either --schema or --dataset is required");
299
- return _context2.abrupt("return", 1);
300
- case 14:
301
- _iterator4 = _createForOfIteratorHelper(directorySchema);
302
- _context2.prev = 15;
303
- _iterator4.s();
304
- case 17:
305
- if ((_step4 = _iterator4.n()).done) {
306
- _context2.next = 30;
307
- break;
308
- }
309
- d = _step4.value;
310
- options.schema = d[1];
311
- options.data = d[0];
312
- if (options.verbose) console.log("working on files ".concat(options.data, " with schema ").concat(options.schema));
313
- validate = new Validate(options);
314
- _context2.next = 25;
315
- return validate.process();
316
- case 25:
317
- status = _context2.sent;
318
- if (!(status != 0)) {
319
- _context2.next = 28;
320
- break;
321
- }
322
- return _context2.abrupt("return", status);
323
- case 28:
324
- _context2.next = 17;
325
- break;
326
- case 30:
327
- _context2.next = 35;
328
- break;
329
- case 32:
330
- _context2.prev = 32;
331
- _context2.t0 = _context2["catch"](15);
332
- _iterator4.e(_context2.t0);
333
- case 35:
334
- _context2.prev = 35;
335
- _iterator4.f();
336
- return _context2.finish(35);
337
- case 38:
338
- return _context2.abrupt("return", 0);
339
- case 39:
340
- case "end":
341
- return _context2.stop();
342
- }
343
- }, _callee2, null, [[15, 32, 35, 38]]);
344
- }));
345
- return _main.apply(this, arguments);
346
- }
347
- if (process.argv[1].endsWith("validate_json.ts")) main(process.argv).then(function (exitCode) {
348
- process.exit(exitCode);
349
- })["catch"](function (error) {
350
- console.error(error);
351
- process.exit(1);
352
- });
353
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWp2IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2NvbW1hbmRMaW5lVXNhZ2UiLCJfZmlsZV9zeXN0ZW1zIiwiZ2l0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdGVtcCIsIl9mc0V4dHJhIiwiX3BhdGgiLCJfZGF0YXNldHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwicHJvdG90eXBlIiwibyIsInZhbHVlIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9uIiwiRiIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJmcm9tIiwidGVzdCIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsIk51bWJlciIsInRlbXAiLCJ0cmFjayIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJkZXNjcmlwdGlvbiIsImRlZmF1bHRPcHRpb24iLCJkZWZhdWx0VmFsdWUiLCJjb25jYXQiLCJnZXREYXRhc2V0cyIsImdldFNjaGVtYXMiLCJCb29sZWFuIiwic2VjdGlvbnMiLCJoZWFkZXIiLCJjb250ZW50Iiwib3B0aW9uTGlzdCIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJkYXRhc2V0IiwidmFsaWREYXRhc2V0IiwiY29uc29sZSIsImVycm9yIiwiaGVscCIsInNjaGVtYSIsImluY2x1ZGVzIiwidXNhZ2UiLCJjb21tYW5kTGluZVVzYWdlIiwid2FybiIsIlZhbGlkYXRlIiwidmVyc2lvbjJzY2hlbWEiLCJ0bXBEaXIiLCJta2RpclN5bmMiLCJnZXRTY2hlbWFEaXIiLCJ0YWciLCJkZXYiLCJ2ZXJib3NlIiwibG9nIiwicmVwb3NpdG9yeURpciIsInBhdGgiLCJqb2luIiwidGFnRGlyIiwiZnMiLCJleGlzdHNTeW5jIiwicnVuIiwicmVwb3NpdG9yeSIsInJlbmFtZVN5bmMiLCJnZXRWYWxpZGF0b3IiLCJ2ZXJzaW9uIiwiYWp2IiwiQWp2IiwiZGlyIiwicmVmZXJlbmNlcyIsIl9pdGVyYXRvciIsImdldEZpbGVzIiwiX3N0ZXAiLCJyZWZlcmVuY2UiLCJlcnIiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiZmlsZSIsImFkZFNjaGVtYSIsImxvYWQiLCJTY2hlbWEiLCJ0b1VwcGVyQ2FzZSIsImNvbXBpbGUiLCJnZXRWZXJzaW9uIiwic2NoZW1hVmVyc2lvbiIsInVuZGVmaW5lZCIsImdldFNjaGVtYVVSTCIsInJlcGxhY2UiLCJ2YWxpZGF0ZSIsImZpbGVuYW1lIiwidmFsaWRhdG9yIiwidmFsaWQiLCJzY2hlbWFVUkwiLCJlcnJvcnMiLCJfcHJvY2VzcyIsIl9jYWxsZWUiLCJzdGF0dXMiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRhdGEiLCJwcm9jZXNzIiwibWFpbiIsIl94IiwiX21haW4iLCJfY2FsbGVlMiIsImRpcmVjdG9yeVNjaGVtYSIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJkYXRhc2V0RGlyZWN0b3J5U2NoZW1hIiwidDAiLCJlbmRzV2l0aCIsImV4aXRDb2RlIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3ZhbGlkYXRlX2pzb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFqdiBmcm9tIFwiYWp2XCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBjb21tYW5kTGluZVVzYWdlIGZyb20gXCJjb21tYW5kLWxpbmUtdXNhZ2VcIlxuaW1wb3J0IHsgbG9hZCwgZ2V0RmlsZXMgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB0ZW1wIGZyb20gXCJ0ZW1wXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHtcbiAgdmFsaWREYXRhc2V0LFxuICBnZXREYXRhc2V0cyxcbiAgZ2V0U2NoZW1hcyxcbiAgZGF0YXNldERpcmVjdG9yeVNjaGVtYSxcbn0gZnJvbSBcIi4uLy4uL3NyYy9kYXRhc2V0c1wiXG5cbi8vIEF1dG9tYXRpY2FsbHkgdHJhY2sgYW5kIGNsZWFudXAgZmlsZXMgYXQgZXhpdFxudGVtcC50cmFjaygpXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJwYXRobmFtZSB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGRhdGFzZXRcIixcbiAgICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgICBuYW1lOiBcImRhdGFcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvciBwYXRoIHRvIHRoZSB0cmljb3RldXNlcy1hc3NlbWJsZWUgZ2l0IHJlcG9zaXRvcnlcIixcbiAgICAgIGRlZmF1bHRWYWx1ZTpcbiAgICAgICAgXCJodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy90cmljb3RldXNlcy1hc3NlbWJsZWUuZ2l0XCIsXG4gICAgICBuYW1lOiBcInJlcG9zaXRvcnlcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgZGF0YXNldCAocG9zc2libGUgdmFsdWVzIG11c3QgaW5jbHVkZSBleGFjdGx5IG9uZSBvZiAke2dldERhdGFzZXRzKCl9KWAsXG4gICAgICBuYW1lOiBcImRhdGFzZXRcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgc2NoZW1hIChwb3NzaWJsZSB2YWx1ZXMgYXJlICR7Z2V0U2NoZW1hcygpfSlgLFxuICAgICAgbmFtZTogXCJzY2hlbWFcIixcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcImlnbm9yZSBzY2hlbWFWZXJzaW9uIGZyb20gSlNPTiBmaWxlcyBhbmQgdXNlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHRoZSAtLXJlcG9zaXRvcnlcIixcbiAgICAgIG5hbWU6IFwiZGV2XCIsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgIH0sXG4gICAge1xuICAgICAgZGVzY3JpcHRpb246IFwiaW5jcmVhc2UgdmVyYm9zaXR5XCIsXG4gICAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImhlbHBcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IHRoaXMgdXNhZ2UgZ3VpZGUuXCIsXG4gICAgfSxcbiAgXVxuICBjb25zdCBzZWN0aW9ucyA9IFtcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiVmFsaWRhdGUgSlNPTiBmaWxlc1wiLFxuICAgICAgY29udGVudDogXCJWYWxpZGF0ZSBKU09OIGZpbGVzXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWFkZXI6IFwiT3B0aW9uc1wiLFxuICAgICAgb3B0aW9uTGlzdDogb3B0aW9uc0RlZmluaXRpb25zLFxuICAgIH0sXG4gIF1cbiAgY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMsIHtcbiAgICBhcmd2OiBhcmd2LFxuICB9KVxuXG4gIGlmIChvcHRpb25zLmRhdGFzZXQpIHtcbiAgICBpZiAoIXZhbGlkRGF0YXNldChvcHRpb25zLmRhdGFzZXQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAtLWRhdGFzZXQgJHtvcHRpb25zLmRhdGFzZXR9YClcbiAgICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAob3B0aW9ucy5zY2hlbWEpIHtcbiAgICBpZiAoIWdldFNjaGVtYXMoKS5pbmNsdWRlcyhvcHRpb25zLnNjaGVtYSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYC0tc2NoZW1hICR7b3B0aW9ucy5zY2hlbWF9YClcbiAgICAgIG9wdGlvbnMuaGVscCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAoXCJoZWxwXCIgaW4gb3B0aW9ucykge1xuICAgIGNvbnN0IHVzYWdlID0gY29tbWFuZExpbmVVc2FnZShzZWN0aW9ucylcbiAgICBjb25zb2xlLndhcm4odXNhZ2UpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5jbGFzcyBWYWxpZGF0ZSB7XG4gIG9wdGlvbnM6IGFueVxuICB2ZXJzaW9uMnNjaGVtYTogYW55XG4gIHRtcERpcjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMudmVyc2lvbjJzY2hlbWEgPSB7fVxuICAgIHRoaXMudG1wRGlyID0gdGVtcC5ta2RpclN5bmMoXCJ2YWxpZGF0aW9uXCIpXG4gIH1cblxuICBnZXRTY2hlbWFEaXIodGFnOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRldiA9PSB0cnVlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKFwiLS1kZXY6IHVzZSBzcmMvc2NoZW1hc1wiKVxuICAgICAgcmV0dXJuIFwic3JjL3NjaGVtYXNcIlxuICAgIH1cbiAgICBjb25zdCByZXBvc2l0b3J5RGlyID0gcGF0aC5qb2luKHRoaXMudG1wRGlyLCBcInRyaWNvdGV1c2VzLWFzc2VtYmxlZVwiKVxuICAgIGNvbnN0IHRhZ0RpciA9IHBhdGguam9pbih0aGlzLnRtcERpciwgdGFnKVxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0YWdEaXIpKSB7XG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocmVwb3NpdG9yeURpcikpIHtcbiAgICAgICAgZ2l0LnJ1bihcbiAgICAgICAgICB0aGlzLnRtcERpcixcbiAgICAgICAgICBgY2xvbmUgLS1xdWlldCAke3RoaXMub3B0aW9ucy5yZXBvc2l0b3J5fSAke3JlcG9zaXRvcnlEaXJ9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgZ2l0LnJ1bihcbiAgICAgICAgcmVwb3NpdG9yeURpcixcbiAgICAgICAgYGNoZWNrb3V0IHRhZ3MvJHt0YWd9IC0tIHNyYy9zY2hlbWFzID4gL2Rldi9udWxsIDI+JjFgLFxuICAgICAgKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRoLmpvaW4ocmVwb3NpdG9yeURpciwgXCJzcmMvc2NoZW1hc1wiKSwgdGFnRGlyKVxuICAgIH1cbiAgICByZXR1cm4gdGFnRGlyXG4gIH1cblxuICBnZXRWYWxpZGF0b3IodmVyc2lvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoISh2ZXJzaW9uIGluIHRoaXMudmVyc2lvbjJzY2hlbWEpKSB7XG4gICAgICBjb25zdCBhanYgPSBuZXcgQWp2KClcbiAgICAgIGNvbnN0IGRpciA9IHRoaXMuZ2V0U2NoZW1hRGlyKGBzY2hlbWEtJHt2ZXJzaW9ufWApXG4gICAgICBsZXQgcmVmZXJlbmNlcyA9IFtdXG4gICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiBnZXRGaWxlcyhbXG4gICAgICAgIGAke2Rpcn0vJHt0aGlzLm9wdGlvbnMuc2NoZW1hfS8qLmpzb25gLFxuICAgICAgXSkpXG4gICAgICAgIHJlZmVyZW5jZXMucHVzaChyZWZlcmVuY2UpXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZ2V0RmlsZXMocmVmZXJlbmNlcykpIHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy52ZXJib3NlKSBjb25zb2xlLmxvZyhgcmVmZXJlbmNlOiAke2ZpbGV9YClcbiAgICAgICAgYWp2LmFkZFNjaGVtYShsb2FkKGZpbGUpKVxuICAgICAgfVxuICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5vcHRpb25zLnNjaGVtYVxuICAgICAgY29uc3QgU2NoZW1hID0gc2NoZW1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc2NoZW1hLnNsaWNlKDEpXG4gICAgICBjb25zdCBzID0gYCR7ZGlyfS8ke3NjaGVtYX0vJHtTY2hlbWF9Lmpzb25gXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGBzY2hlbWEgJHtzfWApXG4gICAgICB0aGlzLnZlcnNpb24yc2NoZW1hW3ZlcnNpb25dID0gYWp2LmNvbXBpbGUobG9hZChzKSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbjJzY2hlbWFbdmVyc2lvbl1cbiAgfVxuXG4gIGdldFZlcnNpb24oY29udGVudDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoY29udGVudC5zY2hlbWFWZXJzaW9uICE9IHVuZGVmaW5lZCkgcmV0dXJuIGNvbnRlbnQuc2NoZW1hVmVyc2lvblxuICAgIHJldHVybiBgJHt0aGlzLm9wdGlvbnMuc2NoZW1hfS0xLjBgXG4gIH1cblxuICBnZXRTY2hlbWFVUkwodmVyc2lvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmRldiA9PSB0cnVlKSByZXR1cm4gXCJzcmMvc2NoZW1hc1wiXG4gICAgZWxzZSB7XG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucmVwb3NpdG9yeSkpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMub3B0aW9ucy5yZXBvc2l0b3J5fS9zcmMvc2NoZW1hcyBhdCB0YWcgc2NoZW1hLSR7dmVyc2lvbn1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZXBvc2l0b3J5ID0gdGhpcy5vcHRpb25zLnJlcG9zaXRvcnkucmVwbGFjZSgvXFwuZ2l0JC8sIFwiXCIpXG4gICAgICAgIHJldHVybiBgJHtyZXBvc2l0b3J5fS90cmVlL3NjaGVtYS0ke3ZlcnNpb259L3NyYy9zY2hlbWFzYFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRlbnQ6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5nZXRWZXJzaW9uKGNvbnRlbnQpXG4gICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5nZXRWYWxpZGF0b3IodGFnKVxuICAgIGNvbnN0IHZhbGlkID0gdmFsaWRhdG9yKGNvbnRlbnQpXG4gICAgY29uc3Qgc2NoZW1hVVJMID0gdGhpcy5nZXRTY2hlbWFVUkwodGFnKVxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7c2NoZW1hVVJMfSBmaW5kcyAke2ZpbGVuYW1lfSBpcyBpbnZhbGlkYClcbiAgICAgIGNvbnNvbGUuZXJyb3IodmFsaWRhdG9yLmVycm9ycylcbiAgICAgIHJldHVybiAxXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMudmVyYm9zZSlcbiAgICAgICAgY29uc29sZS5sb2coYCR7c2NoZW1hVVJMfSBmaW5kcyAke2ZpbGVuYW1lfSBpcyB2YWxpZGApXG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHByb2Nlc3MoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBsZXQgc3RhdHVzID0gMFxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBnZXRGaWxlcyhbdGhpcy5vcHRpb25zLmRhdGFdKSkge1xuICAgICAgY29uc3QgY29udGVudCA9IGxvYWQoZmlsZSlcbiAgICAgIHN0YXR1cyB8PSB0aGlzLnZhbGlkYXRlKGNvbnRlbnQsIGZpbGUpXG4gICAgfVxuICAgIHJldHVybiBzdGF0dXNcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtYWluKGFyZ3Y6IGFueSk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBwYXJzZUFyZ3MoYXJndilcbiAgaWYgKG9wdGlvbnMgPT09IG51bGwpIHJldHVybiAxXG4gIGxldCBkaXJlY3RvcnlTY2hlbWEgPSBbXVxuICBpZiAob3B0aW9ucy5zY2hlbWEpIHtcbiAgICBkaXJlY3RvcnlTY2hlbWEgPSBbW29wdGlvbnMuZGF0YSwgb3B0aW9ucy5zY2hlbWFdXVxuICB9IGVsc2UgaWYgKG9wdGlvbnMuZGF0YXNldCkge1xuICAgIGRpcmVjdG9yeVNjaGVtYSA9IGRhdGFzZXREaXJlY3RvcnlTY2hlbWEob3B0aW9ucy5kYXRhc2V0KVxuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJlaXRoZXIgLS1zY2hlbWEgb3IgLS1kYXRhc2V0IGlzIHJlcXVpcmVkXCIpXG4gICAgcmV0dXJuIDFcbiAgfVxuICBmb3IgKGNvbnN0IGQgb2YgZGlyZWN0b3J5U2NoZW1hKSB7XG4gICAgb3B0aW9ucy5zY2hlbWEgPSBkWzFdXG4gICAgb3B0aW9ucy5kYXRhID0gZFswXVxuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpXG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYHdvcmtpbmcgb24gZmlsZXMgJHtvcHRpb25zLmRhdGF9IHdpdGggc2NoZW1hICR7b3B0aW9ucy5zY2hlbWF9YCxcbiAgICAgIClcbiAgICBjb25zdCB2YWxpZGF0ZSA9IG5ldyBWYWxpZGF0ZShvcHRpb25zKVxuICAgIGNvbnN0IHN0YXR1cyA9IGF3YWl0IHZhbGlkYXRlLnByb2Nlc3MoKVxuICAgIGlmIChzdGF0dXMgIT0gMCkgcmV0dXJuIHN0YXR1c1xuICB9XG4gIHJldHVybiAwXG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuaWYgKHByb2Nlc3MuYXJndlsxXS5lbmRzV2l0aChcInZhbGlkYXRlX2pzb24udHNcIikpXG4gIG1haW4ocHJvY2Vzcy5hcmd2KVxuICAgIC50aGVuKChleGl0Q29kZSkgPT4ge1xuICAgICAgcHJvY2Vzcy5leGl0KGV4aXRDb2RlKVxuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQUwsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFNBQUEsR0FBQVQsT0FBQTtBQUsyQixTQUFBVSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENB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