@tricoteuses/assemblee 1.10.5 → 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 (274) 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/debats.d.ts +2 -2
  22. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
  23. package/lib/schemas/acteurs_et_organes.json +1166 -0
  24. package/lib/schemas/agendas.json +1745 -0
  25. package/lib/schemas/amendements.json +2085 -0
  26. package/lib/schemas/debats.json +842 -0
  27. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  28. package/lib/schemas/legislatures.json +17 -0
  29. package/lib/schemas/questions.json +704 -0
  30. package/lib/schemas/scrutins.json +701 -0
  31. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
  32. package/lib/types/acteurs_et_organes.d.ts +340 -0
  33. package/lib/types/agendas.d.ts +236 -10
  34. package/lib/types/amendements.d.ts +276 -1
  35. package/lib/types/debats.d.ts +52 -2
  36. package/lib/types/dossiers_legislatifs.d.ts +403 -9
  37. package/lib/types/questions.d.ts +99 -2
  38. package/lib/types/scrutins.d.ts +101 -0
  39. package/lib/urls.d.ts +2 -2
  40. package/package.json +32 -94
  41. package/lib/api.js +0 -52
  42. package/lib/api.mjs +0 -45
  43. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  44. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  45. package/lib/bugs/acteur-00010.d.ts +0 -7
  46. package/lib/bugs/acteur-00010.js +0 -116
  47. package/lib/bugs/acteur-00010.mjs +0 -26
  48. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  49. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  50. package/lib/bugs/agenda-00002.d.ts +0 -15
  51. package/lib/bugs/agenda-00002.js +0 -406
  52. package/lib/bugs/agenda-00002.mjs +0 -172
  53. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  54. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  55. package/lib/bugs/agenda-00008.d.ts +0 -7
  56. package/lib/bugs/agenda-00008.js +0 -123
  57. package/lib/bugs/agenda-00008.mjs +0 -26
  58. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  59. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  60. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  61. package/lib/bugs/agenda-00011.d.ts +0 -16
  62. package/lib/bugs/agenda-00011.js +0 -333
  63. package/lib/bugs/agenda-00011.mjs +0 -125
  64. package/lib/bugs.d.ts +0 -21
  65. package/lib/bugs.js +0 -452
  66. package/lib/bugs.mjs +0 -70
  67. package/lib/cleaners/actes_legislatifs.js +0 -315
  68. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  69. package/lib/cleaners/acteurs.js +0 -265
  70. package/lib/cleaners/acteurs.mjs +0 -180
  71. package/lib/cleaners/amendements.js +0 -294
  72. package/lib/cleaners/amendements.mjs +0 -227
  73. package/lib/cleaners/debats.js +0 -12
  74. package/lib/cleaners/debats.mjs +0 -5
  75. package/lib/cleaners/documents.js +0 -205
  76. package/lib/cleaners/documents.mjs +0 -133
  77. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  78. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  79. package/lib/cleaners/index.js +0 -70
  80. package/lib/cleaners/index.mjs +0 -10
  81. package/lib/cleaners/organes.js +0 -65
  82. package/lib/cleaners/organes.mjs +0 -48
  83. package/lib/cleaners/questions.js +0 -12
  84. package/lib/cleaners/questions.mjs +0 -5
  85. package/lib/cleaners/reunions.js +0 -312
  86. package/lib/cleaners/reunions.mjs +0 -255
  87. package/lib/cleaners/scrutins.js +0 -340
  88. package/lib/cleaners/scrutins.mjs +0 -221
  89. package/lib/cleaners/xml.js +0 -74
  90. package/lib/cleaners/xml.mjs +0 -59
  91. package/lib/datasets.js +0 -837
  92. package/lib/datasets.mjs +0 -755
  93. package/lib/dates.js +0 -124
  94. package/lib/dates.mjs +0 -100
  95. package/lib/dossiers_legislatifs.js +0 -346
  96. package/lib/dossiers_legislatifs.mjs +0 -208
  97. package/lib/file_systems.js +0 -162
  98. package/lib/file_systems.mjs +0 -62
  99. package/lib/git.js +0 -223
  100. package/lib/git.mjs +0 -151
  101. package/lib/index.mjs +0 -17
  102. package/lib/inserters.js +0 -521
  103. package/lib/inserters.mjs +0 -337
  104. package/lib/loaders.mjs +0 -886
  105. package/lib/logger.js +0 -35
  106. package/lib/logger.mjs +0 -26
  107. package/lib/organes.js +0 -22
  108. package/lib/organes.mjs +0 -15
  109. package/lib/parsers/documents.d.ts +0 -62
  110. package/lib/parsers/documents.js +0 -453
  111. package/lib/parsers/documents.mjs +0 -370
  112. package/lib/parsers/index.js +0 -40
  113. package/lib/parsers/index.mjs +0 -4
  114. package/lib/parsers/recherche_amendements.js +0 -403
  115. package/lib/parsers/recherche_amendements.mjs +0 -167
  116. package/lib/parsers/textes_lois.js +0 -307
  117. package/lib/parsers/textes_lois.mjs +0 -264
  118. package/lib/raw_types/acteurs_et_organes.js +0 -1215
  119. package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
  120. package/lib/raw_types/agendas.js +0 -777
  121. package/lib/raw_types/agendas.mjs +0 -724
  122. package/lib/raw_types/amendements.js +0 -1052
  123. package/lib/raw_types/amendements.mjs +0 -993
  124. package/lib/raw_types/debats.js +0 -630
  125. package/lib/raw_types/debats.mjs +0 -573
  126. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  127. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  128. package/lib/raw_types/questions.js +0 -469
  129. package/lib/raw_types/questions.mjs +0 -416
  130. package/lib/raw_types/scrutins.js +0 -651
  131. package/lib/raw_types/scrutins.mjs +0 -598
  132. package/lib/schemas/acteur/Acteur.json +0 -56
  133. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  134. package/lib/schemas/acteur/AdressePostale.json +0 -75
  135. package/lib/schemas/acteur/Civ.json +0 -14
  136. package/lib/schemas/acteur/Collaborateur.json +0 -29
  137. package/lib/schemas/acteur/EtatCivil.json +0 -51
  138. package/lib/schemas/acteur/Ident.json +0 -40
  139. package/lib/schemas/acteur/Lieu.json +0 -66
  140. package/lib/schemas/acteur/Mandat.json +0 -192
  141. package/lib/schemas/acteur/Profession.json +0 -46
  142. package/lib/schemas/agenda/Agenda.json +0 -318
  143. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  144. package/lib/schemas/agenda/PointOdj.json +0 -82
  145. package/lib/schemas/amendement/Amendement.json +0 -246
  146. package/lib/schemas/amendement/Diff.json +0 -25
  147. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  148. package/lib/schemas/amendement/Identifiant.json +0 -62
  149. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  150. package/lib/schemas/amendement/Representation.json +0 -67
  151. package/lib/schemas/amendement/Total.json +0 -26
  152. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  153. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  154. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  155. package/lib/schemas/converted_from_type/debats.json +0 -682
  156. package/lib/schemas/converted_from_type/deputes.json +0 -26
  157. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  158. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  159. package/lib/schemas/converted_from_type/questions.json +0 -328
  160. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  161. package/lib/schemas/debat/Contenu.json +0 -75
  162. package/lib/schemas/debat/Debat.json +0 -40
  163. package/lib/schemas/debat/Metadonnees.json +0 -75
  164. package/lib/schemas/debat/Orateur.json +0 -60
  165. package/lib/schemas/debat/Point.json +0 -169
  166. package/lib/schemas/debat/Sommaire.json +0 -71
  167. package/lib/schemas/debat/SommaireElement.json +0 -108
  168. package/lib/schemas/debat/Texte.json +0 -34
  169. package/lib/schemas/document/CodeLibelle.json +0 -25
  170. package/lib/schemas/document/Document.json +0 -385
  171. package/lib/schemas/document/Indexation.json +0 -38
  172. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  173. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  174. package/lib/schemas/dossier/Agenda.json +0 -23
  175. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  176. package/lib/schemas/dossier/Decision.json +0 -25
  177. package/lib/schemas/dossier/Dossier.json +0 -124
  178. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  179. package/lib/schemas/dossier/EtudePlf.json +0 -105
  180. package/lib/schemas/dossier/Europe.json +0 -42
  181. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  182. package/lib/schemas/dossier/InfoJO.json +0 -23
  183. package/lib/schemas/dossier/Initiateur.json +0 -36
  184. package/lib/schemas/dossier/Motion.json +0 -27
  185. package/lib/schemas/dossier/Promulgation.json +0 -62
  186. package/lib/schemas/dossier/Rapporteur.json +0 -36
  187. package/lib/schemas/dossier/Texte.json +0 -47
  188. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  189. package/lib/schemas/organe/Organe.json +0 -136
  190. package/lib/schemas/organe/ViMoDe.json +0 -28
  191. package/lib/schemas/question/Auteur.json +0 -58
  192. package/lib/schemas/question/Cloture.json +0 -28
  193. package/lib/schemas/question/InfoJO.json +0 -40
  194. package/lib/schemas/question/MinAttribElement.json +0 -30
  195. package/lib/schemas/question/Question.json +0 -172
  196. package/lib/schemas/question/Renouvellement.json +0 -17
  197. package/lib/schemas/question/Signalement.json +0 -21
  198. package/lib/schemas/question/Texte.json +0 -24
  199. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  200. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  201. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  202. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  203. package/lib/schemas/scrutin/Scrutin.json +0 -187
  204. package/lib/schemas/scrutin/Votant.json +0 -37
  205. package/lib/scripts/bugs_helper.d.ts +0 -13
  206. package/lib/scripts/bugs_helper.js +0 -595
  207. package/lib/scripts/bugs_helper.mjs +0 -251
  208. package/lib/scripts/clean_reorganized_data.js +0 -613
  209. package/lib/scripts/clean_reorganized_data.mjs +0 -276
  210. package/lib/scripts/diff_amendements.js +0 -249
  211. package/lib/scripts/diff_amendements.mjs +0 -202
  212. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  213. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  214. package/lib/scripts/get_today_reunions.js +0 -37
  215. package/lib/scripts/get_today_reunions.mjs +0 -31
  216. package/lib/scripts/merge_scrutins.js +0 -97
  217. package/lib/scripts/merge_scrutins.mjs +0 -47
  218. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  219. package/lib/scripts/parse_textes_lois.js +0 -171
  220. package/lib/scripts/parse_textes_lois.mjs +0 -140
  221. package/lib/scripts/process_open_dataset.js +0 -301
  222. package/lib/scripts/process_open_dataset.mjs +0 -134
  223. package/lib/scripts/raw_types_from_amendements.js +0 -135
  224. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  225. package/lib/scripts/reorganize_data.js +0 -805
  226. package/lib/scripts/reorganize_data.mjs +0 -517
  227. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  228. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  229. package/lib/scripts/retrieve_documents.js +0 -547
  230. package/lib/scripts/retrieve_documents.mjs +0 -242
  231. package/lib/scripts/retrieve_open_data.js +0 -107
  232. package/lib/scripts/retrieve_open_data.mjs +0 -26
  233. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  234. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  235. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  236. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  237. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  238. package/lib/scripts/retrieve_textes_lois.js +0 -240
  239. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  240. package/lib/scripts/shared/cli_helpers.js +0 -89
  241. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  242. package/lib/scripts/test_iter_load.js +0 -155
  243. package/lib/scripts/test_iter_load.mjs +0 -72
  244. package/lib/scripts/test_load.js +0 -26
  245. package/lib/scripts/test_load.mjs +0 -16
  246. package/lib/scripts/test_load_big_files.js +0 -26
  247. package/lib/scripts/test_load_big_files.mjs +0 -16
  248. package/lib/scripts/validate_json.js +0 -353
  249. package/lib/scripts/validate_json.mjs +0 -184
  250. package/lib/shared_types/codes_actes.js +0 -231
  251. package/lib/shared_types/codes_actes.mjs +0 -224
  252. package/lib/strings.js +0 -16
  253. package/lib/strings.mjs +0 -7
  254. package/lib/types/acteurs_et_organes.js +0 -965
  255. package/lib/types/acteurs_et_organes.mjs +0 -906
  256. package/lib/types/agendas.js +0 -628
  257. package/lib/types/agendas.mjs +0 -575
  258. package/lib/types/amendements.js +0 -899
  259. package/lib/types/amendements.mjs +0 -842
  260. package/lib/types/debats.js +0 -619
  261. package/lib/types/debats.mjs +0 -562
  262. package/lib/types/dossiers_legislatifs.js +0 -1188
  263. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  264. package/lib/types/legislatures.js +0 -17
  265. package/lib/types/legislatures.mjs +0 -10
  266. package/lib/types/questions.js +0 -454
  267. package/lib/types/questions.mjs +0 -401
  268. package/lib/types/scrutins.js +0 -556
  269. package/lib/types/scrutins.mjs +0 -503
  270. package/lib/urls.js +0 -325
  271. package/lib/urls.mjs +0 -258
  272. /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
  273. /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
  274. /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
