@tricoteuses/assemblee 1.0.0-next.2 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +2 -0
  2. package/lib/api.js +23 -7
  3. package/lib/api.mjs +41 -0
  4. package/lib/bugs/acteur-00010/plugin.test.js +139 -33
  5. package/lib/bugs/acteur-00010/plugin.test.mjs +33 -0
  6. package/lib/bugs/acteur-00010.js +166 -24
  7. package/lib/bugs/acteur-00010.mjs +31 -0
  8. package/lib/bugs/agenda-00002/plugin.test.js +178 -52
  9. package/lib/bugs/agenda-00002/plugin.test.mjs +52 -0
  10. package/lib/bugs/agenda-00002.js +507 -143
  11. package/lib/bugs/agenda-00002.mjs +197 -0
  12. package/lib/bugs/agenda-00008/plugin.test.js +143 -31
  13. package/lib/bugs/agenda-00008/plugin.test.mjs +31 -0
  14. package/lib/bugs/agenda-00008.js +180 -25
  15. package/lib/bugs/agenda-00008.mjs +30 -0
  16. package/lib/bugs/agenda-00011/plugin.test.js +371 -156
  17. package/lib/bugs/agenda-00011/plugin.test.mjs +156 -0
  18. package/lib/bugs/agenda-00011.js +416 -117
  19. package/lib/bugs/agenda-00011.mjs +150 -0
  20. package/lib/bugs.js +591 -54
  21. package/lib/bugs.mjs +93 -0
  22. package/lib/cleaners/actes_legislatifs.js +149 -61
  23. package/lib/cleaners/actes_legislatifs.mjs +311 -0
  24. package/lib/cleaners/acteurs.js +255 -123
  25. package/lib/cleaners/acteurs.mjs +211 -0
  26. package/lib/cleaners/amendements.js +242 -117
  27. package/lib/cleaners/amendements.mjs +292 -0
  28. package/lib/cleaners/documents.js +147 -62
  29. package/lib/cleaners/documents.mjs +162 -0
  30. package/lib/cleaners/dossiers_legislatifs.js +132 -45
  31. package/lib/cleaners/dossiers_legislatifs.mjs +123 -0
  32. package/lib/cleaners/index.js +64 -8
  33. package/lib/cleaners/index.mjs +8 -0
  34. package/lib/cleaners/organes.js +54 -21
  35. package/lib/cleaners/organes.mjs +64 -0
  36. package/lib/cleaners/reunions.js +237 -127
  37. package/lib/cleaners/reunions.mjs +318 -0
  38. package/lib/cleaners/scrutins.js +261 -99
  39. package/lib/cleaners/scrutins.mjs +254 -0
  40. package/lib/cleaners/xml.js +81 -16
  41. package/lib/cleaners/xml.mjs +42 -0
  42. package/lib/datasets.js +284 -153
  43. package/lib/datasets.mjs +596 -0
  44. package/lib/dates.js +93 -34
  45. package/lib/dates.mjs +98 -0
  46. package/lib/dossiers_legislatifs.js +107 -33
  47. package/lib/dossiers_legislatifs.mjs +215 -0
  48. package/lib/file_systems.js +203 -35
  49. package/lib/file_systems.mjs +64 -0
  50. package/lib/git.js +139 -41
  51. package/lib/git.mjs +114 -0
  52. package/lib/index.js +310 -16
  53. package/lib/index.mjs +16 -0
  54. package/lib/inserters.js +355 -131
  55. package/lib/inserters.mjs +413 -0
  56. package/lib/loaders.js +900 -440
  57. package/lib/loaders.mjs +678 -0
  58. package/lib/organes.js +15 -5
  59. package/lib/organes.mjs +18 -0
  60. package/lib/parsers/documents.js +241 -89
  61. package/lib/parsers/documents.mjs +433 -0
  62. package/lib/parsers/index.js +36 -3
  63. package/lib/parsers/index.mjs +3 -0
  64. package/lib/parsers/recherche_amendements.js +616 -173
  65. package/lib/parsers/recherche_amendements.mjs +189 -0
  66. package/lib/raw_types/acteurs_et_organes.d.ts +36 -148
  67. package/lib/raw_types/acteurs_et_organes.js +228 -506
  68. package/lib/raw_types/acteurs_et_organes.mjs +1240 -0
  69. package/lib/raw_types/agendas.js +165 -75
  70. package/lib/raw_types/agendas.mjs +944 -0
  71. package/lib/raw_types/amendements.js +165 -77
  72. package/lib/raw_types/amendements.mjs +1040 -0
  73. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -43
  74. package/lib/raw_types/dossiers_legislatifs.js +181 -143
  75. package/lib/raw_types/dossiers_legislatifs.mjs +1792 -0
  76. package/lib/raw_types/scrutins.js +144 -61
  77. package/lib/raw_types/scrutins.mjs +645 -0
  78. package/lib/scripts/bugs_helper.js +657 -155
  79. package/lib/scripts/bugs_helper.mjs +286 -0
  80. package/lib/scripts/clean_data.js +380 -145
  81. package/lib/scripts/clean_data.mjs +190 -0
  82. package/lib/scripts/clean_reorganized_data.js +627 -331
  83. package/lib/scripts/clean_reorganized_data.mjs +520 -0
  84. package/lib/scripts/diff_amendements.js +159 -73
  85. package/lib/scripts/diff_amendements.mjs +234 -0
  86. package/lib/scripts/document_dossiers_legislatifs.js +570 -288
  87. package/lib/scripts/document_dossiers_legislatifs.mjs +494 -0
  88. package/lib/scripts/get_today_reunions.js +37 -20
  89. package/lib/scripts/get_today_reunions.mjs +41 -0
  90. package/lib/scripts/merge_scrutins.js +121 -39
  91. package/lib/scripts/merge_scrutins.mjs +69 -0
  92. package/lib/scripts/parse_textes_lois.js +179 -125
  93. package/lib/scripts/parse_textes_lois.mjs +215 -0
  94. package/lib/scripts/raw_types_from_amendements.js +276 -77
  95. package/lib/scripts/raw_types_from_amendements.mjs +118 -0
  96. package/lib/scripts/reorganize_data.js +867 -446
  97. package/lib/scripts/reorganize_data.mjs +712 -0
  98. package/lib/scripts/retrieve_deputes_photos.js +378 -157
  99. package/lib/scripts/retrieve_deputes_photos.mjs +230 -0
  100. package/lib/scripts/retrieve_documents.js +648 -172
  101. package/lib/scripts/retrieve_documents.mjs +292 -0
  102. package/lib/scripts/retrieve_open_data.js +286 -85
  103. package/lib/scripts/retrieve_open_data.mjs +125 -0
  104. package/lib/scripts/retrieve_pending_amendments.js +302 -69
  105. package/lib/scripts/retrieve_pending_amendments.mjs +130 -0
  106. package/lib/scripts/retrieve_senateurs_photos.js +374 -198
  107. package/lib/scripts/retrieve_senateurs_photos.mjs +277 -0
  108. package/lib/scripts/retrieve_textes_lois.js +343 -89
  109. package/lib/scripts/retrieve_textes_lois.mjs +168 -0
  110. package/lib/scripts/test_load.js +30 -11
  111. package/lib/scripts/test_load.mjs +26 -0
  112. package/lib/scripts/test_load_big_files.js +30 -11
  113. package/lib/scripts/test_load_big_files.mjs +26 -0
  114. package/lib/scripts/validate_json.js +370 -120
  115. package/lib/scripts/validate_json.mjs +216 -0
  116. package/lib/shared_types/codes_actes.js +50 -15
  117. package/lib/shared_types/codes_actes.mjs +228 -0
  118. package/lib/strings.js +16 -3
  119. package/lib/strings.mjs +7 -0
  120. package/lib/types/acteurs_et_organes.js +156 -71
  121. package/lib/types/acteurs_et_organes.mjs +918 -0
  122. package/lib/types/agendas.js +154 -67
  123. package/lib/types/agendas.mjs +623 -0
  124. package/lib/types/amendements.js +166 -77
  125. package/lib/types/amendements.mjs +885 -0
  126. package/lib/types/dossiers_legislatifs.d.ts +1 -42
  127. package/lib/types/dossiers_legislatifs.js +182 -143
  128. package/lib/types/dossiers_legislatifs.mjs +1120 -0
  129. package/lib/types/legislatures.js +12 -3
  130. package/lib/types/legislatures.mjs +9 -0
  131. package/lib/types/scrutins.js +144 -61
  132. package/lib/types/scrutins.mjs +528 -0
  133. package/lib/urls.js +44 -25
  134. package/lib/urls.mjs +201 -0
  135. package/package.json +33 -12
