@tricoteuses/assemblee 1.1.12 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/lib/bugs/agenda-00011.js +4 -5
- package/lib/bugs/agenda-00011.mjs +1 -2
- package/lib/bugs.js +3 -1
- package/lib/cleaners/actes_legislatifs.js +3 -1
- package/lib/cleaners/acteurs.js +3 -1
- package/lib/cleaners/amendements.js +3 -1
- package/lib/cleaners/documents.js +3 -1
- package/lib/cleaners/dossiers_legislatifs.js +3 -1
- package/lib/cleaners/reunions.js +2 -1
- package/lib/cleaners/scrutins.js +3 -1
- package/lib/cleaners/xml.js +3 -1
- package/lib/dates.js +1 -1
- package/lib/dossiers_legislatifs.d.ts +2 -1
- package/lib/dossiers_legislatifs.js +45 -2
- package/lib/dossiers_legislatifs.mjs +7 -1
- package/lib/file_systems.js +4 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +13 -1
- package/lib/index.mjs +3 -3
- package/lib/inserters.js +3 -1
- package/lib/loaders.js +4 -1
- package/lib/parsers/documents.js +3 -1
- package/lib/parsers/recherche_amendements.js +4 -5
- package/lib/parsers/recherche_amendements.mjs +1 -2
- package/lib/raw_types/acteurs_et_organes.js +2 -1
- package/lib/raw_types/agendas.js +2 -1
- package/lib/raw_types/amendements.d.ts +1 -1
- package/lib/raw_types/amendements.js +3 -2
- package/lib/raw_types/amendements.mjs +2 -2
- package/lib/raw_types/debats.js +2 -1
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
- package/lib/raw_types/dossiers_legislatifs.js +4 -2
- package/lib/raw_types/dossiers_legislatifs.mjs +3 -2
- package/lib/raw_types/questions.d.ts +2 -0
- package/lib/raw_types/questions.js +6 -3
- package/lib/raw_types/questions.mjs +5 -3
- package/lib/raw_types/scrutins.js +2 -1
- package/lib/scripts/bugs_helper.js +3 -1
- package/lib/scripts/clean_reorganized_data.js +4 -2
- package/lib/scripts/clean_reorganized_data.mjs +2 -2
- package/lib/scripts/diff_amendements.js +3 -1
- package/lib/scripts/document_dossiers_legislatifs.js +2 -1
- package/lib/scripts/merge_scrutins.js +4 -1
- package/lib/scripts/parse_textes_lois.js +3 -1
- package/lib/scripts/raw_types_from_amendements.js +3 -1
- package/lib/scripts/reorganize_data.js +4 -2
- package/lib/scripts/reorganize_data.mjs +2 -2
- package/lib/scripts/retrieve_deputes_photos.js +4 -3
- package/lib/scripts/retrieve_deputes_photos.mjs +1 -2
- package/lib/scripts/retrieve_documents.js +342 -521
- package/lib/scripts/retrieve_documents.mjs +180 -229
- package/lib/scripts/retrieve_open_data.js +4 -4
- package/lib/scripts/retrieve_open_data.mjs +2 -3
- package/lib/scripts/retrieve_pending_amendments.js +3 -1
- package/lib/scripts/retrieve_senateurs_photos.js +5 -4
- package/lib/scripts/retrieve_senateurs_photos.mjs +2 -3
- package/lib/scripts/retrieve_textes_lois.js +7 -4
- package/lib/scripts/retrieve_textes_lois.mjs +5 -2
- package/lib/scripts/validate_json.js +3 -1
- package/lib/types/acteurs_et_organes.js +2 -1
- package/lib/types/agendas.js +2 -1
- package/lib/types/amendements.d.ts +1 -1
- package/lib/types/amendements.js +3 -2
- package/lib/types/amendements.mjs +2 -2
- package/lib/types/debats.js +2 -1
- package/lib/types/dossiers_legislatifs.js +2 -1
- package/lib/types/questions.d.ts +2 -0
- package/lib/types/questions.js +6 -3
- package/lib/types/questions.mjs +5 -3
- package/lib/types/scrutins.js +2 -1
- package/lib/urls.d.ts +8 -2
- package/lib/urls.js +153 -23
- package/lib/urls.mjs +97 -22
- package/package.json +4 -6
package/lib/urls.mjs
CHANGED
|
@@ -126,58 +126,133 @@ function extensionFromDocumentUrlFormat(format) {
|
|
|
126
126
|
return ".asp";
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
-
export function
|
|
129
|
+
export function* iterDocumentOrDivisionUrls(documentOrDivision, format = undefined) {
|
|
130
|
+
// Raw HTML
|
|
131
|
+
if (format === undefined || format === DocumentUrlFormat.RawHtml) {
|
|
132
|
+
// Note: Both URLs should work and return the same result.
|
|
133
|
+
yield {
|
|
134
|
+
format: DocumentUrlFormat.RawHtml,
|
|
135
|
+
type: "dyn-opendata",
|
|
136
|
+
url: `https://www.assemblee-nationale.fr/dyn/opendata/${documentOrDivision.uid}.html`
|
|
137
|
+
};
|
|
138
|
+
yield {
|
|
139
|
+
format: DocumentUrlFormat.RawHtml,
|
|
140
|
+
type: "dyn-docs",
|
|
141
|
+
url: `https://www.assemblee-nationale.fr/dyn/docs/${documentOrDivision.uid}.raw`
|
|
142
|
+
};
|
|
143
|
+
const urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, DocumentUrlFormat.RawHtml);
|
|
144
|
+
if (urlInfos !== null) {
|
|
145
|
+
yield {
|
|
146
|
+
format: DocumentUrlFormat.RawHtml,
|
|
147
|
+
type: urlInfos.directory.replaceAll("/", "-"),
|
|
148
|
+
url: urlInfos.url
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// HTML
|
|
154
|
+
if (format === undefined || format === DocumentUrlFormat.Html) {
|
|
155
|
+
const urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, DocumentUrlFormat.Html);
|
|
156
|
+
if (urlInfos !== null) {
|
|
157
|
+
yield {
|
|
158
|
+
format: DocumentUrlFormat.Html,
|
|
159
|
+
type: urlInfos.directory.replaceAll("/", "-"),
|
|
160
|
+
url: urlInfos.url
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// PDF
|
|
166
|
+
if (format === undefined || format === DocumentUrlFormat.Pdf) {
|
|
167
|
+
// Note: Both URLs should work and return the same result.
|
|
168
|
+
yield {
|
|
169
|
+
format: DocumentUrlFormat.RawHtml,
|
|
170
|
+
type: "dyn-opendata",
|
|
171
|
+
url: `https://www.assemblee-nationale.fr/dyn/opendata/${documentOrDivision.uid}.html`
|
|
172
|
+
};
|
|
173
|
+
yield {
|
|
174
|
+
format: DocumentUrlFormat.Pdf,
|
|
175
|
+
type: "dyn-docs",
|
|
176
|
+
url: `https://www.assemblee-nationale.fr/dyn/docs/${documentOrDivision.uid}.pdf`
|
|
177
|
+
};
|
|
178
|
+
const urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, DocumentUrlFormat.Pdf);
|
|
179
|
+
if (urlInfos !== null) {
|
|
180
|
+
yield {
|
|
181
|
+
format: DocumentUrlFormat.Pdf,
|
|
182
|
+
type: urlInfos.directory.replaceAll("/", "-"),
|
|
183
|
+
url: urlInfos.url
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/// Note: This function doesn't use the "modern" Assemblée URLs for documents.
|
|
190
|
+
/// Use generator `iterDocumentOrDivisionUrls` instead.
|
|
191
|
+
export function urlFromDocument(documentOrDivision, format) {
|
|
192
|
+
const urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, format);
|
|
193
|
+
return urlInfos === null ? null : urlInfos.url;
|
|
194
|
+
}
|
|
195
|
+
export function urlFromScrutin(scrutin) {
|
|
196
|
+
// Sample UIDs: VTANR5L15V389
|
|
197
|
+
const match = /^VTANR([0-9]+)L([0-9]+)V([0-9]+)$/.exec(scrutin.uid);
|
|
198
|
+
if (match === null) {
|
|
199
|
+
console.log(`Unable to generate URL from scrutin with unexpected UID: "${scrutin.uid}"`);
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
const legislature = match[2];
|
|
203
|
+
const numero = match[3];
|
|
204
|
+
return `http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/${legislature}/(num)/${numero}`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/// Note: This function doesn't use the modern Assemblée URLs for documents.
|
|
208
|
+
/// Use generator `iterDocumentOrDivisionUrls` instead.
|
|
209
|
+
function urlInfosFromDocumentOrDivision(documentOrDivision, format) {
|
|
130
210
|
// Code taken from function `an_text_url` in project anpy:
|
|
131
211
|
// https://github.com/regardscitoyens/anpy/blob/master/anpy/dossier_from_opendata.py
|
|
132
|
-
// See
|
|
212
|
+
// See https://www.assemblee-nationale.fr/opendata/Implementation_Referentiel/Identifiants_Referentiels.html
|
|
133
213
|
// for a description of the format of an UID.
|
|
134
214
|
|
|
135
215
|
const extension = extensionFromDocumentUrlFormat(format);
|
|
136
|
-
const match = /^(.{4})([ANS]*)(R[0-9])([LS]*)([0-9]*)([BTACP]*)(.*)$/.exec(
|
|
216
|
+
const match = /^(.{4})([ANS]*)(R[0-9])([LS]*)([0-9]*)([BTACP]*)(.*)$/.exec(documentOrDivision.uid);
|
|
137
217
|
if (match === null) {
|
|
138
|
-
console.log(`Unable to generate URL from document with unexpected UID: "${
|
|
218
|
+
console.log(`Unable to generate URL from document or division with unexpected UID: "${documentOrDivision.uid}"`);
|
|
139
219
|
return null;
|
|
140
220
|
}
|
|
141
221
|
const chambre = match[2];
|
|
142
222
|
if (chambre === "SN") {
|
|
143
|
-
console.log(`Unable to generate URL for document in Sénat. UID: "${
|
|
223
|
+
console.log(`Unable to generate URL for document or division in Sénat. UID: "${documentOrDivision.uid}"`);
|
|
144
224
|
return null;
|
|
145
225
|
}
|
|
146
226
|
const legislature = match[5];
|
|
147
227
|
let number = match[7];
|
|
148
228
|
if (format === DocumentUrlFormat.RawHtml) {
|
|
149
|
-
return
|
|
229
|
+
return {
|
|
230
|
+
directory: "textes",
|
|
231
|
+
url: `https://www.assemblee-nationale.fr/${legislature}/textes/${number}${extension}`
|
|
232
|
+
};
|
|
150
233
|
}
|
|
151
234
|
let documentType = {
|
|
152
235
|
BTC: "TCOM",
|
|
153
236
|
BTA: "TADO",
|
|
154
237
|
TAP: "TADO"
|
|
155
238
|
}[match[6]] || match[1];
|
|
156
|
-
if (
|
|
239
|
+
if (documentOrDivision.classification !== undefined && documentOrDivision.classification.sousType !== undefined && documentOrDivision.classification.sousType.code === "COMPA") {
|
|
157
240
|
// Annexe au rapport : Texte comparatif COMPA
|
|
158
241
|
number = number.replace(/-COMPA/, "-aCOMPA");
|
|
159
242
|
}
|
|
160
243
|
if (documentType == "AVCE") {
|
|
161
|
-
documentType = `AVCE${
|
|
244
|
+
documentType = `AVCE${documentOrDivision.classification.famille?.classe.code}`;
|
|
162
245
|
}
|
|
163
246
|
const fragments = documentUrlFragmentsByType[documentType];
|
|
164
247
|
if (fragments === undefined) {
|
|
165
248
|
// For example: ALCNANR5L15B0002 (allocution du président)
|
|
166
|
-
console.log(`Unable to generate URL from document of UID "${
|
|
249
|
+
console.log(`Unable to generate URL from document or division of UID "${documentOrDivision.uid}" and type "${documentType}"`);
|
|
167
250
|
return null;
|
|
168
251
|
}
|
|
169
252
|
const directory = format === DocumentUrlFormat.Pdf ? `pdf/${fragments.directory}` : fragments.directory;
|
|
170
|
-
return
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const match = /^VTANR([0-9]+)L([0-9]+)V([0-9]+)$/.exec(scrutin.uid);
|
|
175
|
-
if (match === null) {
|
|
176
|
-
console.log(`Unable to generate URL from scrutin with unexpected UID: "${scrutin.uid}"`);
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
const legislature = match[2];
|
|
180
|
-
const numero = match[3];
|
|
181
|
-
return `http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/${legislature}/(num)/${numero}`;
|
|
253
|
+
return {
|
|
254
|
+
directory,
|
|
255
|
+
url: `https://www.assemblee-nationale.fr/${legislature}/${directory}/${fragments.prefix}${number}${fragments.suffix}${extension}`
|
|
256
|
+
};
|
|
182
257
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlIiwiQUNJTiIsImRpcmVjdG9yeSIsInByZWZpeCIsInN1ZmZpeCIsIkFWQ0VQUkpMT0kiLCJBVkNFTEVUVFJFIiwiQVZDRVBJT05MT0kiLCJBVklTIiwiRVRESSIsIkxFVFQiLCJQSU9OIiwiUE5SRSIsIlBOUkVBUFBBUlQzNDEiLCJQTlJFQ09NRU5RIiwiUE5SRU1PRFJFR0xUQU4iLCJQTlJFVFZYSU5TVElURVVST1AiLCJQUkpMIiwiUkFQUCIsIlJJTkYiLCJSSU9OIiwiVEFETyIsIlRDT00iLCJUQ09NQ09NRU5RIiwiVENPTU1PRFJFR0xUQU4iLCJUQ09NVFZYSU5TVElURVVST1AiLCJleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQiLCJmb3JtYXQiLCJIdG1sIiwiUGRmIiwiUmF3SHRtbCIsInVybEZyb21Eb2N1bWVudCIsImRvY3VtZW50IiwiZXh0ZW5zaW9uIiwibWF0Y2giLCJleGVjIiwidWlkIiwiY29uc29sZSIsImxvZyIsImNoYW1icmUiLCJsZWdpc2xhdHVyZSIsIm51bWJlciIsImRvY3VtZW50VHlwZSIsIkJUQyIsIkJUQSIsIlRBUCIsImNsYXNzaWZpY2F0aW9uIiwidW5kZWZpbmVkIiwic291c1R5cGUiLCJjb2RlIiwicmVwbGFjZSIsImZhbWlsbGUiLCJjbGFzc2UiLCJmcmFnbWVudHMiLCJ1cmxGcm9tU2NydXRpbiIsInNjcnV0aW4iLCJudW1lcm8iXSwic291cmNlcyI6WyIuLi9zcmMvdXJscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuXG5leHBvcnQgZW51bSBEb2N1bWVudFVybEZvcm1hdCB7XG4gIEh0bWwgPSBcImh0bWxcIixcbiAgUGRmID0gXCJwZGZcIixcbiAgUmF3SHRtbCA9IFwicmF3LWh0bWxcIiwgLy8gVGhlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IHRoYXQgY2FuIGJlIHBhcnNlZCB0byBleHRyYWN0IGRpdmlzaW9ucyAmIGFydGljbGVzXG59XG5cbmNvbnN0IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlOiB7XG4gIFt0eXBlOiBzdHJpbmddOiB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgICBwcmVmaXg6IHN0cmluZ1xuICAgIHN1ZmZpeDogc3RyaW5nXG4gIH1cbn0gPSB7XG4gIEFDSU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWlcIixcbiAgfSxcbiAgQVZDRVBSSkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRUxFVFRSRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRVBJT05MT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVklTOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIEVUREk6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItZWlcIixcbiAgfSxcbiAgTEVUVDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1sXCIsXG4gIH0sXG4gIFBJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVBUFBBUlQzNDE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVDT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVNT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwiZXVyb3BlL3Jlc29sdXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBwZVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUFJKTDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSQVBQOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJTkY6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwLWluZm9cIixcbiAgICBwcmVmaXg6IFwiaVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklPTjoge1xuICAgIGRpcmVjdG9yeTogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQURPOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhXCIsXG4gICAgcHJlZml4OiBcInRhXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQ09NOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01NT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbn1cblxuZnVuY3Rpb24gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUGRmOlxuICAgICAgcmV0dXJuIFwiLnBkZlwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Eb2N1bWVudChcbiAgZG9jdW1lbnQ6IGFueSxcbiAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCxcbik6IHN0cmluZyB8IG51bGwge1xuICAvLyBDb2RlIHRha2VuIGZyb20gZnVuY3Rpb24gYGFuX3RleHRfdXJsYCBpbiBwcm9qZWN0IGFucHk6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdhcmRzY2l0b3llbnMvYW5weS9ibG9iL21hc3Rlci9hbnB5L2Rvc3NpZXJfZnJvbV9vcGVuZGF0YS5weVxuICAvLyBTZWUgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL29wZW5kYXRhL0ltcGxlbWVudGF0aW9uX1JlZmVyZW50aWVsL0lkZW50aWZpYW50c19SZWZlcmVudGllbHMuaHRtbFxuICAvLyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0IG9mIGFuIFVJRC5cblxuICBjb25zdCBleHRlbnNpb24gPSBleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQoZm9ybWF0KVxuICBjb25zdCBtYXRjaCA9IC9eKC57NH0pKFtBTlNdKikoUlswLTldKShbTFNdKikoWzAtOV0qKShbQlRBQ1BdKikoLiopJC8uZXhlYyhcbiAgICBkb2N1bWVudC51aWQsXG4gIClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IHdpdGggdW5leHBlY3RlZCBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNoYW1icmUgPSBtYXRjaFsyXVxuICBpZiAoY2hhbWJyZSA9PT0gXCJTTlwiKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmb3IgZG9jdW1lbnQgaW4gU8OpbmF0LiBVSUQ6IFwiJHtkb2N1bWVudC51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbNV1cbiAgbGV0IG51bWJlciA9IG1hdGNoWzddXG4gIGlmIChmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpIHtcbiAgICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS90ZXh0ZXMvJHtudW1iZXJ9JHtleHRlbnNpb259YFxuICB9XG4gIGxldCBkb2N1bWVudFR5cGUgPVxuICAgIChcbiAgICAgIHtcbiAgICAgICAgQlRDOiBcIlRDT01cIixcbiAgICAgICAgQlRBOiBcIlRBRE9cIixcbiAgICAgICAgVEFQOiBcIlRBRE9cIixcbiAgICAgIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIClbbWF0Y2hbNl1dIHx8IG1hdGNoWzFdXG4gIGlmIChcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uc291c1R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlLmNvZGUgPT09IFwiQ09NUEFcIlxuICApIHtcbiAgICAvLyBBbm5leGUgYXUgcmFwcG9ydCA6IFRleHRlIGNvbXBhcmF0aWYgQ09NUEFcbiAgICBudW1iZXIgPSBudW1iZXIucmVwbGFjZSgvLUNPTVBBLywgXCItYUNPTVBBXCIpXG4gIH1cbiAgaWYgKGRvY3VtZW50VHlwZSA9PSBcIkFWQ0VcIikge1xuICAgIGRvY3VtZW50VHlwZSA9IGBBVkNFJHtkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5mYW1pbGxlLmNsYXNzZS5jb2RlfWBcbiAgfVxuICBjb25zdCBmcmFnbWVudHMgPSBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZVtkb2N1bWVudFR5cGVdXG4gIGlmIChmcmFnbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEZvciBleGFtcGxlOiBBTENOQU5SNUwxNUIwMDAyIChhbGxvY3V0aW9uIGR1IHByw6lzaWRlbnQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9mIFVJRCBcIiR7ZG9jdW1lbnQudWlkfVwiIGFuZCB0eXBlIFwiJHtkb2N1bWVudFR5cGV9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGRpcmVjdG9yeSA9XG4gICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGZcbiAgICAgID8gYHBkZi8ke2ZyYWdtZW50cy5kaXJlY3Rvcnl9YFxuICAgICAgOiBmcmFnbWVudHMuZGlyZWN0b3J5XG4gIHJldHVybiBgaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9LyR7ZGlyZWN0b3J5fS8ke2ZyYWdtZW50cy5wcmVmaXh9JHtudW1iZXJ9JHtmcmFnbWVudHMuc3VmZml4fSR7ZXh0ZW5zaW9ufWBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21TY3J1dGluKHNjcnV0aW46IFNjcnV0aW4pIHtcbiAgLy8gU2FtcGxlIFVJRHM6IFZUQU5SNUwxNVYzODlcbiAgY29uc3QgbWF0Y2ggPSAvXlZUQU5SKFswLTldKylMKFswLTldKylWKFswLTldKykkLy5leGVjKHNjcnV0aW4udWlkKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gc2NydXRpbiB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7c2NydXRpbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbMl1cbiAgY29uc3QgbnVtZXJvID0gbWF0Y2hbM11cbiAgcmV0dXJuIGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3NjcnV0aW5zL2RldGFpbC8obGVnaXNsYXR1cmUpLyR7bGVnaXNsYXR1cmV9LyhudW0pLyR7bnVtZXJvfWBcbn1cbiJdLCJtYXBwaW5ncyI6IkFBRUEsV0FBWUEsaUJBQWlCLDBCQUFqQkEsaUJBQWlCO0VBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEsaUJBQWlCO0VBQUEs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
|
|
258
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlIiwiQUNJTiIsImRpcmVjdG9yeSIsInByZWZpeCIsInN1ZmZpeCIsIkFWQ0VQUkpMT0kiLCJBVkNFTEVUVFJFIiwiQVZDRVBJT05MT0kiLCJBVklTIiwiRVRESSIsIkxFVFQiLCJQSU9OIiwiUE5SRSIsIlBOUkVBUFBBUlQzNDEiLCJQTlJFQ09NRU5RIiwiUE5SRU1PRFJFR0xUQU4iLCJQTlJFVFZYSU5TVElURVVST1AiLCJQUkpMIiwiUkFQUCIsIlJJTkYiLCJSSU9OIiwiVEFETyIsIlRDT00iLCJUQ09NQ09NRU5RIiwiVENPTU1PRFJFR0xUQU4iLCJUQ09NVFZYSU5TVElURVVST1AiLCJleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQiLCJmb3JtYXQiLCJIdG1sIiwiUGRmIiwiUmF3SHRtbCIsIml0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzIiwiZG9jdW1lbnRPckRpdmlzaW9uIiwidW5kZWZpbmVkIiwidHlwZSIsInVybCIsInVpZCIsInVybEluZm9zIiwidXJsSW5mb3NGcm9tRG9jdW1lbnRPckRpdmlzaW9uIiwicmVwbGFjZUFsbCIsInVybEZyb21Eb2N1bWVudCIsInVybEZyb21TY3J1dGluIiwic2NydXRpbiIsIm1hdGNoIiwiZXhlYyIsImNvbnNvbGUiLCJsb2ciLCJsZWdpc2xhdHVyZSIsIm51bWVybyIsImV4dGVuc2lvbiIsImNoYW1icmUiLCJudW1iZXIiLCJkb2N1bWVudFR5cGUiLCJCVEMiLCJCVEEiLCJUQVAiLCJjbGFzc2lmaWNhdGlvbiIsInNvdXNUeXBlIiwiY29kZSIsInJlcGxhY2UiLCJmYW1pbGxlIiwiY2xhc3NlIiwiZnJhZ21lbnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VybHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb2N1bWVudCwgRGl2aXNpb24gfSBmcm9tIFwiLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgdHlwZSB7IFNjcnV0aW4gfSBmcm9tIFwiLi90eXBlcy9zY3J1dGluc1wiXG5cbmV4cG9ydCBlbnVtIERvY3VtZW50VXJsRm9ybWF0IHtcbiAgSHRtbCA9IFwiaHRtbFwiLFxuICBQZGYgPSBcInBkZlwiLFxuICBSYXdIdG1sID0gXCJyYXctaHRtbFwiLCAvLyBUaGUgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQgdGhhdCBjYW4gYmUgcGFyc2VkIHRvIGV4dHJhY3QgZGl2aXNpb25zICYgYXJ0aWNsZXNcbn1cblxuY29uc3QgZG9jdW1lbnRVcmxGcmFnbWVudHNCeVR5cGU6IHtcbiAgW3R5cGU6IHN0cmluZ106IHtcbiAgICBkaXJlY3Rvcnk6IHN0cmluZ1xuICAgIHByZWZpeDogc3RyaW5nXG4gICAgc3VmZml4OiBzdHJpbmdcbiAgfVxufSA9IHtcbiAgQUNJTjoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1haVwiLFxuICB9LFxuICBBVkNFUFJKTE9JOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVkNFTEVUVFJFOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVkNFUElPTkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWSVM6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwcG9ydHNcIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgRVRESToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1laVwiLFxuICB9LFxuICBMRVRUOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWxcIixcbiAgfSxcbiAgUElPTjoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRUFQUEFSVDM0MToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRU1PRFJFR0xUQU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVUVlhJTlNUSVRFVVJPUDoge1xuICAgIGRpcmVjdG9yeTogXCJldXJvcGUvcmVzb2x1dGlvbnNcIixcbiAgICBwcmVmaXg6IFwicHBlXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQUkpMOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJBUFA6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwcG9ydHNcIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklORjoge1xuICAgIGRpcmVjdG9yeTogXCJyYXAtaW5mb1wiLFxuICAgIHByZWZpeDogXCJpXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSSU9OOiB7XG4gICAgZGlyZWN0b3J5OiBcIlwiLFxuICAgIHByZWZpeDogXCJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFRBRE86IHtcbiAgICBkaXJlY3Rvcnk6IFwidGFcIixcbiAgICBwcmVmaXg6IFwidGFcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFRDT006IHtcbiAgICBkaXJlY3Rvcnk6IFwidGEtY29tbWlzc2lvblwiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIi1hMFwiLFxuICB9LFxuICBUQ09NQ09NRU5ROiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTU1PRFJFR0xUQU46IHtcbiAgICBkaXJlY3Rvcnk6IFwidGEtY29tbWlzc2lvblwiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIi1hMFwiLFxuICB9LFxuICBUQ09NVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwidGEtY29tbWlzc2lvblwiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIi1hMFwiLFxuICB9LFxufVxuXG5mdW5jdGlvbiBleHRlbnNpb25Gcm9tRG9jdW1lbnRVcmxGb3JtYXQoZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCk6IHN0cmluZyB7XG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5IdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5QZGY6XG4gICAgICByZXR1cm4gXCIucGRmXCJcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWw6XG4gICAgICByZXR1cm4gXCIuYXNwXCJcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzKFxuICBkb2N1bWVudE9yRGl2aXNpb246IERvY3VtZW50IHwgRGl2aXNpb24sXG4gIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4pOiBHZW5lcmF0b3I8XG4gIHsgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdDsgdHlwZTogc3RyaW5nOyB1cmw6IHN0cmluZyB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgLy8gUmF3IEhUTUxcbiAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkIHx8IGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCkge1xuICAgIC8vIE5vdGU6IEJvdGggVVJMcyBzaG91bGQgd29yayBhbmQgcmV0dXJuIHRoZSBzYW1lIHJlc3VsdC5cbiAgICB5aWVsZCB7XG4gICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICB0eXBlOiBcImR5bi1vcGVuZGF0YVwiLFxuICAgICAgdXJsOiBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vb3BlbmRhdGEvJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfS5odG1sYCxcbiAgICB9XG4gICAgeWllbGQge1xuICAgICAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sLFxuICAgICAgdHlwZTogXCJkeW4tZG9jc1wiLFxuICAgICAgdXJsOiBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vZG9jcy8ke2RvY3VtZW50T3JEaXZpc2lvbi51aWR9LnJhd2AsXG4gICAgfVxuICAgIGNvbnN0IHVybEluZm9zID0gdXJsSW5mb3NGcm9tRG9jdW1lbnRPckRpdmlzaW9uKFxuICAgICAgZG9jdW1lbnRPckRpdmlzaW9uLFxuICAgICAgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCxcbiAgICApXG4gICAgaWYgKHVybEluZm9zICE9PSBudWxsKSB7XG4gICAgICB5aWVsZCB7XG4gICAgICAgIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCxcbiAgICAgICAgdHlwZTogdXJsSW5mb3MuZGlyZWN0b3J5LnJlcGxhY2VBbGwoXCIvXCIsIFwiLVwiKSxcbiAgICAgICAgdXJsOiB1cmxJbmZvcy51cmwsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSFRNTFxuICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQgfHwgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5IdG1sKSB7XG4gICAgY29uc3QgdXJsSW5mb3MgPSB1cmxJbmZvc0Zyb21Eb2N1bWVudE9yRGl2aXNpb24oXG4gICAgICBkb2N1bWVudE9yRGl2aXNpb24sXG4gICAgICBEb2N1bWVudFVybEZvcm1hdC5IdG1sLFxuICAgIClcbiAgICBpZiAodXJsSW5mb3MgIT09IG51bGwpIHtcbiAgICAgIHlpZWxkIHtcbiAgICAgICAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdC5IdG1sLFxuICAgICAgICB0eXBlOiB1cmxJbmZvcy5kaXJlY3RvcnkucmVwbGFjZUFsbChcIi9cIiwgXCItXCIpLFxuICAgICAgICB1cmw6IHVybEluZm9zLnVybCxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQREZcbiAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkIHx8IGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmKSB7XG4gICAgLy8gTm90ZTogQm90aCBVUkxzIHNob3VsZCB3b3JrIGFuZCByZXR1cm4gdGhlIHNhbWUgcmVzdWx0LlxuICAgIHlpZWxkIHtcbiAgICAgIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCxcbiAgICAgIHR5cGU6IFwiZHluLW9wZW5kYXRhXCIsXG4gICAgICB1cmw6IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL2R5bi9vcGVuZGF0YS8ke2RvY3VtZW50T3JEaXZpc2lvbi51aWR9Lmh0bWxgLFxuICAgIH1cbiAgICB5aWVsZCB7XG4gICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LlBkZixcbiAgICAgIHR5cGU6IFwiZHluLWRvY3NcIixcbiAgICAgIHVybDogYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluL2RvY3MvJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfS5wZGZgLFxuICAgIH1cbiAgICBjb25zdCB1cmxJbmZvcyA9IHVybEluZm9zRnJvbURvY3VtZW50T3JEaXZpc2lvbihcbiAgICAgIGRvY3VtZW50T3JEaXZpc2lvbixcbiAgICAgIERvY3VtZW50VXJsRm9ybWF0LlBkZixcbiAgICApXG4gICAgaWYgKHVybEluZm9zICE9PSBudWxsKSB7XG4gICAgICB5aWVsZCB7XG4gICAgICAgIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQuUGRmLFxuICAgICAgICB0eXBlOiB1cmxJbmZvcy5kaXJlY3RvcnkucmVwbGFjZUFsbChcIi9cIiwgXCItXCIpLFxuICAgICAgICB1cmw6IHVybEluZm9zLnVybCxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lc24ndCB1c2UgdGhlIFwibW9kZXJuXCIgQXNzZW1ibMOpZSBVUkxzIGZvciBkb2N1bWVudHMuXG4vLy8gVXNlIGdlbmVyYXRvciBgaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHNgIGluc3RlYWQuXG5leHBvcnQgZnVuY3Rpb24gdXJsRnJvbURvY3VtZW50KFxuICBkb2N1bWVudE9yRGl2aXNpb246IERvY3VtZW50IHwgRGl2aXNpb24sXG4gIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgdXJsSW5mb3MgPSB1cmxJbmZvc0Zyb21Eb2N1bWVudE9yRGl2aXNpb24oZG9jdW1lbnRPckRpdmlzaW9uLCBmb3JtYXQpXG4gIHJldHVybiB1cmxJbmZvcyA9PT0gbnVsbCA/IG51bGwgOiB1cmxJbmZvcy51cmxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21TY3J1dGluKHNjcnV0aW46IFNjcnV0aW4pIHtcbiAgLy8gU2FtcGxlIFVJRHM6IFZUQU5SNUwxNVYzODlcbiAgY29uc3QgbWF0Y2ggPSAvXlZUQU5SKFswLTldKylMKFswLTldKylWKFswLTldKykkLy5leGVjKHNjcnV0aW4udWlkKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gc2NydXRpbiB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7c2NydXRpbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGxlZ2lzbGF0dXJlID0gbWF0Y2hbMl1cbiAgY29uc3QgbnVtZXJvID0gbWF0Y2hbM11cbiAgcmV0dXJuIGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3NjcnV0aW5zL2RldGFpbC8obGVnaXNsYXR1cmUpLyR7bGVnaXNsYXR1cmV9LyhudW0pLyR7bnVtZXJvfWBcbn1cblxuLy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lc24ndCB1c2UgdGhlIG1vZGVybiBBc3NlbWJsw6llIFVSTHMgZm9yIGRvY3VtZW50cy5cbi8vLyBVc2UgZ2VuZXJhdG9yIGBpdGVyRG9jdW1lbnRPckRpdmlzaW9uVXJsc2AgaW5zdGVhZC5cbmZ1bmN0aW9uIHVybEluZm9zRnJvbURvY3VtZW50T3JEaXZpc2lvbihcbiAgZG9jdW1lbnRPckRpdmlzaW9uOiBEb2N1bWVudCB8IERpdmlzaW9uLFxuICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LFxuKTogeyBkaXJlY3Rvcnk6IHN0cmluZzsgdXJsOiBzdHJpbmcgfSB8IG51bGwge1xuICAvLyBDb2RlIHRha2VuIGZyb20gZnVuY3Rpb24gYGFuX3RleHRfdXJsYCBpbiBwcm9qZWN0IGFucHk6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWdhcmRzY2l0b3llbnMvYW5weS9ibG9iL21hc3Rlci9hbnB5L2Rvc3NpZXJfZnJvbV9vcGVuZGF0YS5weVxuICAvLyBTZWUgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9vcGVuZGF0YS9JbXBsZW1lbnRhdGlvbl9SZWZlcmVudGllbC9JZGVudGlmaWFudHNfUmVmZXJlbnRpZWxzLmh0bWxcbiAgLy8gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdCBvZiBhbiBVSUQuXG5cbiAgY29uc3QgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdClcbiAgY29uc3QgbWF0Y2ggPSAvXiguezR9KShbQU5TXSopKFJbMC05XSkoW0xTXSopKFswLTldKikoW0JUQUNQXSopKC4qKSQvLmV4ZWMoXG4gICAgZG9jdW1lbnRPckRpdmlzaW9uLnVpZCxcbiAgKVxuICBpZiAobWF0Y2ggPT09IG51bGwpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gZG9jdW1lbnQgb3IgZGl2aXNpb24gd2l0aCB1bmV4cGVjdGVkIFVJRDogXCIke2RvY3VtZW50T3JEaXZpc2lvbi51aWR9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGNoYW1icmUgPSBtYXRjaFsyXVxuICBpZiAoY2hhbWJyZSA9PT0gXCJTTlwiKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmb3IgZG9jdW1lbnQgb3IgZGl2aXNpb24gaW4gU8OpbmF0LiBVSUQ6IFwiJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzVdXG4gIGxldCBudW1iZXIgPSBtYXRjaFs3XVxuICBpZiAoZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpcmVjdG9yeTogXCJ0ZXh0ZXNcIixcbiAgICAgIHVybDogYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvJHtsZWdpc2xhdHVyZX0vdGV4dGVzLyR7bnVtYmVyfSR7ZXh0ZW5zaW9ufWAsXG4gICAgfVxuICB9XG4gIGxldCBkb2N1bWVudFR5cGUgPVxuICAgIChcbiAgICAgIHtcbiAgICAgICAgQlRDOiBcIlRDT01cIixcbiAgICAgICAgQlRBOiBcIlRBRE9cIixcbiAgICAgICAgVEFQOiBcIlRBRE9cIixcbiAgICAgIH0gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIClbbWF0Y2hbNl1dIHx8IG1hdGNoWzFdXG4gIGlmIChcbiAgICBkb2N1bWVudE9yRGl2aXNpb24uY2xhc3NpZmljYXRpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50T3JEaXZpc2lvbi5jbGFzc2lmaWNhdGlvbi5zb3VzVHlwZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgZG9jdW1lbnRPckRpdmlzaW9uLmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlLmNvZGUgPT09IFwiQ09NUEFcIlxuICApIHtcbiAgICAvLyBBbm5leGUgYXUgcmFwcG9ydCA6IFRleHRlIGNvbXBhcmF0aWYgQ09NUEFcbiAgICBudW1iZXIgPSBudW1iZXIucmVwbGFjZSgvLUNPTVBBLywgXCItYUNPTVBBXCIpXG4gIH1cbiAgaWYgKGRvY3VtZW50VHlwZSA9PSBcIkFWQ0VcIikge1xuICAgIGRvY3VtZW50VHlwZSA9IGBBVkNFJHtkb2N1bWVudE9yRGl2aXNpb24uY2xhc3NpZmljYXRpb24uZmFtaWxsZT8uY2xhc3NlLmNvZGV9YFxuICB9XG4gIGNvbnN0IGZyYWdtZW50cyA9IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlW2RvY3VtZW50VHlwZV1cbiAgaWYgKGZyYWdtZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gRm9yIGV4YW1wbGU6IEFMQ05BTlI1TDE1QjAwMDIgKGFsbG9jdXRpb24gZHUgcHLDqXNpZGVudClcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBVbmFibGUgdG8gZ2VuZXJhdGUgVVJMIGZyb20gZG9jdW1lbnQgb3IgZGl2aXNpb24gb2YgVUlEIFwiJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfVwiIGFuZCB0eXBlIFwiJHtkb2N1bWVudFR5cGV9XCJgLFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIGNvbnN0IGRpcmVjdG9yeSA9XG4gICAgZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5QZGZcbiAgICAgID8gYHBkZi8ke2ZyYWdtZW50cy5kaXJlY3Rvcnl9YFxuICAgICAgOiBmcmFnbWVudHMuZGlyZWN0b3J5XG4gIHJldHVybiB7XG4gICAgZGlyZWN0b3J5LFxuICAgIHVybDogYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvJHtsZWdpc2xhdHVyZX0vJHtkaXJlY3Rvcnl9LyR7ZnJhZ21lbnRzLnByZWZpeH0ke251bWJlcn0ke2ZyYWdtZW50cy5zdWZmaXh9JHtleHRlbnNpb259YCxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFHQSxXQUFZQSxpQkFBaUIsMEJBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEsaUJBQWlCO0VBQWpCQSxpQkFBaUI7RUFBQSxPQUFqQkEsaUJBQWlCO0FBQUEsT0FHTDtBQUd4QixNQUFNQywwQkFNTCxHQUFHO0VBQ0ZDLElBQUksRUFBRTtJQUNKQyxTQUFTLEVBQUUsU0FBUztJQUNwQkMsTUFBTSxFQUFFLElBQUk7SUFDWkMsTUFBTSxFQUFFO0VBQ1YsQ0FBQztFQUNEQyxVQUFVLEVBQUU7SUFDVkgsU0FBUyxFQUFFLFNBQVM7SUFDcEJDLE1BQU0sRUFBRSxJQUFJO0lBQ1pDLE1BQU0sRUFBRTtFQUNWLENBQUM7RUFDREUsVUFBVSxFQUFFO0lBQ1ZKLFNBQVMsRUFBRSxTQUFTO0lBQ3BCQyxNQUFNLEVBQUUsSUFBSTtJQUNaQyxNQUFNLEVBQUU7RUFDVixDQUFDO0VBQ0RHLFdB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tricoteuses/assemblee",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Retrieve, clean up & handle French Assemblée nationale's open data",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Assemblée nationale",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"url": "https://git.en-root.org/tricoteuses/tricoteuses-assemblee.git"
|
|
24
24
|
},
|
|
25
25
|
"engines": {
|
|
26
|
-
"node": ">=
|
|
26
|
+
"node": ">=18"
|
|
27
27
|
},
|
|
28
28
|
"main": "lib/index.js",
|
|
29
29
|
"types": "lib/index.d.ts",
|
|
@@ -96,7 +96,6 @@
|
|
|
96
96
|
"glob": "^10.2.1",
|
|
97
97
|
"js-yaml": "^4.0.0",
|
|
98
98
|
"jsdom": "^22.0.0",
|
|
99
|
-
"node-fetch": "^2.6.7",
|
|
100
99
|
"node-html-parser": "^6.1.0",
|
|
101
100
|
"node-stream-zip": "^1.11.6",
|
|
102
101
|
"xml2js": "^0.6.0"
|
|
@@ -119,7 +118,6 @@
|
|
|
119
118
|
"@types/jsdom": "^21.1.0",
|
|
120
119
|
"@types/mocha": "^10.0.0",
|
|
121
120
|
"@types/node": "^18.8.3",
|
|
122
|
-
"@types/node-fetch": "^2.6.1",
|
|
123
121
|
"@types/readable-stream": "^2.3.9",
|
|
124
122
|
"@types/rewire": "^2.5.28",
|
|
125
123
|
"@types/temp": "^0.9.0",
|
|
@@ -133,7 +131,7 @@
|
|
|
133
131
|
"fetch-mock": "^9.10.7",
|
|
134
132
|
"mocha": "^10.0.0",
|
|
135
133
|
"nyc": "^15.1.0",
|
|
136
|
-
"prettier": "^
|
|
134
|
+
"prettier": "^3.0.0",
|
|
137
135
|
"quicktype": "^23.0.7",
|
|
138
136
|
"quicktype-core": "^23.0.7",
|
|
139
137
|
"regenerator-runtime": "^0.13.7",
|
|
@@ -146,6 +144,6 @@
|
|
|
146
144
|
"tslib": "^2.0.2",
|
|
147
145
|
"tsx": "^3.12.3",
|
|
148
146
|
"typescript": "^5.0.2",
|
|
149
|
-
"typescript-json-schema": "^0.
|
|
147
|
+
"typescript-json-schema": "^0.58.1"
|
|
150
148
|
}
|
|
151
149
|
}
|