@@ -1,208 +0,0 @@
1
- import { uncapitalizeFirstLetter } from "./strings.mjs";
2
- import { CodeTypeOrgane } from "./types/acteurs_et_organes.mjs";
3
- export let FinalStatus = /*#__PURE__*/function (FinalStatus) {
4
- FinalStatus["Failure"] = "FAILURE";
5
- FinalStatus["Success"] = "SUCCESS";
6
- return FinalStatus;
7
- }({});
8
- export let StatusOnly = /*#__PURE__*/function (StatusOnly) {
9
- StatusOnly["Failure"] = "FAILURE";
10
- StatusOnly["InProgress"] = "IN_PROGRESS";
11
- StatusOnly["Success"] = "SUCCESS";
12
- return StatusOnly;
13
- }({});
14
- export function commissionFondUidFromDossier(dossier) {
15
- if (dossier.actesLegislatifs !== undefined) {
16
- for (const acte of walkActes(dossier.actesLegislatifs)) {
17
- if (acte.codeActe.match(/^AN.*-COM-FOND-SAISIE$/) !== null && acte.organeRef !== undefined && acte.organeRef !== "PO211494" // Commission des finances du SÉNAT (=> erreur)
18
- ) {
19
- return acte.organeRef;
20
- }
21
- }
22
- }
23
- return undefined;
24
- }
25
- export function statusFromCodierLibelle(libelle) {
26
- switch (libelle) {
27
- case "Accord":
28
- case "adopté":
29
- case "adopté, dans les conditions prévues à l'article 45, alinéa 3," + " de la Constitution":
30
- case "adoptée":
31
- case "adopté sans modification":
32
- case "adoptée sans modification":
33
- case "Conforme":
34
- case "considérée comme définitive en application de l'article 151-7 du Règlement":
35
- case "considérée comme définitive en application de l'article 151-9 du Règlement":
36
- case "Motion adopté(e)":
37
- return StatusOnly.Success;
38
- case "Désaccord":
39
- case "Motion rejeté(e)":
40
- case "rejeté":
41
- case "rejetée":
42
- return StatusOnly.Failure;
43
- case "adopté avec modifications":
44
- case "adoptée avec modifications":
45
- case "De droit (article 61 alinéa 1 de la Constitution)":
46
- case "modifié":
47
- case "modifiée":
48
- case "Motion de censure 49-2":
49
- case "Partiellement conforme":
50
- return StatusOnly.InProgress;
51
- case "Soixante députés au moins":
52
- case "Soixante sénateurs au moins":
53
- return CodeTypeOrgane.Constitu;
54
- default:
55
- return StatusOnly.InProgress;
56
- }
57
- }
58
- export function stateFromActePath(dossier, actePath) {
59
- const leafActe = actePath[actePath.length - 1];
60
- let libelle = null;
61
- switch (leafActe.xsiType) {
62
- case "Adoption_Europe_Type":
63
- libelle = leafActe.statutAdoption.libelle;
64
- return {
65
- currentStatus: statusFromCodierLibelle(libelle),
66
- label: uncapitalizeFirstLetter(libelle)
67
- };
68
- case "ConclusionEtapeCC_Type":
69
- libelle = leafActe.statutConclusion.libelle;
70
- return {
71
- currentStatus: statusFromCodierLibelle(libelle),
72
- label: uncapitalizeFirstLetter(libelle)
73
- };
74
- case "Decision_Type":
75
- {
76
- libelle = leafActe.statutConclusion.libelle;
77
- let currentStatus = statusFromCodierLibelle(libelle);
78
- let finalStatus = undefined;
79
- switch (dossier.procedureParlementaire.code) {
80
- case "PROCEDURE_PARLEMENTAIRE_2":
81
- // Proposition de loi ordinaire
82
- // Not sure for other cases => To improve.
83
- if (["rejeté", "rejetée"].includes(libelle) && dossier.actesLegislatifs !== undefined && dossier.actesLegislatifs.length === 1) {
84
- finalStatus = FinalStatus.Failure;
85
- }
86
- break;
87
- case "PROCEDURE_PARLEMENTAIRE_8": // Résolution
88
- case "PROCEDURE_PARLEMENTAIRE_22":
89
- // Résolution Article 34-1
90
- if (currentStatus === StatusOnly.Success) {
91
- finalStatus = FinalStatus.Success;
92
- } else if (currentStatus === StatusOnly.Failure) {
93
- finalStatus = FinalStatus.Failure;
94
- }
95
- break;
96
- default:
97
- break;
98
- }
99
- return {
100
- currentStatus,
101
- finalStatus,
102
- label: uncapitalizeFirstLetter(libelle)
103
- };
104
- }
105
- case "DecisionMotionCensure_Type":
106
- libelle = leafActe.decision.libelle;
107
- return {
108
- currentStatus: statusFromCodierLibelle(libelle),
109
- finalStatus:
110
- // Not sure for other cases => To improve.
111
- // Engagement de la responsabilité gouvernementale
112
- dossier.procedureParlementaire.code === "PROCEDURE_PARLEMENTAIRE_13" && libelle === "Motion rejeté(e)" ? FinalStatus.Failure : FinalStatus.Success,
113
- // TODO: Not sure of this `true` value
114
- label: uncapitalizeFirstLetter(libelle)
115
- };
116
- case "DecisionRecevabiliteBureau_Type":
117
- libelle = leafActe.decision.libelle;
118
- return {
119
- currentStatus: statusFromCodierLibelle(libelle),
120
- label: uncapitalizeFirstLetter(libelle)
121
- };
122
- case "DeclarationGouvernement_Type":
123
- libelle = leafActe.typeDeclaration.libelle;
124
- return {
125
- currentStatus: statusFromCodierLibelle(libelle),
126
- label: uncapitalizeFirstLetter(libelle)
127
- };
128
- case "DepotMotionCensure_Type":
129
- libelle = leafActe.typeMotionCensure.libelle;
130
- return {
131
- currentStatus: statusFromCodierLibelle(libelle),
132
- label: uncapitalizeFirstLetter(libelle)
133
- };
134
- case "DepotRapport_Type":
135
- if (["DossierCommissionEnquete_Type", "DossierMissionControle_Type", "DossierMissionInformation_Type"].includes(dossier.xsiType)) {
136
- return {
137
- currentStatus: actePath[0].organe.codeType,
138
- finalStatus: FinalStatus.Success,
139
- label: "rapport déposé"
140
- };
141
- }
142
- return null;
143
- case "MotionProcedure_Type":
144
- libelle = leafActe.typeMotion.libelle;
145
- return {
146
- currentStatus: statusFromCodierLibelle(libelle),
147
- label: uncapitalizeFirstLetter(libelle)
148
- };
149
- case "Promulgation_Type":
150
- return {
151
- currentStatus: StatusOnly.Success,
152
- finalStatus: FinalStatus.Success,
153
- label: "promulgué"
154
- };
155
- case "RetraitInitiative_Type":
156
- return {
157
- currentStatus: StatusOnly.Failure,
158
- finalStatus: FinalStatus.Failure,
159
- label: "retiré"
160
- };
161
- case "SaisineConseilConstit_Type":
162
- libelle = leafActe.casSaisine.libelle;
163
- return {
164
- currentStatus: statusFromCodierLibelle(libelle),
165
- label: uncapitalizeFirstLetter(libelle)
166
- };
167
- default:
168
- // This acte gives no status.
169
- return null;
170
- }
171
- }
172
- export function stateFromActes(dossier, actePath, actes) {
173
- if (actes !== undefined) {
174
- for (const acte of [...actes].reverse()) {
175
- const status = acte.actesLegislatifs ? stateFromActes(dossier, [...actePath, acte], acte.actesLegislatifs) : stateFromActePath(dossier, [...actePath, acte]);
176
- if (status !== null) {
177
- return status;
178
- }
179
- // No status found, continue with previous acte.
180
- }
181
- }
182
- return null;
183
- }
184
- export function stateFromDossier(dossier) {
185
- const status = stateFromActes(dossier, [], dossier.actesLegislatifs);
186
- if (status !== null) {
187
- return status;
188
- }
189
- return {
190
- currentStatus: StatusOnly.InProgress,
191
- label: "en cours"
192
- };
193
- }
194
- export function* walkActes(actes) {
195
- for (const acte of actes) {
196
- yield acte;
197
- if (acte.actesLegislatifs !== undefined) {
198
- yield* walkActes(acte.actesLegislatifs);
199
- }
200
- }
201
- }
202
- export function* walkDocumentAndDivisions(documentOrDivision) {
203
- yield documentOrDivision;
204
- for (const division of documentOrDivision.divisions ?? []) {
205
- yield* walkDocumentAndDivisions(division);
206
- }
207
- }
208
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1bmNhcGl0YWxpemVGaXJzdExldHRlciIsIkNvZGVUeXBlT3JnYW5lIiwiRmluYWxTdGF0dXMiLCJTdGF0dXNPbmx5IiwiY29tbWlzc2lvbkZvbmRVaWRGcm9tRG9zc2llciIsImRvc3NpZXIiLCJhY3Rlc0xlZ2lzbGF0aWZzIiwidW5kZWZpbmVkIiwiYWN0ZSIsIndhbGtBY3RlcyIsImNvZGVBY3RlIiwibWF0Y2giLCJvcmdhbmVSZWYiLCJzdGF0dXNGcm9tQ29kaWVyTGliZWxsZSIsImxpYmVsbGUiLCJTdWNjZXNzIiwiRmFpbHVyZSIsIkluUHJvZ3Jlc3MiLCJDb25zdGl0dSIsInN0YXRlRnJvbUFjdGVQYXRoIiwiYWN0ZVBhdGgiLCJsZWFmQWN0ZSIsImxlbmd0aCIsInhzaVR5cGUiLCJzdGF0dXRBZG9wdGlvbiIsImN1cnJlbnRTdGF0dXMiLCJsYWJlbCIsInN0YXR1dENvbmNsdXNpb24iLCJmaW5hbFN0YXR1cyIsInByb2NlZHVyZVBhcmxlbWVudGFpcmUiLCJjb2RlIiwiaW5jbHVkZXMiLCJkZWNpc2lvbiIsInR5cGVEZWNsYXJhdGlvbiIsInR5cGVNb3Rpb25DZW5zdXJlIiwib3JnYW5lIiwiY29kZVR5cGUiLCJ0eXBlTW90aW9uIiwiY2FzU2Fpc2luZSIsInN0YXRlRnJvbUFjdGVzIiwiYWN0ZXMiLCJyZXZlcnNlIiwic3RhdHVzIiwic3RhdGVGcm9tRG9zc2llciIsIndhbGtEb2N1bWVudEFuZERpdmlzaW9ucyIsImRvY3VtZW50T3JEaXZpc2lvbiIsImRpdmlzaW9uIiwiZGl2aXNpb25zIl0sInNvdXJjZXMiOlsiLi4vc3JjL2Rvc3NpZXJzX2xlZ2lzbGF0aWZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyIH0gZnJvbSBcIi4vc3RyaW5nc1wiXG5pbXBvcnQgeyBDb2RlVHlwZU9yZ2FuZSB9IGZyb20gXCIuL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgdHlwZSB7XG4gIERvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBBY3RlTGVnaXNsYXRpZixcbiAgRGl2aXNpb24sXG4gIERvY3VtZW50LFxufSBmcm9tIFwiLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRGaWxlSW5mb3Mge1xuICBmaWxlbmFtZT86IHN0cmluZ1xuICBzaGEyNTY/OiBzdHJpbmdcbiAgdXJsOiBzdHJpbmdcbiAgc3RhdHVzOiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRGaWxlc0luZGV4ID0ge1xuICBodG1sPzogRG9jdW1lbnRGaWxlSW5mb3NbXVxuICBwZGY/OiBEb2N1bWVudEZpbGVJbmZvc1tdXG4gIFwicmF3LWh0bWxcIj86IERvY3VtZW50RmlsZUluZm9zW11cbn1cblxuZXhwb3J0IGVudW0gRmluYWxTdGF0dXMge1xuICBGYWlsdXJlID0gXCJGQUlMVVJFXCIsXG4gIFN1Y2Nlc3MgPSBcIlNVQ0NFU1NcIixcbn1cblxuaW50ZXJmYWNlIFN0YXRlIHtcbiAgY3VycmVudFN0YXR1czogU3RhdHVzXG4gIGZpbmFsU3RhdHVzPzogRmluYWxTdGF0dXNcbiAgbGFiZWw6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTdGF0dXMgPSBDb2RlVHlwZU9yZ2FuZSB8IFN0YXR1c09ubHlcblxuZXhwb3J0IGVudW0gU3RhdHVzT25seSB7XG4gIEZhaWx1cmUgPSBcIkZBSUxVUkVcIixcbiAgSW5Qcm9ncmVzcyA9IFwiSU5fUFJPR1JFU1NcIixcbiAgU3VjY2VzcyA9IFwiU1VDQ0VTU1wiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tbWlzc2lvbkZvbmRVaWRGcm9tRG9zc2llcihcbiAgZG9zc2llcjogRG9zc2llclBhcmxlbWVudGFpcmUsXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoZG9zc2llci5hY3Rlc0xlZ2lzbGF0aWZzICE9PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IGFjdGUgb2Ygd2Fsa0FjdGVzKGRvc3NpZXIuYWN0ZXNMZWdpc2xhdGlmcykpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGFjdGUuY29kZUFjdGUgYXMgdW5rbm93biBhcyBzdHJpbmcpLm1hdGNoKC9eQU4uKi1DT00tRk9ORC1TQUlTSUUkLykgIT09XG4gICAgICAgICAgbnVsbCAmJlxuICAgICAgICBhY3RlLm9yZ2FuZVJlZiAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGFjdGUub3JnYW5lUmVmICE9PSBcIlBPMjExNDk0XCIgLy8gQ29tbWlzc2lvbiBkZXMgZmluYW5jZXMgZHUgU8OJTkFUICg9PiBlcnJldXIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGFjdGUub3JnYW5lUmVmXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXR1c0Zyb21Db2RpZXJMaWJlbGxlKGxpYmVsbGU6IHN0cmluZyk6IFN0YXR1cyB7XG4gIHN3aXRjaCAobGliZWxsZSkge1xuICAgIGNhc2UgXCJBY2NvcmRcIjpcbiAgICBjYXNlIFwiYWRvcHTDqVwiOlxuICAgIGNhc2UgXCJhZG9wdMOpLCBkYW5zIGxlcyBjb25kaXRpb25zIHByw6l2dWVzIMOgIGwnYXJ0aWNsZSA0NSwgYWxpbsOpYSAzLFwiICtcbiAgICAgIFwiIGRlIGxhIENvbnN0aXR1dGlvblwiOlxuICAgIGNhc2UgXCJhZG9wdMOpZVwiOlxuICAgIGNhc2UgXCJhZG9wdMOpIHNhbnMgbW9kaWZpY2F0aW9uXCI6XG4gICAgY2FzZSBcImFkb3B0w6llIHNhbnMgbW9kaWZpY2F0aW9uXCI6XG4gICAgY2FzZSBcIkNvbmZvcm1lXCI6XG4gICAgY2FzZSBcImNvbnNpZMOpcsOpZSBjb21tZSBkw6lmaW5pdGl2ZSBlbiBhcHBsaWNhdGlvbiBkZSBsJ2FydGljbGUgMTUxLTcgZHUgUsOoZ2xlbWVudFwiOlxuICAgIGNhc2UgXCJjb25zaWTDqXLDqWUgY29tbWUgZMOpZmluaXRpdmUgZW4gYXBwbGljYXRpb24gZGUgbCdhcnRpY2xlIDE1MS05IGR1IFLDqGdsZW1lbnRcIjpcbiAgICBjYXNlIFwiTW90aW9uIGFkb3B0w6koZSlcIjpcbiAgICAgIHJldHVybiBTdGF0dXNPbmx5LlN1Y2Nlc3NcbiAgICBjYXNlIFwiRMOpc2FjY29yZFwiOlxuICAgIGNhc2UgXCJNb3Rpb24gcmVqZXTDqShlKVwiOlxuICAgIGNhc2UgXCJyZWpldMOpXCI6XG4gICAgY2FzZSBcInJlamV0w6llXCI6XG4gICAgICByZXR1cm4gU3RhdHVzT25seS5GYWlsdXJlXG4gICAgY2FzZSBcImFkb3B0w6kgYXZlYyBtb2RpZmljYXRpb25zXCI6XG4gICAgY2FzZSBcImFkb3B0w6llIGF2ZWMgbW9kaWZpY2F0aW9uc1wiOlxuICAgIGNhc2UgXCJEZSBkcm9pdCAoYXJ0aWNsZSA2MSBhbGluw6lhIDEgZGUgbGEgQ29uc3RpdHV0aW9uKVwiOlxuICAgIGNhc2UgXCJtb2RpZmnDqVwiOlxuICAgIGNhc2UgXCJtb2RpZmnDqWVcIjpcbiAgICBjYXNlIFwiTW90aW9uIGRlIGNlbnN1cmUgNDktMlwiOlxuICAgIGNhc2UgXCJQYXJ0aWVsbGVtZW50IGNvbmZvcm1lXCI6XG4gICAgICByZXR1cm4gU3RhdHVzT25seS5JblByb2dyZXNzXG4gICAgY2FzZSBcIlNvaXhhbnRlIGTDqXB1dMOpcyBhdSBtb2luc1wiOlxuICAgIGNhc2UgXCJTb2l4YW50ZSBzw6luYXRldXJzIGF1IG1vaW5zXCI6XG4gICAgICByZXR1cm4gQ29kZVR5cGVPcmdhbmUuQ29uc3RpdHVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFN0YXR1c09ubHkuSW5Qcm9ncmVzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZUZyb21BY3RlUGF0aChcbiAgZG9zc2llcjogRG9zc2llclBhcmxlbWVudGFpcmUsXG4gIGFjdGVQYXRoOiBBY3RlTGVnaXNsYXRpZltdLFxuKTogU3RhdGUgfCBudWxsIHtcbiAgY29uc3QgbGVhZkFjdGUgPSBhY3RlUGF0aFthY3RlUGF0aC5sZW5ndGggLSAxXVxuICBsZXQgbGliZWxsZSA9IG51bGxcbiAgc3dpdGNoIChsZWFmQWN0ZS54c2lUeXBlKSB7XG4gICAgY2FzZSBcIkFkb3B0aW9uX0V1cm9wZV9UeXBlXCI6XG4gICAgICBsaWJlbGxlID0gbGVhZkFjdGUuc3RhdHV0QWRvcHRpb24hLmxpYmVsbGVcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnRTdGF0dXM6IHN0YXR1c0Zyb21Db2RpZXJMaWJlbGxlKGxpYmVsbGUpLFxuICAgICAgICBsYWJlbDogdW5jYXBpdGFsaXplRmlyc3RMZXR0ZXIobGliZWxsZSksXG4gICAgICB9XG4gICAgY2FzZSBcIkNvbmNsdXNpb25FdGFwZUNDX1R5cGVcIjpcbiAgICAgIGxpYmVsbGUgPSBsZWFmQWN0ZS5zdGF0dXRDb25jbHVzaW9uIS5saWJlbGxlXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjdXJyZW50U3RhdHVzOiBzdGF0dXNGcm9tQ29kaWVyTGliZWxsZShsaWJlbGxlKSxcbiAgICAgICAgbGFiZWw6IHVuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGxpYmVsbGUpLFxuICAgICAgfVxuICAgIGNhc2UgXCJEZWNpc2lvbl9UeXBlXCI6IHtcbiAgICAgIGxpYmVsbGUgPSBsZWFmQWN0ZS5zdGF0dXRDb25jbHVzaW9uIS5saWJlbGxlXG4gICAgICBsZXQgY3VycmVudFN0YXR1cyA9IHN0YXR1c0Zyb21Db2RpZXJMaWJlbGxlKGxpYmVsbGUpXG4gICAgICBsZXQgZmluYWxTdGF0dXMgPSB1bmRlZmluZWRcbiAgICAgIHN3aXRjaCAoZG9zc2llci5wcm9jZWR1cmVQYXJsZW1lbnRhaXJlLmNvZGUpIHtcbiAgICAgICAgY2FzZSBcIlBST0NFRFVSRV9QQVJMRU1FTlRBSVJFXzJcIjpcbiAgICAgICAgICAvLyBQcm9wb3NpdGlvbiBkZSBsb2kgb3JkaW5haXJlXG4gICAgICAgICAgLy8gTm90IHN1cmUgZm9yIG90aGVyIGNhc2VzID0+IFRvIGltcHJvdmUuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgW1wicmVqZXTDqVwiLCBcInJlamV0w6llXCJdLmluY2x1ZGVzKGxpYmVsbGUpICYmXG4gICAgICAgICAgICBkb3NzaWVyLmFjdGVzTGVnaXNsYXRpZnMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgZG9zc2llci5hY3Rlc0xlZ2lzbGF0aWZzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZmluYWxTdGF0dXMgPSBGaW5hbFN0YXR1cy5GYWlsdXJlXG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgXCJQUk9DRURVUkVfUEFSTEVNRU5UQUlSRV84XCI6IC8vIFLDqXNvbHV0aW9uXG4gICAgICAgIGNhc2UgXCJQUk9DRURVUkVfUEFSTEVNRU5UQUlSRV8yMlwiOlxuICAgICAgICAgIC8vIFLDqXNvbHV0aW9uIEFydGljbGUgMzQtMVxuICAgICAgICAgIGlmIChjdXJyZW50U3RhdHVzID09PSBTdGF0dXNPbmx5LlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIGZpbmFsU3RhdHVzID0gRmluYWxTdGF0dXMuU3VjY2Vzc1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFN0YXR1cyA9PT0gU3RhdHVzT25seS5GYWlsdXJlKSB7XG4gICAgICAgICAgICBmaW5hbFN0YXR1cyA9IEZpbmFsU3RhdHVzLkZhaWx1cmVcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudFN0YXR1cyxcbiAgICAgICAgZmluYWxTdGF0dXMsXG4gICAgICAgIGxhYmVsOiB1bmNhcGl0YWxpemVGaXJzdExldHRlcihsaWJlbGxlKSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBcIkRlY2lzaW9uTW90aW9uQ2Vuc3VyZV9UeXBlXCI6XG4gICAgICBsaWJlbGxlID0gbGVhZkFjdGUuZGVjaXNpb24hLmxpYmVsbGVcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnRTdGF0dXM6IHN0YXR1c0Zyb21Db2RpZXJMaWJlbGxlKGxpYmVsbGUpLFxuICAgICAgICBmaW5hbFN0YXR1czpcbiAgICAgICAgICAvLyBOb3Qgc3VyZSBmb3Igb3RoZXIgY2FzZXMgPT4gVG8gaW1wcm92ZS5cbiAgICAgICAgICAvLyBFbmdhZ2VtZW50IGRlIGxhIHJlc3BvbnNhYmlsaXTDqSBnb3V2ZXJuZW1lbnRhbGVcbiAgICAgICAgICBkb3NzaWVyLnByb2NlZHVyZVBhcmxlbWVudGFpcmUuY29kZSA9PT1cbiAgICAgICAgICAgIFwiUFJPQ0VEVVJFX1BBUkxFTUVOVEFJUkVfMTNcIiAmJiBsaWJlbGxlID09PSBcIk1vdGlvbiByZWpldMOpKGUpXCJcbiAgICAgICAgICAgID8gRmluYWxTdGF0dXMuRmFpbHVyZVxuICAgICAgICAgICAgOiBGaW5hbFN0YXR1cy5TdWNjZXNzLCAvLyBUT0RPOiBOb3Qgc3VyZSBvZiB0aGlzIGB0cnVlYCB2YWx1ZVxuICAgICAgICBsYWJlbDogdW5jYXBpdGFsaXplRmlyc3RMZXR0ZXIobGliZWxsZSksXG4gICAgICB9XG4gICAgY2FzZSBcIkRlY2lzaW9uUmVjZXZhYmlsaXRlQnVyZWF1X1R5cGVcIjpcbiAgICAgIGxpYmVsbGUgPSBsZWFmQWN0ZS5kZWNpc2lvbiEubGliZWxsZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudFN0YXR1czogc3RhdHVzRnJvbUNvZGllckxpYmVsbGUobGliZWxsZSksXG4gICAgICAgIGxhYmVsOiB1bmNhcGl0YWxpemVGaXJzdExldHRlcihsaWJlbGxlKSxcbiAgICAgIH1cbiAgICBjYXNlIFwiRGVjbGFyYXRpb25Hb3V2ZXJuZW1lbnRfVHlwZVwiOlxuICAgICAgbGliZWxsZSA9IGxlYWZBY3RlLnR5cGVEZWNsYXJhdGlvbiEubGliZWxsZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudFN0YXR1czogc3RhdHVzRnJvbUNvZGllckxpYmVsbGUobGliZWxsZSksXG4gICAgICAgIGxhYmVsOiB1bmNhcGl0YWxpemVGaXJzdExldHRlcihsaWJlbGxlKSxcbiAgICAgIH1cbiAgICBjYXNlIFwiRGVwb3RNb3Rpb25DZW5zdXJlX1R5cGVcIjpcbiAgICAgIGxpYmVsbGUgPSBsZWFmQWN0ZS50eXBlTW90aW9uQ2Vuc3VyZSEubGliZWxsZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3VycmVudFN0YXR1czogc3RhdHVzRnJvbUNvZGllckxpYmVsbGUobGliZWxsZSksXG4gICAgICAgIGxhYmVsOiB1bmNhcGl0YWxpemVGaXJzdExldHRlcihsaWJlbGxlKSxcbiAgICAgIH1cbiAgICBjYXNlIFwiRGVwb3RSYXBwb3J0X1R5cGVcIjpcbiAgICAgIGlmIChcbiAgICAgICAgW1xuICAgICAgICAgIFwiRG9zc2llckNvbW1pc3Npb25FbnF1ZXRlX1R5cGVcIixcbiAgICAgICAgICBcIkRvc3NpZXJNaXNzaW9uQ29udHJvbGVfVHlwZVwiLFxuICAgICAgICAgIFwiRG9zc2llck1pc3Npb25JbmZvcm1hdGlvbl9UeXBlXCIsXG4gICAgICAgIF0uaW5jbHVkZXMoZG9zc2llci54c2lUeXBlISlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGN1cnJlbnRTdGF0dXM6IGFjdGVQYXRoWzBdLm9yZ2FuZSEuY29kZVR5cGUsXG4gICAgICAgICAgZmluYWxTdGF0dXM6IEZpbmFsU3RhdHVzLlN1Y2Nlc3MsXG4gICAgICAgICAgbGFiZWw6IFwicmFwcG9ydCBkw6lwb3PDqVwiLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIGNhc2UgXCJNb3Rpb25Qcm9jZWR1cmVfVHlwZVwiOlxuICAgICAgbGliZWxsZSA9IGxlYWZBY3RlLnR5cGVNb3Rpb24hLmxpYmVsbGVcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnRTdGF0dXM6IHN0YXR1c0Zyb21Db2RpZXJMaWJlbGxlKGxpYmVsbGUpLFxuICAgICAgICBsYWJlbDogdW5jYXBpdGFsaXplRmlyc3RMZXR0ZXIobGliZWxsZSksXG4gICAgICB9XG4gICAgY2FzZSBcIlByb211bGdhdGlvbl9UeXBlXCI6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjdXJyZW50U3RhdHVzOiBTdGF0dXNPbmx5LlN1Y2Nlc3MsXG4gICAgICAgIGZpbmFsU3RhdHVzOiBGaW5hbFN0YXR1cy5TdWNjZXNzLFxuICAgICAgICBsYWJlbDogXCJwcm9tdWxndcOpXCIsXG4gICAgICB9XG4gICAgY2FzZSBcIlJldHJhaXRJbml0aWF0aXZlX1R5cGVcIjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGN1cnJlbnRTdGF0dXM6IFN0YXR1c09ubHkuRmFpbHVyZSxcbiAgICAgICAgZmluYWxTdGF0dXM6IEZpbmFsU3RhdHVzLkZhaWx1cmUsXG4gICAgICAgIGxhYmVsOiBcInJldGlyw6lcIixcbiAgICAgIH1cbiAgICBjYXNlIFwiU2Fpc2luZUNvbnNlaWxDb25zdGl0X1R5cGVcIjpcbiAgICAgIGxpYmVsbGUgPSBsZWFmQWN0ZS5jYXNTYWlzaW5lIS5saWJlbGxlXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjdXJyZW50U3RhdHVzOiBzdGF0dXNGcm9tQ29kaWVyTGliZWxsZShsaWJlbGxlKSxcbiAgICAgICAgbGFiZWw6IHVuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGxpYmVsbGUpLFxuICAgICAgfVxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBUaGlzIGFjdGUgZ2l2ZXMgbm8gc3RhdHVzLlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVGcm9tQWN0ZXMoXG4gIGRvc3NpZXI6IERvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBhY3RlUGF0aDogQWN0ZUxlZ2lzbGF0aWZbXSxcbiAgYWN0ZXM/OiBBY3RlTGVnaXNsYXRpZltdLFxuKTogU3RhdGUgfCBudWxsIHtcbiAgaWYgKGFjdGVzICE9PSB1bmRlZmluZWQpIHtcbiAgICBmb3IgKGNvbnN0IGFjdGUgb2YgWy4uLmFjdGVzXS5yZXZlcnNlKCkpIHtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IGFjdGUuYWN0ZXNMZWdpc2xhdGlmc1xuICAgICAgICA/IHN0YXRlRnJvbUFjdGVzKGRvc3NpZXIsIFsuLi5hY3RlUGF0aCwgYWN0ZV0sIGFjdGUuYWN0ZXNMZWdpc2xhdGlmcylcbiAgICAgICAgOiBzdGF0ZUZyb21BY3RlUGF0aChkb3NzaWVyLCBbLi4uYWN0ZVBhdGgsIGFjdGVdKVxuICAgICAgaWYgKHN0YXR1cyAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gc3RhdHVzXG4gICAgICB9XG4gICAgICAvLyBObyBzdGF0dXMgZm91bmQsIGNvbnRpbnVlIHdpdGggcHJldmlvdXMgYWN0ZS5cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlRnJvbURvc3NpZXIoZG9zc2llcjogRG9zc2llclBhcmxlbWVudGFpcmUpOiBTdGF0ZSB7XG4gIGNvbnN0IHN0YXR1cyA9IHN0YXRlRnJvbUFjdGVzKGRvc3NpZXIsIFtdLCBkb3NzaWVyLmFjdGVzTGVnaXNsYXRpZnMpXG4gIGlmIChzdGF0dXMgIT09IG51bGwpIHtcbiAgICByZXR1cm4gc3RhdHVzXG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjdXJyZW50U3RhdHVzOiBTdGF0dXNPbmx5LkluUHJvZ3Jlc3MsXG4gICAgbGFiZWw6IFwiZW4gY291cnNcIixcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIHdhbGtBY3RlcyhcbiAgYWN0ZXM6IEFjdGVMZWdpc2xhdGlmW10sXG4pOiBHZW5lcmF0b3I8QWN0ZUxlZ2lzbGF0aWYsIHZvaWQsIHVua25vd24+IHtcbiAgZm9yIChjb25zdCBhY3RlIG9mIGFjdGVzKSB7XG4gICAgeWllbGQgYWN0ZVxuICAgIGlmIChhY3RlLmFjdGVzTGVnaXNsYXRpZnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgeWllbGQqIHdhbGtBY3RlcyhhY3RlLmFjdGVzTGVnaXNsYXRpZnMpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogd2Fsa0RvY3VtZW50QW5kRGl2aXNpb25zKFxuICBkb2N1bWVudE9yRGl2aXNpb246IERvY3VtZW50IHwgRGl2aXNpb24sXG4pOiBHZW5lcmF0b3I8RG9jdW1lbnQgfCBEaXZpc2lvbiwgdm9pZCwgdW5rbm93bj4ge1xuICB5aWVsZCBkb2N1bWVudE9yRGl2aXNpb25cbiAgZm9yIChjb25zdCBkaXZpc2lvbiBvZiBkb2N1bWVudE9yRGl2aXNpb24uZGl2aXNpb25zID8/IFtdKSB7XG4gICAgeWllbGQqIHdhbGtEb2N1bWVudEFuZERpdmlzaW9ucyhkaXZpc2lvbilcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiU0FBU0EsdUJBQXVCO0FBQUEsU0FDdkJDLGNBQWM7QUFxQnZCLFdBQVlDLFdBQVcsMEJBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFYQSxXQUFXO0VBQUEsT0FBWEEsV0FBVztBQUFBO0FBYXZCLFdBQVlDLFVBQVUsMEJBQVZBLFVBQVU7RUFBVkEsVUFBVTtFQUFWQSxVQUFVO0VBQVZBLFVBQVU7RUFBQSxPQUFWQSxVQUFVO0FBQUE7QUFNdEIsT0FBTyxTQUFTQyw0QkFBNEJBLENBQzFDQyxPQUE2QixFQUNUO0VBQ3BCLElBQUlBLE9BQU8sQ0FBQ0MsZ0JBQWdCLEtBQUtDLFNBQVMsRUFBRTtJQUMxQyxLQUFLLE1BQU1DLElBQUksSUFBSUMsU0FBUyxDQUFDSixPQUFPLENBQUNDLGdCQUFnQixDQUFDLEVBQUU7TUFDdEQsSUFDR0UsSUFBSSxDQUFDRSxRQUFRLENBQXVCQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsS0FDbEUsSUFBSSxJQUNOSCxJQUFJLENBQUNJLFNBQVMsS0FBS0wsU0FBUyxJQUM1QkMsSUFBSSxDQUFDSSxTQUFTLEtBQUssVUFBVSxDQUFDO01BQUEsRUFDOUI7UUFDQSxPQUFPSixJQUFJLENBQUNJLFNBQVM7TUFDdkI7SUFDRjtFQUNGO0VBQ0EsT0FBT0wsU0FBUztBQUNsQjtBQUVBLE9BQU8sU0FBU00sdUJBQXVCQSxDQUFDQyxPQUFlLEVBQVU7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
@@ -1,162 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- require("core-js/modules/es.symbol.js");
5
- require("core-js/modules/es.symbol.description.js");
6
- require("core-js/modules/es.symbol.async-iterator.js");
7
- require("core-js/modules/es.symbol.iterator.js");
8
- require("core-js/modules/es.symbol.to-primitive.js");
9
- require("core-js/modules/es.symbol.to-string-tag.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.reverse.js");
13
- require("core-js/modules/es.array.slice.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-prototype-of.js");
23
- require("core-js/modules/es.object.set-prototype-of.js");
24
- require("core-js/modules/es.promise.js");
25
- require("core-js/modules/es.regexp.exec.js");
26
- require("core-js/modules/es.regexp.to-string.js");
27
- Object.defineProperty(exports, "__esModule", {
28
- value: true
29
- });
30
- exports.GetFileNotFoundError = void 0;
31
- exports.getFiles = getFiles;
32
- exports.load = load;
33
- exports.walkDir = walkDir;
34
- exports.write = write;
35
- require("core-js/modules/es.array.concat.js");
36
- require("core-js/modules/es.array.for-each.js");
37
- require("core-js/modules/es.array.iterator.js");
38
- require("core-js/modules/es.array.join.js");
39
- require("core-js/modules/es.date.to-json.js");
40
- require("core-js/modules/es.object.keys.js");
41
- require("core-js/modules/es.object.to-string.js");
42
- require("core-js/modules/es.string.iterator.js");
43
- require("core-js/modules/web.dom-collections.for-each.js");
44
- require("core-js/modules/web.dom-collections.iterator.js");
45
- var _glob = require("glob");
46
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
47
- var _path = _interopRequireDefault(require("path"));
48
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
49
- 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); } }
50
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
51
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
52
- 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; }
53
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
54
- 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); }
55
- 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; }
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 _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
58
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
59
- 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; } }
60
- function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
61
- function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
62
- 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; }
63
- function walkDir(rootDir) {
64
- var relativeSplitDir = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
65
- return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
66
- var dir, _iterator, _step, filename, filePath, relativeSplitPath;
67
- return _regeneratorRuntime().wrap(function _callee$(_context) {
68
- while (1) switch (_context.prev = _context.next) {
69
- case 0:
70
- dir = _path["default"].join.apply(_path["default"], [rootDir].concat(_toConsumableArray(relativeSplitDir)));
71
- if (_fsExtra["default"].existsSync(dir)) {
72
- _context.next = 3;
73
- break;
74
- }
75
- return _context.abrupt("return");
76
- case 3:
77
- _iterator = _createForOfIteratorHelper(_fsExtra["default"].readdirSync(dir));
78
- _context.prev = 4;
79
- _iterator.s();
80
- case 6:
81
- if ((_step = _iterator.n()).done) {
82
- _context.next = 20;
83
- break;
84
- }
85
- filename = _step.value;
86
- if (!(filename[0] === ".")) {
87
- _context.next = 10;
88
- break;
89
- }
90
- return _context.abrupt("continue", 18);
91
- case 10:
92
- filePath = _path["default"].join(dir, filename);
93
- relativeSplitPath = [].concat(_toConsumableArray(relativeSplitDir), [filename]);
94
- if (!_fsExtra["default"].statSync(filePath).isDirectory()) {
95
- _context.next = 16;
96
- break;
97
- }
98
- return _context.delegateYield(walkDir(rootDir, relativeSplitPath), "t0", 14);
99
- case 14:
100
- _context.next = 18;
101
- break;
102
- case 16:
103
- _context.next = 18;
104
- return relativeSplitPath;
105
- case 18:
106
- _context.next = 6;
107
- break;
108
- case 20:
109
- _context.next = 25;
110
- break;
111
- case 22:
112
- _context.prev = 22;
113
- _context.t1 = _context["catch"](4);
114
- _iterator.e(_context.t1);
115
- case 25:
116
- _context.prev = 25;
117
- _iterator.f();
118
- return _context.finish(25);
119
- case 28:
120
- case "end":
121
- return _context.stop();
122
- }
123
- }, _callee, null, [[4, 22, 25, 28]]);
124
- })();
125
- }
126
- function load(path) {
127
- var rawjson = _fsExtra["default"].readFileSync(path, {
128
- encoding: "utf8"
129
- });
130
- return JSON.parse(rawjson);
131
- }
132
- function write(something, filename) {
133
- var content = JSON.stringify(something, null, 2);
134
- _fsExtra["default"].ensureDirSync(_path["default"].dirname(filename));
135
- _fsExtra["default"].writeFileSync(filename, content, {
136
- encoding: "utf8"
137
- });
138
- }
139
- var GetFileNotFoundError = exports.GetFileNotFoundError = /*#__PURE__*/_createClass(function GetFileNotFoundError(message) {
140
- _classCallCheck(this, GetFileNotFoundError);
141
- _defineProperty(this, "message", void 0);
142
- this.message = message;
143
- });
144
- function getFiles(args) {
145
- var files = [];
146
- function _getFiles(fileOrPattern) {
147
- if (_glob.glob.hasMagic(fileOrPattern)) {
148
- var dataFiles = _glob.glob.globSync(fileOrPattern, {
149
- cwd: process.cwd()
150
- });
151
- // Note: When a legislature ends, the subdirectory of "acteurs" in AMO10 or AMO40
152
- // may be empty (no more député).
153
- if (dataFiles.length > 0) files = files.concat(dataFiles);
154
- } else {
155
- files.push(fileOrPattern);
156
- if (!_fsExtra["default"].existsSync(fileOrPattern)) throw new GetFileNotFoundError("".concat(fileOrPattern, " file does not exist"));
157
- }
158
- }
159
- args.forEach(_getFiles);
160
- return files;
161
- }
162
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2xvYiIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcGF0aCIsImUiLCJfX2VzTW9kdWxlIiwiX2RlZmluZVByb3BlcnRpZXMiLCJyIiwidCIsImxlbmd0aCIsIm8iLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG90eXBlIiwiX2NsYXNzQ2FsbENoZWNrIiwiYSIsIm4iLCJUeXBlRXJyb3IiLCJfZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJfdG9QcmltaXRpdmUiLCJfdHlwZW9mIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImhhc093blByb3BlcnR5IiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbiIsIkYiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0Iiwid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX2NhbGxlZSIsImRpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZmlsZW5hbWUiLCJmaWxlUGF0aCIsInJlbGF0aXZlU3BsaXRQYXRoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInBhdGgiLCJqb2luIiwiYXBwbHkiLCJjb25jYXQiLCJmcyIsImV4aXN0c1N5bmMiLCJyZWFkZGlyU3luYyIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJ0MSIsImxvYWQiLCJyYXdqc29uIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJKU09OIiwicGFyc2UiLCJ3cml0ZSIsInNvbWV0aGluZyIsImNvbnRlbnQiLCJzdHJpbmdpZnkiLCJlbnN1cmVEaXJTeW5jIiwiZGlybmFtZSIsIndyaXRlRmlsZVN5bmMiLCJHZXRGaWxlTm90Rm91bmRFcnJvciIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZ2V0RmlsZXMiLCJhcmdzIiwiZmlsZXMiLCJfZ2V0RmlsZXMiLCJmaWxlT3JQYXR0ZXJuIiwiZ2xvYiIsImhhc01hZ2ljIiwiZGF0YUZpbGVzIiwiZ2xvYlN5bmMiLCJjd2QiLCJwcm9jZXNzIl0sInNvdXJjZXMiOlsiLi4vc3JjL2ZpbGVfc3lzdGVtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnbG9iIH0gZnJvbSBcImdsb2JcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBmdW5jdGlvbiogd2Fsa0RpcihcbiAgcm9vdERpcjogc3RyaW5nLFxuICByZWxhdGl2ZVNwbGl0RGlyOiBzdHJpbmdbXSA9IFtdLFxuKTogSXRlcmFibGU8c3RyaW5nW10+IHtcbiAgY29uc3QgZGlyID0gcGF0aC5qb2luKHJvb3REaXIsIC4uLnJlbGF0aXZlU3BsaXREaXIpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmMoZGlyKSkge1xuICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRpciwgZmlsZW5hbWUpXG4gICAgY29uc3QgcmVsYXRpdmVTcGxpdFBhdGggPSBbLi4ucmVsYXRpdmVTcGxpdERpciwgZmlsZW5hbWVdXG4gICAgaWYgKGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB5aWVsZCogd2Fsa0Rpcihyb290RGlyLCByZWxhdGl2ZVNwbGl0UGF0aClcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgcmVsYXRpdmVTcGxpdFBhdGhcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcmF3anNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKHJhd2pzb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZShzb21ldGhpbmc6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb21ldGhpbmcsIG51bGwsIDIpXG4gIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgY29udGVudCwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbn1cblxuZXhwb3J0IGNsYXNzIEdldEZpbGVOb3RGb3VuZEVycm9yIHtcbiAgbWVzc2FnZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlcyhhcmdzOiBhbnkpOiBhbnkge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW11cbiAgZnVuY3Rpb24gX2dldEZpbGVzKGZpbGVPclBhdHRlcm46IGFueSkge1xuICAgIGlmIChnbG9iLmhhc01hZ2ljKGZpbGVPclBhdHRlcm4pKSB7XG4gICAgICBjb25zdCBkYXRhRmlsZXMgPSBnbG9iLmdsb2JTeW5jKGZpbGVPclBhdHRlcm4sIHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pXG4gICAgICAvLyBOb3RlOiBXaGVuIGEgbGVnaXNsYXR1cmUgZW5kcywgdGhlIHN1YmRpcmVjdG9yeSBvZiBcImFjdGV1cnNcIiBpbiBBTU8xMCBvciBBTU80MFxuICAgICAgLy8gbWF5IGJlIGVtcHR5IChubyBtb3JlIGTDqXB1dMOpKS5cbiAgICAgIGlmIChkYXRhRmlsZXMubGVuZ3RoID4gMCkgZmlsZXMgPSBmaWxlcy5jb25jYXQoZGF0YUZpbGVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlcy5wdXNoKGZpbGVPclBhdHRlcm4pXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZU9yUGF0dGVybikpXG4gICAgICAgIHRocm93IG5ldyBHZXRGaWxlTm90Rm91bmRFcnJvcihgJHtmaWxlT3JQYXR0ZXJufSBmaWxlIGRvZXMgbm90IGV4aXN0YClcbiAgICB9XG4gIH1cbiAgYXJncy5mb3JFYWNoKF9nZXRGaWxlcylcbiAgcmV0dXJuIGZpbGVzXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQXVCLFNBQUFFLHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSxrQkFBQUYsQ0FBQSxFQUFBRyxDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBRCxDQUFBLENBQUFFLE1BQUEsRUFBQUQsQ0FBQSxVQUFBRSxDQUFBLEdBQUFILENBQUEsQ0FBQUMsQ0FBQSxHQUFBRSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxDQUFBQyxVQUFBLFFBQUFELENBQUEsQ0FBQUUsWUFBQSxrQkFBQUYsQ0FBQSxLQUFBQSxDQUFBLENBQUFHLFFBQUEsUUFBQUMsTUFBQSxDQUFBQyxjQUFBLENBQUFYLENBQUEsRUFBQVksY0FB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
@@ -1,62 +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 { glob } from "glob";
5
- import fs from "fs-extra";
6
- import path from "path";
7
- export function* walkDir(rootDir, relativeSplitDir = []) {
8
- const dir = path.join(rootDir, ...relativeSplitDir);
9
- if (!fs.existsSync(dir)) {
10
- return;
11
- }
12
- for (const filename of fs.readdirSync(dir)) {
13
- if (filename[0] === ".") {
14
- continue;
15
- }
16
- const filePath = path.join(dir, filename);
17
- const relativeSplitPath = [...relativeSplitDir, filename];
18
- if (fs.statSync(filePath).isDirectory()) {
19
- yield* walkDir(rootDir, relativeSplitPath);
20
- } else {
21
- yield relativeSplitPath;
22
- }
23
- }
24
- }
25
- export function load(path) {
26
- const rawjson = fs.readFileSync(path, {
27
- encoding: "utf8"
28
- });
29
- return JSON.parse(rawjson);
30
- }
31
- export function write(something, filename) {
32
- const content = JSON.stringify(something, null, 2);
33
- fs.ensureDirSync(path.dirname(filename));
34
- fs.writeFileSync(filename, content, {
35
- encoding: "utf8"
36
- });
37
- }
38
- export class GetFileNotFoundError {
39
- constructor(message) {
40
- _defineProperty(this, "message", void 0);
41
- this.message = message;
42
- }
43
- }
44
- export function getFiles(args) {
45
- let files = [];
46
- function _getFiles(fileOrPattern) {
47
- if (glob.hasMagic(fileOrPattern)) {
48
- const dataFiles = glob.globSync(fileOrPattern, {
49
- cwd: process.cwd()
50
- });
51
- // Note: When a legislature ends, the subdirectory of "acteurs" in AMO10 or AMO40
52
- // may be empty (no more député).
53
- if (dataFiles.length > 0) files = files.concat(dataFiles);
54
- } else {
55
- files.push(fileOrPattern);
56
- if (!fs.existsSync(fileOrPattern)) throw new GetFileNotFoundError(`${fileOrPattern} file does not exist`);
57
- }
58
- }
59
- args.forEach(_getFiles);
60
- return files;
61
- }
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iIiwiZnMiLCJwYXRoIiwid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiZGlyIiwiam9pbiIsImV4aXN0c1N5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwiZmlsZVBhdGgiLCJyZWxhdGl2ZVNwbGl0UGF0aCIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJsb2FkIiwicmF3anNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwid3JpdGUiLCJzb21ldGhpbmciLCJjb250ZW50Iiwic3RyaW5naWZ5IiwiZW5zdXJlRGlyU3luYyIsImRpcm5hbWUiLCJ3cml0ZUZpbGVTeW5jIiwiR2V0RmlsZU5vdEZvdW5kRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRGaWxlcyIsImFyZ3MiLCJmaWxlcyIsIl9nZXRGaWxlcyIsImZpbGVPclBhdHRlcm4iLCJoYXNNYWdpYyIsImRhdGFGaWxlcyIsImdsb2JTeW5jIiwiY3dkIiwicHJvY2VzcyIsImxlbmd0aCIsImNvbmNhdCIsInB1c2giLCJmb3JFYWNoIl0sInNvdXJjZXMiOlsiLi4vc3JjL2ZpbGVfc3lzdGVtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnbG9iIH0gZnJvbSBcImdsb2JcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBmdW5jdGlvbiogd2Fsa0RpcihcbiAgcm9vdERpcjogc3RyaW5nLFxuICByZWxhdGl2ZVNwbGl0RGlyOiBzdHJpbmdbXSA9IFtdLFxuKTogSXRlcmFibGU8c3RyaW5nW10+IHtcbiAgY29uc3QgZGlyID0gcGF0aC5qb2luKHJvb3REaXIsIC4uLnJlbGF0aXZlU3BsaXREaXIpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmMoZGlyKSkge1xuICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRpciwgZmlsZW5hbWUpXG4gICAgY29uc3QgcmVsYXRpdmVTcGxpdFBhdGggPSBbLi4ucmVsYXRpdmVTcGxpdERpciwgZmlsZW5hbWVdXG4gICAgaWYgKGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB5aWVsZCogd2Fsa0Rpcihyb290RGlyLCByZWxhdGl2ZVNwbGl0UGF0aClcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgcmVsYXRpdmVTcGxpdFBhdGhcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcmF3anNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKHJhd2pzb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZShzb21ldGhpbmc6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb21ldGhpbmcsIG51bGwsIDIpXG4gIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgY29udGVudCwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbn1cblxuZXhwb3J0IGNsYXNzIEdldEZpbGVOb3RGb3VuZEVycm9yIHtcbiAgbWVzc2FnZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlcyhhcmdzOiBhbnkpOiBhbnkge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW11cbiAgZnVuY3Rpb24gX2dldEZpbGVzKGZpbGVPclBhdHRlcm46IGFueSkge1xuICAgIGlmIChnbG9iLmhhc01hZ2ljKGZpbGVPclBhdHRlcm4pKSB7XG4gICAgICBjb25zdCBkYXRhRmlsZXMgPSBnbG9iLmdsb2JTeW5jKGZpbGVPclBhdHRlcm4sIHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pXG4gICAgICAvLyBOb3RlOiBXaGVuIGEgbGVnaXNsYXR1cmUgZW5kcywgdGhlIHN1YmRpcmVjdG9yeSBvZiBcImFjdGV1cnNcIiBpbiBBTU8xMCBvciBBTU80MFxuICAgICAgLy8gbWF5IGJlIGVtcHR5IChubyBtb3JlIGTDqXB1dMOpKS5cbiAgICAgIGlmIChkYXRhRmlsZXMubGVuZ3RoID4gMCkgZmlsZXMgPSBmaWxlcy5jb25jYXQoZGF0YUZpbGVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlcy5wdXNoKGZpbGVPclBhdHRlcm4pXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZU9yUGF0dGVybikpXG4gICAgICAgIHRocm93IG5ldyBHZXRGaWxlTm90Rm91bmRFcnJvcihgJHtmaWxlT3JQYXR0ZXJufSBmaWxlIGRvZXMgbm90IGV4aXN0YClcbiAgICB9XG4gIH1cbiAgYXJncy5mb3JFYWNoKF9nZXRGaWxlcylcbiAgcmV0dXJuIGZpbGVzXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLElBQUksUUFBUSxNQUFNO0FBQzNCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBRXZCLE9BQU8sVUFBVUMsT0FBT0EsQ0FDdEJDLE9BQWUsRUFDZkMsZ0JBQTBCLEdBQUcsRUFBRSxFQUNYO0VBQ3BCLE1BQU1DLEdBQUcsR0FBR0osSUFBSSxDQUFDSyxJQUFJLENBQUNILE9BQU8sRUFBRSxHQUFHQyxnQkFBZ0IsQ0FBQztFQUVuRCxJQUFJLENBQUNKLEVBQUUsQ0FBQ08sVUFBVSxDQUFDRixHQUFHLENBQUMsRUFBRTtJQUN2QjtFQUNGO0VBRUEsS0FBSyxNQUFNRyxRQUFRLElBQUlSLEVBQUUsQ0FBQ1MsV0FBVyxDQUFDSixHQUFHLENBQUMsRUFBRTtJQUMxQyxJQUFJRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO01BQ3ZCO0lBQ0Y7SUFDQSxNQUFNRSxRQUFRLEdBQUdULElBQUksQ0FBQ0ssSUFBSSxDQUFDRCxHQUFHLEVBQUVHLFFBQVEsQ0FBQztJQUN6QyxNQUFNRyxpQkFBaUIsR0FBRyxDQUFDLEdBQUdQLGdCQUFnQixFQUFFSSxRQUFRLENBQUM7SUFDekQsSUFBSVIsRUFBRSxDQUFDWSxRQUFRLENBQUNGLFFBQVEsQ0FBQyxDQUFDRyxXQUFXLENBQUMsQ0FBQyxFQUFFO01BQ3ZDLE9BQU9YLE9BQU8sQ0FBQ0MsT0FBTyxFQUFFUSxpQkFBaUIsQ0FBQztJQUM1QyxDQUFDLE1BQU07TUFDTCxNQUFNQSxpQkFBaUI7SUFDekI7RUFDRjtBQUNGO0FBRUEsT0FBTyxTQUFTRyxJQUFJQSxDQUFDYixJQUFZLEVBQU87RUFDdEMsTUFBTWMsT0FBZSxHQUFHZixFQUFFLENBQUNnQixZQUFZLENBQUNmLElBQUksRUFBRTtJQUM1Q2dCLFFBQVEsRUFBRTtFQUNaLENBQUMsQ0FBQztFQUNGLE9BQU9DLElBQUksQ0FBQ0MsS0FBSyxDQUFDSixPQUFPLENBQUM7QUFDNUI7QUFFQSxPQUFPLFNBQVNLLEtBQUtBLENBQUNDLFNBQWMsRUFBRWIsUUFBZ0IsRUFBTztFQUMzRCxNQUFNYyxPQUFPLEdBQUdKLElBQUksQ0FBQ0ssU0FBUyxDQUFDRixTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztFQUNsRHJCLEVBQUUsQ0FBQ3dCLGFBQWEsQ0FBQ3ZCLElBQUksQ0FBQ3dCLE9BQU8sQ0FBQ2pCLFFBQVEsQ0FBQyxDQUFDO0VBQ3hDUixFQUFFLENBQUMwQixhQUFhLENBQUNsQixRQUFRLEVBQUVjLE9BQU8sRUFBRTtJQUNsQ0wsUUFBUSxFQUFFO0VBQ1osQ0FBQyxDQUFDO0FBQ0o7QUFFQSxPQUFPLE1BQU1VLG9CQUFvQixDQUFDO0VBR2hDQyxXQUFXQSxDQUFDQyxPQUFlLEVBQUU7SUFBQUMsZUFBQTtJQUMzQixJQUFJLENBQUNELE9BQU8sR0FBR0EsT0FBTztFQUN4QjtBQUNGO0FBRUEsT0FBTyxTQUFTRSxRQUFRQSxDQUFDQyxJQUFTLEVBQU87RUFDdkMsSUFBSUMsS0FBZSxHQUFHLEVBQUU7RUFDeEIsU0FBU0MsU0FBU0EsQ0FBQ0MsYUFBa0IsRUFBRTtJQUNyQyxJQUFJcEMsSUFBSSxDQUFDcUMsUUFBUSxDQUFDRCxhQUFhLENBQUMsRUFBRTtNQUNoQyxNQUFNRSxTQUFTLEdBQUd0QyxJQUFJLENBQUN1QyxRQUFRLENBQUNILGFBQWEsRUFBRTtRQUFFSSxHQUFHLEVBQUVDLE9BQU8sQ0FBQ0QsR0FBRyxDQUFDO01BQUUsQ0FBQyxDQUFDO01BQ3RFO01BQ0E7TUFDQSxJQUFJRixTQUFTLENBQUNJLE1BQU0sR0FBRyxDQUFDLEVBQUVSLEtBQUssR0FBR0EsS0FBSyxDQUFDUyxNQUFNLENBQUNMLFNBQVMsQ0FBQztJQUMzRCxDQUFDLE1BQU07TUFDTEosS0FBSyxDQUFDVSxJQUFJLENBQUNSLGFBQWEsQ0FBQztNQUN6QixJQUFJLENBQUNuQyxFQUFFLENBQUNPLFVBQVUsQ0FBQzRCLGFBQWEsQ0FBQyxFQUMvQixNQUFNLElBQUlSLG9CQUFvQixDQUFDLEdBQUdRLGFBQWEsc0JBQXNCLENBQUM7SUFDMUU7RUFDRjtFQUNBSCxJQUFJLENBQUNZLE9BQU8sQ0FBQ1YsU0FBUyxDQUFDO0VBQ3ZCLE9BQU9ELEtBQUs7QUFDZCIsImlnbm9yZUxpc3QiOltdfQ==