@@ -0,0 +1,168 @@
1
+ import assert from "assert";
2
+ import { execSync } from "child_process";
3
+ import commandLineArgs from "command-line-args";
4
+ import fs from "fs-extra";
5
+ import fetch from "node-fetch";
6
+ import path from "path";
7
+ import { EnabledDatasets } from "../datasets.mjs";
8
+ import { loadAssembleeData } from "../loaders.mjs";
9
+ import { TypeDocument } from "../types/dossiers_legislatifs.mjs";
10
+ import { DocumentUrlFormat, urlFromDocument } from "../urls.mjs";
11
+ const optionsDefinitions = [{
12
+ alias: "c",
13
+ help: "commit documents",
14
+ name: "commit",
15
+ type: Boolean
16
+ }, {
17
+ alias: "l",
18
+ defaultValue: "16",
19
+ name: "legislature",
20
+ type: String
21
+ }, {
22
+ alias: "r",
23
+ help: "push commit to given remote",
24
+ multiple: true,
25
+ name: "remote",
26
+ type: String
27
+ }, {
28
+ alias: "s",
29
+ help: "don't log anything",
30
+ name: "silent",
31
+ type: Boolean
32
+ }, {
33
+ alias: "u",
34
+ help: "UID of first Assemblée's document to retrieve",
35
+ name: "uid",
36
+ type: String
37
+ }, {
38
+ alias: "v",
39
+ help: "verbose logs",
40
+ name: "verbose",
41
+ type: Boolean
42
+ }, {
43
+ defaultOption: true,
44
+ help: "directory containing Assemblée open data files",
45
+ name: "dataDir",
46
+ type: String
47
+ }];
48
+ const options = commandLineArgs(optionsDefinitions);
49
+
50
+ function commitAndPush(repositoryDir, commit, remotes) {
51
+ let error = false;
52
+
53
+ if (commit) {
54
+ execSync("git add .", {
55
+ cwd: repositoryDir,
56
+ env: process.env,
57
+ encoding: "utf-8",
58
+ stdio: ["ignore", "ignore", "pipe"]
59
+ });
60
+
61
+ try {
62
+ execSync('git commit -m "Nouvelle moisson"', {
63
+ cwd: repositoryDir,
64
+ env: process.env,
65
+ encoding: "utf-8"
66
+ });
67
+ } catch (childProcess) {
68
+ if (childProcess.stderr === null || !/nothing to commit/.test(childProcess.stdout)) {
69
+ console.error(childProcess.output);
70
+ throw childProcess;
71
+ }
72
+ }
73
+
74
+ for (const remote of remotes || []) {
75
+ try {
76
+ execSync(`git push ${remote} master`, {
77
+ cwd: repositoryDir,
78
+ env: process.env,
79
+ encoding: "utf-8",
80
+ stdio: ["ignore", "ignore", "pipe"]
81
+ });
82
+ } catch (childProcess) {
83
+ // Don't stop when push fails.
84
+ console.error(childProcess.output);
85
+ error = true;
86
+ }
87
+ }
88
+ }
89
+
90
+ return error;
91
+ }
92
+
93
+ async function retrieveDocuments() {
94
+ assert(!options.commit || options.uid, 'Options "commit" & "uid" are incompatible');
95
+ const dataDir = options.dataDir;
96
+ const {
97
+ documentByUid
98
+ } = loadAssembleeData(dataDir, EnabledDatasets.DossiersLegislatifs, options.legislature);
99
+ const textesLoisDir = path.join(dataDir, "www.assemblee-nationale.fr", options.legislature, "textes");
100
+ fs.ensureDirSync(textesLoisDir);
101
+
102
+ if (!options.uid) {
103
+ for (const filename of fs.readdirSync(textesLoisDir)) {
104
+ if (filename[0] === ".") {
105
+ continue;
106
+ }
107
+
108
+ fs.removeSync(path.join(textesLoisDir, filename));
109
+ }
110
+ }
111
+
112
+ const textesLois = Object.values(documentByUid).filter(document => document.xsiType === TypeDocument.TexteLoiType).filter(document => document.uid.startsWith("PIONAN") || document.uid.startsWith("PRJLAN")).map(document => {
113
+ return { ...document,
114
+ rawDocumentAssembleeUrl: urlFromDocument(document, DocumentUrlFormat.RawHtml)
115
+ };
116
+ }).sort((a, b) => a.rawDocumentAssembleeUrl === null ? -1 : b.rawDocumentAssembleeUrl === null ? 1 : a.rawDocumentAssembleeUrl.localeCompare(b.rawDocumentAssembleeUrl));
117
+ const firstUid = options.uid;
118
+ let skip = !!firstUid;
119
+
120
+ for (const texteLoi of textesLois) {
121
+ if (skip) {
122
+ if (texteLoi.uid === firstUid) {
123
+ skip = false;
124
+ } else {
125
+ continue;
126
+ }
127
+ }
128
+
129
+ if (!options.silent) {
130
+ console.log(`Retrieving bill ${texteLoi.uid} at ${texteLoi.rawDocumentAssembleeUrl}`);
131
+ }
132
+
133
+ if (texteLoi.rawDocumentAssembleeUrl === null) {
134
+ continue;
135
+ }
136
+
137
+ const url = new URL(texteLoi.rawDocumentAssembleeUrl);
138
+ const filePath = path.join(dataDir, url.hostname, ...url.pathname.split("/"));
139
+ assert.strictEqual(textesLoisDir, path.dirname(filePath));
140
+ const response = await fetch(texteLoi.rawDocumentAssembleeUrl);
141
+ const page = await response.text();
142
+
143
+ if (!response.ok) {
144
+ if (response.status !== 404) {
145
+ console.error(`Error while getting page "${texteLoi.rawDocumentAssembleeUrl}" (uid: ${texteLoi.uid}):\n\nError:\n${JSON.stringify({
146
+ code: response.status,
147
+ message: response.statusText
148
+ }, null, 2)}`);
149
+ }
150
+
151
+ continue;
152
+ }
153
+
154
+ fs.writeFileSync(filePath, page);
155
+ }
156
+
157
+ if (commitAndPush(textesLoisDir, options.commit, options.remote)) {
158
+ process.exit(1);
159
+ }
160
+
161
+ return textesLois;
162
+ }
163
+
164
+ retrieveDocuments().catch(error => {
165
+ console.log(error);
166
+ process.exit(1);
167
+ });
168
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwiZmV0Y2giLCJwYXRoIiwiRW5hYmxlZERhdGFzZXRzIiwibG9hZEFzc2VtYmxlZURhdGEiLCJUeXBlRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsInVybEZyb21Eb2N1bWVudCIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIm5hbWUiLCJ0eXBlIiwiQm9vbGVhbiIsImRlZmF1bHRWYWx1ZSIsIlN0cmluZyIsIm11bHRpcGxlIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21taXRBbmRQdXNoIiwicmVwb3NpdG9yeURpciIsImNvbW1pdCIsInJlbW90ZXMiLCJlcnJvciIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsInVpZCIsImRhdGFEaXIiLCJkb2N1bWVudEJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImxlZ2lzbGF0dXJlIiwidGV4dGVzTG9pc0RpciIsImpvaW4iLCJlbnN1cmVEaXJTeW5jIiwiZmlsZW5hbWUiLCJyZWFkZGlyU3luYyIsInJlbW92ZVN5bmMiLCJ0ZXh0ZXNMb2lzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiZG9jdW1lbnQiLCJ4c2lUeXBlIiwiVGV4dGVMb2lUeXBlIiwic3RhcnRzV2l0aCIsIm1hcCIsInJhd0RvY3VtZW50QXNzZW1ibGVlVXJsIiwiUmF3SHRtbCIsInNvcnQiLCJhIiwiYiIsImxvY2FsZUNvbXBhcmUiLCJmaXJzdFVpZCIsInNraXAiLCJ0ZXh0ZUxvaSIsInNpbGVudCIsImxvZyIsInVybCIsIlVSTCIsImZpbGVQYXRoIiwiaG9zdG5hbWUiLCJwYXRobmFtZSIsInNwbGl0Iiwic3RyaWN0RXF1YWwiLCJkaXJuYW1lIiwicmVzcG9uc2UiLCJwYWdlIiwidGV4dCIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0IiwiY2F0Y2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV90ZXh0ZXNfbG9pcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzLCBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHsgRG9jdW1lbnQsIFR5cGVEb2N1bWVudCB9IGZyb20gXCIuLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgdXJsRnJvbURvY3VtZW50IH0gZnJvbSBcIi4uL3VybHNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgZG9jdW1lbnRzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNlwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInVcIixcbiAgICBoZWxwOiBcIlVJRCBvZiBmaXJzdCBBc3NlbWJsw6llJ3MgZG9jdW1lbnQgdG8gcmV0cmlldmVcIixcbiAgICBuYW1lOiBcInVpZFwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlRG9jdW1lbnRzKCk6IFByb21pc2U8RG9jdW1lbnRbXT4ge1xuICBhc3NlcnQoXG4gICAgIW9wdGlvbnMuY29tbWl0IHx8IG9wdGlvbnMudWlkLFxuICAgICdPcHRpb25zIFwiY29tbWl0XCIgJiBcInVpZFwiIGFyZSBpbmNvbXBhdGlibGUnLFxuICApXG5cbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGRvY3VtZW50QnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICAgIGRhdGFEaXIsXG4gICAgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKVxuXG4gIGNvbnN0IHRleHRlc0xvaXNEaXIgPSBwYXRoLmpvaW4oXG4gICAgZGF0YURpcixcbiAgICBcInd3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyXCIsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgICBcInRleHRlc1wiLFxuICApXG4gIGZzLmVuc3VyZURpclN5bmModGV4dGVzTG9pc0RpcilcbiAgaWYgKCFvcHRpb25zLnVpZCkge1xuICAgIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmModGV4dGVzTG9pc0RpcikpIHtcbiAgICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKHRleHRlc0xvaXNEaXIsIGZpbGVuYW1lKSlcbiAgICB9XG4gIH1cblxuICBjb25zdCB0ZXh0ZXNMb2lzID0gT2JqZWN0LnZhbHVlcyhkb2N1bWVudEJ5VWlkKVxuICAgIC5maWx0ZXIoKGRvY3VtZW50KSA9PiBkb2N1bWVudC54c2lUeXBlID09PSBUeXBlRG9jdW1lbnQuVGV4dGVMb2lUeXBlKVxuICAgIC5maWx0ZXIoXG4gICAgICAoZG9jdW1lbnQpID0+XG4gICAgICAgIGRvY3VtZW50LnVpZC5zdGFydHNXaXRoKFwiUElPTkFOXCIpIHx8IGRvY3VtZW50LnVpZC5zdGFydHNXaXRoKFwiUFJKTEFOXCIpLFxuICAgIClcbiAgICAubWFwKChkb2N1bWVudCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZG9jdW1lbnQsXG4gICAgICAgIHJhd0RvY3VtZW50QXNzZW1ibGVlVXJsOiB1cmxGcm9tRG9jdW1lbnQoXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCxcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCA9PT0gbnVsbFxuICAgICAgICA/IC0xXG4gICAgICAgIDogYi5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCA9PT0gbnVsbFxuICAgICAgICA/IDFcbiAgICAgICAgOiBhLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsLmxvY2FsZUNvbXBhcmUoYi5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCksXG4gICAgKVxuXG4gIGNvbnN0IGZpcnN0VWlkID0gb3B0aW9ucy51aWRcbiAgbGV0IHNraXAgPSAhIWZpcnN0VWlkXG4gIGZvciAoY29uc3QgdGV4dGVMb2kgb2YgdGV4dGVzTG9pcykge1xuICAgIGlmIChza2lwKSB7XG4gICAgICBpZiAodGV4dGVMb2kudWlkID09PSBmaXJzdFVpZCkge1xuICAgICAgICBza2lwID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmV0cmlldmluZyBiaWxsICR7dGV4dGVMb2kudWlkfSBhdCAke3RleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsfWAsXG4gICAgICApXG4gICAgfVxuICAgIGlmICh0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybCA9PT0gbnVsbCkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybClcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICB1cmwuaG9zdG5hbWUsXG4gICAgICAuLi51cmwucGF0aG5hbWUuc3BsaXQoXCIvXCIpLFxuICAgIClcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGV4dGVzTG9pc0RpciwgcGF0aC5kaXJuYW1lKGZpbGVQYXRoKSlcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDQwNCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBFcnJvciB3aGlsZSBnZXR0aW5nIHBhZ2UgXCIke1xuICAgICAgICAgICAgdGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmxcbiAgICAgICAgICB9XCIgKHVpZDogJHt0ZXh0ZUxvaS51aWR9KTpcXG5cXG5FcnJvcjpcXG4ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgeyBjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHQgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyLFxuICAgICAgICAgICl9YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgcGFnZSlcbiAgfVxuXG4gIGlmIChjb21taXRBbmRQdXNoKHRleHRlc0xvaXNEaXIsIG9wdGlvbnMuY29tbWl0LCBvcHRpb25zLnJlbW90ZSkpIHtcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuICByZXR1cm4gdGV4dGVzTG9pc1xufVxuXG5yZXRyaWV2ZURvY3VtZW50cygpLmNhdGNoKChlcnJvcikgPT4ge1xuICBjb25zb2xlLmxvZyhlcnJvcilcbiAgcHJvY2Vzcy5leGl0KDEpXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFQLE1BQW1CLFFBQW5CO0FBQ0EsU0FBdUJDLFFBQXZCLFFBQXVDLGVBQXZDO0FBQ0EsT0FBT0MsZUFBUCxNQUE0QixtQkFBNUI7QUFDQSxPQUFPQyxFQUFQLE1BQWUsVUFBZjtBQUNBLE9BQU9DLEtBQVAsTUFBa0IsWUFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLE1BQWpCO1NBRVNDLGU7U0FDQUMsaUI7U0FDVUMsWTtTQUNWQyxpQixFQUFtQkMsZTtBQUU1QixNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxJQUFJLEVBQUUsa0JBRlI7RUFHRUMsSUFBSSxFQUFFLFFBSFI7RUFJRUMsSUFBSSxFQUFFQztBQUpSLENBRHlCLEVBT3pCO0VBQ0VKLEtBQUssRUFBRSxHQURUO0VBRUVLLFlBQVksRUFBRSxJQUZoQjtFQUdFSCxJQUFJLEVBQUUsYUFIUjtFQUlFQyxJQUFJLEVBQUVHO0FBSlIsQ0FQeUIsRUFhekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLDZCQUZSO0VBR0VNLFFBQVEsRUFBRSxJQUhaO0VBSUVMLElBQUksRUFBRSxRQUpSO0VBS0VDLElBQUksRUFBRUc7QUFMUixDQWJ5QixFQW9CekI7RUFDRU4sS0FBSyxFQUFFLEdBRFQ7RUFFRUMsSUFBSSxFQUFFLG9CQUZSO0VBR0VDLElBQUksRUFBRSxR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
@@ -1,10 +1,25 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.map.js");
4
+
5
+ require("core-js/modules/es.array.reduce.js");
6
+
7
+ require("core-js/modules/es.object.to-string.js");
8
+
9
+ var _assert = _interopRequireDefault(require("assert"));
10
+
11
+ var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
12
+
13
+ var _datasets = require("../datasets");
14
+
15
+ var _loaders = require("../loaders");
16
+
17
+ var _legislatures = require("../types/legislatures");
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
+
1
21
  /** Load all split open data files in RAM as a test. */
2
- import assert from "assert";
3
- import commandLineArgs from "command-line-args";
4
- import { EnabledDatasets } from "../datasets.js";
5
- import { loadAssembleeData } from "../loaders.js";
6
- import { Legislature } from "../types/legislatures.js";
7
- const optionsDefinitions = [{
22
+ var optionsDefinitions = [{
8
23
  alias: "k",
9
24
  defaultValue: ["All"],
10
25
  help: "categories of datasets to reorganize",
@@ -17,10 +32,14 @@ const optionsDefinitions = [{
17
32
  name: "dataDir",
18
33
  type: String
19
34
  }];
20
- const options = commandLineArgs(optionsDefinitions);
21
- options.categories.map(datasetName => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
22
- const enabledDatasets = options.categories.reduce((enabledDatasets, datasetName) => enabledDatasets | EnabledDatasets[datasetName], EnabledDatasets.None);
23
- loadAssembleeData(options.dataDir, enabledDatasets, Legislature.All, {
35
+ var options = (0, _commandLineArgs["default"])(optionsDefinitions);
36
+ options.categories.map(function (datasetName) {
37
+ return _assert["default"].notStrictEqual(_datasets.EnabledDatasets[datasetName], undefined, "Unknown name of dataset: ".concat(datasetName));
38
+ });
39
+ var enabledDatasets = options.categories.reduce(function (enabledDatasets, datasetName) {
40
+ return enabledDatasets | _datasets.EnabledDatasets[datasetName];
41
+ }, _datasets.EnabledDatasets.None);
42
+ (0, _loaders.loadAssembleeData)(options.dataDir, enabledDatasets, _legislatures.Legislature.All, {
24
43
  log: true
25
44
  });
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkxlZ2lzbGF0dXJlIiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJoZWxwIiwibXVsdGlwbGUiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY2F0ZWdvcmllcyIsIm1hcCIsImRhdGFzZXROYW1lIiwibm90U3RyaWN0RXF1YWwiLCJ1bmRlZmluZWQiLCJlbmFibGVkRGF0YXNldHMiLCJyZWR1Y2UiLCJOb25lIiwiZGF0YURpciIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTG9hZCBhbGwgc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGEob3B0aW9ucy5kYXRhRGlyLCBlbmFibGVkRGF0YXNldHMsIExlZ2lzbGF0dXJlLkFsbCwge1xuICBsb2c6IHRydWUsXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBLE9BQU9BLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxlQUFQLE1BQTRCLG1CQUE1QjtTQUVTQyxlO1NBQ0FDLGlCO1NBQ0FDLFc7QUFFVCxNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxZQUFZLEVBQUUsQ0FBQyxLQUFELENBRmhCO0VBR0VDLElBQUksRUFBRSxzQ0FIUjtFQUlFQyxRQUFRLEVBQUUsSUFKWjtFQUtFQyxJQUFJLEVBQUUsWUFMUjtFQU1FQyxJQUFJLEVBQUVDO0FBTlIsQ0FEeUIsRUFTekI7RUFDRUMsYUFBYSxFQUFFLElBRGpCO0VBRUVMLElBQUksRUFBRSxnREFGUjtFQUdFRSxJQUFJLEVBQUUsU0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FUeUIsQ0FBM0I7QUFnQkEsTUFBTUUsT0FBTyxHQUFHYixlQUFlLENBQUNJLGtCQUFELENBQS9CO0FBRUFTLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQkMsR0FBbkIsQ0FBd0JDLFdBQUQsSUFDckJqQixNQUFNLENBQUNrQixjQUFQLENBQ0doQixlQUFELENBQ0VlLFdBREYsQ0FERixFQUlFRSxTQUpGLEVBS0csNEJBQTJCRixXQUFZLEVBTDFDLENBREY7QUFTQSxNQUFNRyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQk0sTUFBbkIsQ0FDdEIsQ0FBQ0QsZUFBRCxFQUFtQ0gsV0FBbkMsS0FDRUcsZUFBZSxHQUNkbEIsZUFBRCxDQUNFZSxXQURGLENBSG9CLEVBTXRCZixlQUFlLENBQUNvQixJQU5NLENBQXhCO0FBU0FuQixpQkFBaUIsQ0FBQ1csT0FBTyxDQUFDUyxPQUFULEVBQWtCSCxlQUFsQixFQUFtQ2hCLFdBQVcsQ0FBQ29CLEdBQS9DLEVBQW9EO0VBQ25FQyxHQUFHLEVBQUU7QUFEOEQsQ0FBcEQsQ0FBakIifQ==
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImRlZmF1bHRWYWx1ZSIsImhlbHAiLCJtdWx0aXBsZSIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsIkVuYWJsZWREYXRhc2V0cyIsInVuZGVmaW5lZCIsImVuYWJsZWREYXRhc2V0cyIsInJlZHVjZSIsIk5vbmUiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImRhdGFEaXIiLCJMZWdpc2xhdHVyZSIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTG9hZCBhbGwgc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGEob3B0aW9ucy5kYXRhRGlyLCBlbmFibGVkRGF0YXNldHMsIExlZ2lzbGF0dXJlLkFsbCwge1xuICBsb2c6IHRydWUsXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOzs7O0FBUEE7QUFTQSxJQUFNQSxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxZQUFZLEVBQUUsQ0FBQyxLQUFELENBRmhCO0VBR0VDLElBQUksRUFBRSxzQ0FIUjtFQUlFQyxRQUFRLEVBQUUsSUFKWjtFQUtFQyxJQUFJLEVBQUUsWUFMUjtFQU1FQyxJQUFJLEVBQUVDO0FBTlIsQ0FEeUIsRUFTekI7RUFDRUMsYUFBYSxFQUFFLElBRGpCO0VBRUVMLElBQUksRUFBRSxnREFGUjtFQUdFRSxJQUFJLEVBQUUsU0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FUeUIsQ0FBM0I7QUFnQkEsSUFBTUUsT0FBTyxHQUFHLElBQUFDLDJCQUFBLEVBQWdCVixrQkFBaEIsQ0FBaEI7QUFFQVMsT0FBTyxDQUFDRSxVQUFSLENBQW1CQyxHQUFuQixDQUF1QixVQUFDQyxXQUFEO0VBQUEsT0FDckJDLGtCQUFBLENBQU9DLGNBQVAsQ0FDR0MseUJBQUQsQ0FDRUgsV0FERixDQURGLEVBSUVJLFNBSkYscUNBSzhCSixXQUw5QixFQURxQjtBQUFBLENBQXZCO0FBU0EsSUFBTUssZUFBZSxHQUFHVCxPQUFPLENBQUNFLFVBQVIsQ0FBbUJRLE1BQW5CLENBQ3RCLFVBQUNELGVBQUQsRUFBbUNMLFdBQW5DO0VBQUEsT0FDRUssZUFBZSxHQUNkRix5QkFBRCxDQUNFSCxXQURGLENBRkY7QUFBQSxDQURzQixFQU10QkcseUJBQUEsQ0FBZ0JJLElBTk0sQ0FBeEI7QUFTQSxJQUFBQywwQkFBQSxFQUFrQlosT0FBTyxDQUFDYSxPQUExQixFQUFtQ0osZUFBbkMsRUFBb0RLLHlCQUFBLENBQVlDLEdBQWhFLEVBQXFFO0VBQ25FQyxHQUFHLEVBQUU7QUFEOEQsQ0FBckUifQ==
@@ -0,0 +1,26 @@
1
+ /** Load all split open data files in RAM as a test. */
2
+ import assert from "assert";
3
+ import commandLineArgs from "command-line-args";
4
+ import { EnabledDatasets } from "../datasets.mjs";
5
+ import { loadAssembleeData } from "../loaders.mjs";
6
+ import { Legislature } from "../types/legislatures.mjs";
7
+ const optionsDefinitions = [{
8
+ alias: "k",
9
+ defaultValue: ["All"],
10
+ help: "categories of datasets to reorganize",
11
+ multiple: true,
12
+ name: "categories",
13
+ type: String
14
+ }, {
15
+ defaultOption: true,
16
+ help: "directory containing Assemblée open data files",
17
+ name: "dataDir",
18
+ type: String
19
+ }];
20
+ const options = commandLineArgs(optionsDefinitions);
21
+ options.categories.map(datasetName => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
22
+ const enabledDatasets = options.categories.reduce((enabledDatasets, datasetName) => enabledDatasets | EnabledDatasets[datasetName], EnabledDatasets.None);
23
+ loadAssembleeData(options.dataDir, enabledDatasets, Legislature.All, {
24
+ log: true
25
+ });
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkxlZ2lzbGF0dXJlIiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJoZWxwIiwibXVsdGlwbGUiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY2F0ZWdvcmllcyIsIm1hcCIsImRhdGFzZXROYW1lIiwibm90U3RyaWN0RXF1YWwiLCJ1bmRlZmluZWQiLCJlbmFibGVkRGF0YXNldHMiLCJyZWR1Y2UiLCJOb25lIiwiZGF0YURpciIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogTG9hZCBhbGwgc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGEob3B0aW9ucy5kYXRhRGlyLCBlbmFibGVkRGF0YXNldHMsIExlZ2lzbGF0dXJlLkFsbCwge1xuICBsb2c6IHRydWUsXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUVBLE9BQU9BLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxlQUFQLE1BQTRCLG1CQUE1QjtTQUVTQyxlO1NBQ0FDLGlCO1NBQ0FDLFc7QUFFVCxNQUFNQyxrQkFBa0IsR0FBRyxDQUN6QjtFQUNFQyxLQUFLLEVBQUUsR0FEVDtFQUVFQyxZQUFZLEVBQUUsQ0FBQyxLQUFELENBRmhCO0VBR0VDLElBQUksRUFBRSxzQ0FIUjtFQUlFQyxRQUFRLEVBQUUsSUFKWjtFQUtFQyxJQUFJLEVBQUUsWUFMUjtFQU1FQyxJQUFJLEVBQUVDO0FBTlIsQ0FEeUIsRUFTekI7RUFDRUMsYUFBYSxFQUFFLElBRGpCO0VBRUVMLElBQUksRUFBRSxnREFGUjtFQUdFRSxJQUFJLEVBQUUsU0FIUjtFQUlFQyxJQUFJLEVBQUVDO0FBSlIsQ0FUeUIsQ0FBM0I7QUFnQkEsTUFBTUUsT0FBTyxHQUFHYixlQUFlLENBQUNJLGtCQUFELENBQS9CO0FBRUFTLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQkMsR0FBbkIsQ0FBd0JDLFdBQUQsSUFDckJqQixNQUFNLENBQUNrQixjQUFQLENBQ0doQixlQUFELENBQ0VlLFdBREYsQ0FERixFQUlFRSxTQUpGLEVBS0csNEJBQTJCRixXQUFZLEVBTDFDLENBREY7QUFTQSxNQUFNRyxlQUFlLEdBQUdOLE9BQU8sQ0FBQ0MsVUFBUixDQUFtQk0sTUFBbkIsQ0FDdEIsQ0FBQ0QsZUFBRCxFQUFtQ0gsV0FBbkMsS0FDRUcsZUFBZSxHQUNkbEIsZUFBRCxDQUNFZSxXQURGLENBSG9CLEVBTXRCZixlQUFlLENBQUNvQixJQU5NLENBQXhCO0FBU0FuQixpQkFBaUIsQ0FBQ1csT0FBTyxDQUFDUyxPQUFULEVBQWtCSCxlQUFsQixFQUFtQ2hCLFdBQVcsQ0FBQ29CLEdBQS9DLEVBQW9EO0VBQ25FQyxHQUFHLEVBQUU7QUFEOEQsQ0FBcEQsQ0FBakIifQ==
@@ -1,10 +1,25 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.map.js");
4
+
5
+ require("core-js/modules/es.array.reduce.js");
6
+
7
+ require("core-js/modules/es.object.to-string.js");
8
+
9
+ var _assert = _interopRequireDefault(require("assert"));
10
+
11
+ var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
12
+
13
+ var _datasets = require("../datasets");
14
+
15
+ var _loaders = require("../loaders");
16
+
17
+ var _legislatures = require("../types/legislatures");
18
+
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
+
1
21
  /** Load all big non-split open data files in RAM as a test. */
2
- import assert from "assert";
3
- import commandLineArgs from "command-line-args";
4
- import { EnabledDatasets } from "../datasets.js";
5
- import { loadAssembleeDataFromBigFiles } from "../loaders.js";
6
- import { Legislature } from "../types/legislatures.js";
7
- const optionsDefinitions = [{
22
+ var optionsDefinitions = [{
8
23
  alias: "k",
9
24
  defaultValue: ["All"],
10
25
  help: "categories of datasets to reorganize",
@@ -17,10 +32,14 @@ const optionsDefinitions = [{
17
32
  name: "dataDir",
18
33
  type: String
19
34
  }];
20
- const options = commandLineArgs(optionsDefinitions);
21
- options.categories.map(datasetName => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
22
- const enabledDatasets = options.categories.reduce((enabledDatasets, datasetName) => enabledDatasets | EnabledDatasets[datasetName], EnabledDatasets.None);
23
- loadAssembleeDataFromBigFiles(options.dataDir, enabledDatasets, Legislature.All, {
35
+ var options = (0, _commandLineArgs["default"])(optionsDefinitions);
36
+ options.categories.map(function (datasetName) {
37
+ return _assert["default"].notStrictEqual(_datasets.EnabledDatasets[datasetName], undefined, "Unknown name of dataset: ".concat(datasetName));
38
+ });
39
+ var enabledDatasets = options.categories.reduce(function (enabledDatasets, datasetName) {
40
+ return enabledDatasets | _datasets.EnabledDatasets[datasetName];
41
+ }, _datasets.EnabledDatasets.None);
42
+ (0, _loaders.loadAssembleeDataFromBigFiles)(options.dataDir, enabledDatasets, _legislatures.Legislature.All, {
24
43
  log: true
25
44
  });
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIkxlZ2lzbGF0dXJlIiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJoZWxwIiwibXVsdGlwbGUiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY2F0ZWdvcmllcyIsIm1hcCIsImRhdGFzZXROYW1lIiwibm90U3RyaWN0RXF1YWwiLCJ1bmRlZmluZWQiLCJlbmFibGVkRGF0YXNldHMiLCJyZWR1Y2UiLCJOb25lIiwiZGF0YURpciIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZF9iaWdfZmlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIExvYWQgYWxsIGJpZyBub24tc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMoXG4gIG9wdGlvbnMuZGF0YURpcixcbiAgZW5hYmxlZERhdGFzZXRzLFxuICBMZWdpc2xhdHVyZS5BbGwsXG4gIHtcbiAgICBsb2c6IHRydWUsXG4gIH0sXG4pXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBRUEsT0FBT0EsTUFBUCxNQUFtQixRQUFuQjtBQUNBLE9BQU9DLGVBQVAsTUFBNEIsbUJBQTVCO1NBRVNDLGU7U0FDQUMsNkI7U0FDQUMsVztBQUVULE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQURUO0VBRUVDLFlBQVksRUFBRSxDQUFDLEtBQUQsQ0FGaEI7RUFHRUMsSUFBSSxFQUFFLHNDQUhSO0VBSUVDLFFBQVEsRUFBRSxJQUpaO0VBS0VDLElBQUksRUFBRSxZQUxSO0VBTUVDLElBQUksRUFBRUM7QUFOUixDQUR5QixFQVN6QjtFQUNFQyxhQUFhLEVBQUUsSUFEakI7RUFFRUwsSUFBSSxFQUFFLGdEQUZSO0VBR0VFLElBQUksRUFBRSxTQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQVR5QixDQUEzQjtBQWdCQSxNQUFNRSxPQUFPLEdBQUdiLGVBQWUsQ0FBQ0ksa0JBQUQsQ0FBL0I7QUFFQVMsT0FBTyxDQUFDQyxVQUFSLENBQW1CQyxHQUFuQixDQUF3QkMsV0FBRCxJQUNyQmpCLE1BQU0sQ0FBQ2tCLGNBQVAsQ0FDR2hCLGVBQUQsQ0FDRWUsV0FERixDQURGLEVBSUVFLFNBSkYsRUFLRyw0QkFBMkJGLFdBQVksRUFMMUMsQ0FERjtBQVNBLE1BQU1HLGVBQWUsR0FBR04sT0FBTyxDQUFDQyxVQUFSLENBQW1CTSxNQUFuQixDQUN0QixDQUFDRCxlQUFELEVBQW1DSCxXQUFuQyxLQUNFRyxlQUFlLEdBQ2RsQixlQUFELENBQ0VlLFdBREYsQ0FIb0IsRUFNdEJmLGVBQWUsQ0FBQ29CLElBTk0sQ0FBeEI7QUFTQW5CLDZCQUE2QixDQUMzQlcsT0FBTyxDQUFDUyxPQURtQixFQUUzQkgsZUFGMkIsRUFHM0JoQixXQUFXLENBQUNvQixHQUhlLEVBSTNCO0VBQ0VDLEdBQUcsRUFBRTtBQURQLENBSjJCLENBQTdCIn0=
45
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImRlZmF1bHRWYWx1ZSIsImhlbHAiLCJtdWx0aXBsZSIsIm5hbWUiLCJ0eXBlIiwiU3RyaW5nIiwiZGVmYXVsdE9wdGlvbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJjYXRlZ29yaWVzIiwibWFwIiwiZGF0YXNldE5hbWUiLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsIkVuYWJsZWREYXRhc2V0cyIsInVuZGVmaW5lZCIsImVuYWJsZWREYXRhc2V0cyIsInJlZHVjZSIsIk5vbmUiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsImRhdGFEaXIiLCJMZWdpc2xhdHVyZSIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZF9iaWdfZmlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIExvYWQgYWxsIGJpZyBub24tc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMoXG4gIG9wdGlvbnMuZGF0YURpcixcbiAgZW5hYmxlZERhdGFzZXRzLFxuICBMZWdpc2xhdHVyZS5BbGwsXG4gIHtcbiAgICBsb2c6IHRydWUsXG4gIH0sXG4pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7QUFQQTtBQVNBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQURUO0VBRUVDLFlBQVksRUFBRSxDQUFDLEtBQUQsQ0FGaEI7RUFHRUMsSUFBSSxFQUFFLHNDQUhSO0VBSUVDLFFBQVEsRUFBRSxJQUpaO0VBS0VDLElBQUksRUFBRSxZQUxSO0VBTUVDLElBQUksRUFBRUM7QUFOUixDQUR5QixFQVN6QjtFQUNFQyxhQUFhLEVBQUUsSUFEakI7RUFFRUwsSUFBSSxFQUFFLGdEQUZSO0VBR0VFLElBQUksRUFBRSxTQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQVR5QixDQUEzQjtBQWdCQSxJQUFNRSxPQUFPLEdBQUcsSUFBQUMsMkJBQUEsRUFBZ0JWLGtCQUFoQixDQUFoQjtBQUVBUyxPQUFPLENBQUNFLFVBQVIsQ0FBbUJDLEdBQW5CLENBQXVCLFVBQUNDLFdBQUQ7RUFBQSxPQUNyQkMsa0JBQUEsQ0FBT0MsY0FBUCxDQUNHQyx5QkFBRCxDQUNFSCxXQURGLENBREYsRUFJRUksU0FKRixxQ0FLOEJKLFdBTDlCLEVBRHFCO0FBQUEsQ0FBdkI7QUFTQSxJQUFNSyxlQUFlLEdBQUdULE9BQU8sQ0FBQ0UsVUFBUixDQUFtQlEsTUFBbkIsQ0FDdEIsVUFBQ0QsZUFBRCxFQUFtQ0wsV0FBbkM7RUFBQSxPQUNFSyxlQUFlLEdBQ2RGLHlCQUFELENBQ0VILFdBREYsQ0FGRjtBQUFBLENBRHNCLEVBTXRCRyx5QkFBQSxDQUFnQkksSUFOTSxDQUF4QjtBQVNBLElBQUFDLHNDQUFBLEVBQ0VaLE9BQU8sQ0FBQ2EsT0FEVixFQUVFSixlQUZGLEVBR0VLLHlCQUFBLENBQVlDLEdBSGQsRUFJRTtFQUNFQyxHQUFHLEVBQUU7QUFEUCxDQUpGIn0=
@@ -0,0 +1,26 @@
1
+ /** Load all big non-split open data files in RAM as a test. */
2
+ import assert from "assert";
3
+ import commandLineArgs from "command-line-args";
4
+ import { EnabledDatasets } from "../datasets.mjs";
5
+ import { loadAssembleeDataFromBigFiles } from "../loaders.mjs";
6
+ import { Legislature } from "../types/legislatures.mjs";
7
+ const optionsDefinitions = [{
8
+ alias: "k",
9
+ defaultValue: ["All"],
10
+ help: "categories of datasets to reorganize",
11
+ multiple: true,
12
+ name: "categories",
13
+ type: String
14
+ }, {
15
+ defaultOption: true,
16
+ help: "directory containing Assemblée open data files",
17
+ name: "dataDir",
18
+ type: String
19
+ }];
20
+ const options = commandLineArgs(optionsDefinitions);
21
+ options.categories.map(datasetName => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
22
+ const enabledDatasets = options.categories.reduce((enabledDatasets, datasetName) => enabledDatasets | EnabledDatasets[datasetName], EnabledDatasets.None);
23
+ loadAssembleeDataFromBigFiles(options.dataDir, enabledDatasets, Legislature.All, {
24
+ log: true
25
+ });
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJFbmFibGVkRGF0YXNldHMiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIkxlZ2lzbGF0dXJlIiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJoZWxwIiwibXVsdGlwbGUiLCJuYW1lIiwidHlwZSIsIlN0cmluZyIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY2F0ZWdvcmllcyIsIm1hcCIsImRhdGFzZXROYW1lIiwibm90U3RyaWN0RXF1YWwiLCJ1bmRlZmluZWQiLCJlbmFibGVkRGF0YXNldHMiLCJyZWR1Y2UiLCJOb25lIiwiZGF0YURpciIsIkFsbCIsImxvZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3Rlc3RfbG9hZF9iaWdfZmlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIExvYWQgYWxsIGJpZyBub24tc3BsaXQgb3BlbiBkYXRhIGZpbGVzIGluIFJBTSBhcyBhIHRlc3QuICovXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IExlZ2lzbGF0dXJlIH0gZnJvbSBcIi4uL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcImtcIixcbiAgICBkZWZhdWx0VmFsdWU6IFtcIkFsbFwiXSxcbiAgICBoZWxwOiBcImNhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwiY2F0ZWdvcmllc1wiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuXG5vcHRpb25zLmNhdGVnb3JpZXMubWFwKChkYXRhc2V0TmFtZTogc3RyaW5nKSA9PlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgVW5rbm93biBuYW1lIG9mIGRhdGFzZXQ6ICR7ZGF0YXNldE5hbWV9YCxcbiAgKSxcbilcbmNvbnN0IGVuYWJsZWREYXRhc2V0cyA9IG9wdGlvbnMuY2F0ZWdvcmllcy5yZWR1Y2UoXG4gIChlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cywgZGF0YXNldE5hbWU6IHN0cmluZyk6IEVuYWJsZWREYXRhc2V0cyA9PlxuICAgIGVuYWJsZWREYXRhc2V0cyB8XG4gICAgKEVuYWJsZWREYXRhc2V0cyBhcyBhbnkgYXMgeyBbbmFtZTogc3RyaW5nXTogRW5hYmxlZERhdGFzZXRzIH0pW1xuICAgICAgZGF0YXNldE5hbWVcbiAgICBdLFxuICBFbmFibGVkRGF0YXNldHMuTm9uZSxcbilcblxubG9hZEFzc2VtYmxlZURhdGFGcm9tQmlnRmlsZXMoXG4gIG9wdGlvbnMuZGF0YURpcixcbiAgZW5hYmxlZERhdGFzZXRzLFxuICBMZWdpc2xhdHVyZS5BbGwsXG4gIHtcbiAgICBsb2c6IHRydWUsXG4gIH0sXG4pXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBRUEsT0FBT0EsTUFBUCxNQUFtQixRQUFuQjtBQUNBLE9BQU9DLGVBQVAsTUFBNEIsbUJBQTVCO1NBRVNDLGU7U0FDQUMsNkI7U0FDQUMsVztBQUVULE1BQU1DLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQURUO0VBRUVDLFlBQVksRUFBRSxDQUFDLEtBQUQsQ0FGaEI7RUFHRUMsSUFBSSxFQUFFLHNDQUhSO0VBSUVDLFFBQVEsRUFBRSxJQUpaO0VBS0VDLElBQUksRUFBRSxZQUxSO0VBTUVDLElBQUksRUFBRUM7QUFOUixDQUR5QixFQVN6QjtFQUNFQyxhQUFhLEVBQUUsSUFEakI7RUFFRUwsSUFBSSxFQUFFLGdEQUZSO0VBR0VFLElBQUksRUFBRSxTQUhSO0VBSUVDLElBQUksRUFBRUM7QUFKUixDQVR5QixDQUEzQjtBQWdCQSxNQUFNRSxPQUFPLEdBQUdiLGVBQWUsQ0FBQ0ksa0JBQUQsQ0FBL0I7QUFFQVMsT0FBTyxDQUFDQyxVQUFSLENBQW1CQyxHQUFuQixDQUF3QkMsV0FBRCxJQUNyQmpCLE1BQU0sQ0FBQ2tCLGNBQVAsQ0FDR2hCLGVBQUQsQ0FDRWUsV0FERixDQURGLEVBSUVFLFNBSkYsRUFLRyw0QkFBMkJGLFdBQVksRUFMMUMsQ0FERjtBQVNBLE1BQU1HLGVBQWUsR0FBR04sT0FBTyxDQUFDQyxVQUFSLENBQW1CTSxNQUFuQixDQUN0QixDQUFDRCxlQUFELEVBQW1DSCxXQUFuQyxLQUNFRyxlQUFlLEdBQ2RsQixlQUFELENBQ0VlLFdBREYsQ0FIb0IsRUFNdEJmLGVBQWUsQ0FBQ29CLElBTk0sQ0FBeEI7QUFTQW5CLDZCQUE2QixDQUMzQlcsT0FBTyxDQUFDUyxPQURtQixFQUUzQkgsZUFGMkIsRUFHM0JoQixXQUFXLENBQUNvQixHQUhlLEVBSTNCO0VBQ0VDLEdBQUcsRUFBRTtBQURQLENBSjJCLENBQTdCIn0=