@tricoteuses/assemblee 1.7.0 → 1.7.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.
Files changed (127) hide show
  1. package/README.md +9 -27
  2. package/lib/bugs/acteur-00010/plugin.test.js +4 -4
  3. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  4. package/lib/bugs/acteur-00010.js +15 -16
  5. package/lib/bugs/acteur-00010.mjs +1 -1
  6. package/lib/bugs/agenda-00002/plugin.test.js +4 -4
  7. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  8. package/lib/bugs/agenda-00002.js +27 -28
  9. package/lib/bugs/agenda-00002.mjs +3 -3
  10. package/lib/bugs/agenda-00008/plugin.test.js +4 -4
  11. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  12. package/lib/bugs/agenda-00008.js +15 -16
  13. package/lib/bugs/agenda-00008.mjs +1 -1
  14. package/lib/bugs/agenda-00011/plugin.test.js +5 -5
  15. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  16. package/lib/bugs/agenda-00011.js +21 -22
  17. package/lib/bugs/agenda-00011.mjs +3 -3
  18. package/lib/bugs.js +17 -19
  19. package/lib/bugs.mjs +3 -3
  20. package/lib/cleaners/actes_legislatifs.js +5 -5
  21. package/lib/cleaners/acteurs.js +5 -5
  22. package/lib/cleaners/acteurs.mjs +1 -1
  23. package/lib/cleaners/amendements.js +5 -5
  24. package/lib/cleaners/documents.js +5 -5
  25. package/lib/cleaners/dossiers_legislatifs.js +5 -5
  26. package/lib/cleaners/organes.js +2 -2
  27. package/lib/cleaners/reunions.js +5 -5
  28. package/lib/cleaners/scrutins.js +8 -8
  29. package/lib/cleaners/xml.js +8 -8
  30. package/lib/cleaners/xml.mjs +1 -1
  31. package/lib/datasets.d.ts +2 -2
  32. package/lib/datasets.js +53 -132
  33. package/lib/datasets.mjs +40 -118
  34. package/lib/dates.js +1 -2
  35. package/lib/dossiers_legislatifs.js +8 -8
  36. package/lib/file_systems.js +15 -14
  37. package/lib/file_systems.mjs +3 -3
  38. package/lib/git.d.ts +1 -0
  39. package/lib/git.js +21 -5
  40. package/lib/git.mjs +16 -1
  41. package/lib/inserters.js +3 -3
  42. package/lib/loaders.d.ts +14 -40
  43. package/lib/loaders.js +580 -1086
  44. package/lib/loaders.mjs +110 -353
  45. package/lib/parsers/documents.js +10 -10
  46. package/lib/parsers/documents.mjs +1 -1
  47. package/lib/parsers/recherche_amendements.js +17 -15
  48. package/lib/parsers/recherche_amendements.mjs +1 -1
  49. package/lib/raw_types/acteurs_et_organes.js +9 -9
  50. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  51. package/lib/raw_types/agendas.js +9 -9
  52. package/lib/raw_types/agendas.mjs +1 -1
  53. package/lib/raw_types/amendements.js +9 -9
  54. package/lib/raw_types/amendements.mjs +1 -1
  55. package/lib/raw_types/debats.d.ts +26 -78
  56. package/lib/raw_types/debats.js +49 -242
  57. package/lib/raw_types/debats.mjs +41 -234
  58. package/lib/raw_types/dossiers_legislatifs.js +9 -9
  59. package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
  60. package/lib/raw_types/questions.js +9 -9
  61. package/lib/raw_types/questions.mjs +1 -1
  62. package/lib/raw_types/scrutins.js +9 -9
  63. package/lib/raw_types/scrutins.mjs +1 -1
  64. package/lib/scripts/bugs_helper.js +17 -18
  65. package/lib/scripts/bugs_helper.mjs +3 -3
  66. package/lib/scripts/clean_reorganized_data.js +183 -561
  67. package/lib/scripts/clean_reorganized_data.mjs +111 -410
  68. package/lib/scripts/diff_amendements.js +11 -24
  69. package/lib/scripts/diff_amendements.mjs +3 -17
  70. package/lib/scripts/document_dossiers_legislatifs.js +24 -27
  71. package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
  72. package/lib/scripts/get_today_reunions.js +5 -8
  73. package/lib/scripts/get_today_reunions.mjs +3 -7
  74. package/lib/scripts/merge_scrutins.js +11 -24
  75. package/lib/scripts/merge_scrutins.mjs +3 -17
  76. package/lib/scripts/parse_textes_lois.js +8 -38
  77. package/lib/scripts/parse_textes_lois.mjs +3 -33
  78. package/lib/scripts/raw_types_from_amendements.js +14 -27
  79. package/lib/scripts/raw_types_from_amendements.mjs +3 -17
  80. package/lib/scripts/reorganize_data.js +204 -456
  81. package/lib/scripts/reorganize_data.mjs +68 -260
  82. package/lib/scripts/retrieve_deputes_photos.d.ts +3 -1
  83. package/lib/scripts/retrieve_deputes_photos.js +146 -172
  84. package/lib/scripts/retrieve_deputes_photos.mjs +74 -98
  85. package/lib/scripts/retrieve_documents.js +207 -156
  86. package/lib/scripts/retrieve_documents.mjs +116 -128
  87. package/lib/scripts/retrieve_open_data.js +272 -249
  88. package/lib/scripts/retrieve_open_data.mjs +109 -123
  89. package/lib/scripts/retrieve_pending_amendments.js +16 -67
  90. package/lib/scripts/retrieve_pending_amendments.mjs +4 -55
  91. package/lib/scripts/retrieve_senateurs_photos.js +20 -77
  92. package/lib/scripts/retrieve_senateurs_photos.mjs +5 -61
  93. package/lib/scripts/retrieve_textes_lois.js +18 -46
  94. package/lib/scripts/retrieve_textes_lois.mjs +3 -33
  95. package/lib/scripts/shared/cli_helpers.d.ts +66 -0
  96. package/lib/scripts/shared/cli_helpers.js +90 -0
  97. package/lib/scripts/shared/cli_helpers.mjs +72 -0
  98. package/lib/scripts/test_iter_load.d.ts +1 -0
  99. package/lib/scripts/test_iter_load.js +154 -0
  100. package/lib/scripts/test_iter_load.mjs +71 -0
  101. package/lib/scripts/test_load.js +4 -15
  102. package/lib/scripts/test_load.mjs +3 -14
  103. package/lib/scripts/test_load_big_files.js +4 -15
  104. package/lib/scripts/test_load_big_files.mjs +3 -14
  105. package/lib/scripts/validate_json.js +15 -16
  106. package/lib/scripts/validate_json.mjs +3 -3
  107. package/lib/types/acteurs_et_organes.js +9 -9
  108. package/lib/types/acteurs_et_organes.mjs +1 -1
  109. package/lib/types/agendas.js +9 -9
  110. package/lib/types/agendas.mjs +1 -1
  111. package/lib/types/amendements.js +9 -9
  112. package/lib/types/amendements.mjs +1 -1
  113. package/lib/types/debats.d.ts +27 -79
  114. package/lib/types/debats.js +48 -241
  115. package/lib/types/debats.mjs +40 -233
  116. package/lib/types/dossiers_legislatifs.js +9 -9
  117. package/lib/types/dossiers_legislatifs.mjs +1 -1
  118. package/lib/types/legislatures.d.ts +4 -4
  119. package/lib/types/legislatures.js +5 -5
  120. package/lib/types/legislatures.mjs +5 -5
  121. package/lib/types/questions.js +9 -9
  122. package/lib/types/questions.mjs +1 -1
  123. package/lib/types/scrutins.js +9 -9
  124. package/lib/types/scrutins.mjs +1 -1
  125. package/lib/urls.js +2 -2
  126. package/lib/urls.mjs +1 -1
  127. package/package.json +9 -7
@@ -1,5 +1,5 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
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
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
4
  import { glob } from "glob";
5
5
  import fs from "fs-extra";
@@ -58,4 +58,4 @@ export function getFiles(args) {
58
58
  args.forEach(_getFiles);
59
59
  return files;
60
60
  }
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iIiwiZnMiLCJwYXRoIiwid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiZGlyIiwiam9pbiIsImV4aXN0c1N5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwiZmlsZVBhdGgiLCJyZWxhdGl2ZVNwbGl0UGF0aCIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJsb2FkIiwicmF3anNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwid3JpdGUiLCJzb21ldGhpbmciLCJjb250ZW50Iiwic3RyaW5naWZ5IiwiZW5zdXJlRGlyU3luYyIsImRpcm5hbWUiLCJ3cml0ZUZpbGVTeW5jIiwiR2V0RmlsZU5vdEZvdW5kRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRGaWxlcyIsImFyZ3MiLCJmaWxlcyIsIl9nZXRGaWxlcyIsImZpbGVPclBhdHRlcm4iLCJoYXNNYWdpYyIsImRhdGFGaWxlcyIsImdsb2JTeW5jIiwiY3dkIiwicHJvY2VzcyIsImxlbmd0aCIsImNvbmNhdCIsInB1c2giLCJmb3JFYWNoIl0sInNvdXJjZXMiOlsiLi4vc3JjL2ZpbGVfc3lzdGVtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnbG9iIH0gZnJvbSBcImdsb2JcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBmdW5jdGlvbiogd2Fsa0RpcihcbiAgcm9vdERpcjogc3RyaW5nLFxuICByZWxhdGl2ZVNwbGl0RGlyOiBzdHJpbmdbXSA9IFtdLFxuKTogSXRlcmFibGU8c3RyaW5nW10+IHtcbiAgY29uc3QgZGlyID0gcGF0aC5qb2luKHJvb3REaXIsIC4uLnJlbGF0aXZlU3BsaXREaXIpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmMoZGlyKSkge1xuICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRpciwgZmlsZW5hbWUpXG4gICAgY29uc3QgcmVsYXRpdmVTcGxpdFBhdGggPSBbLi4ucmVsYXRpdmVTcGxpdERpciwgZmlsZW5hbWVdXG4gICAgaWYgKGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB5aWVsZCogd2Fsa0Rpcihyb290RGlyLCByZWxhdGl2ZVNwbGl0UGF0aClcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgcmVsYXRpdmVTcGxpdFBhdGhcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcmF3anNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKHJhd2pzb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZShzb21ldGhpbmc6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb21ldGhpbmcsIG51bGwsIDIpXG4gIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgY29udGVudCwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbn1cblxuZXhwb3J0IGNsYXNzIEdldEZpbGVOb3RGb3VuZEVycm9yIHtcbiAgbWVzc2FnZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlcyhhcmdzOiBhbnkpOiBhbnkge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW11cbiAgZnVuY3Rpb24gX2dldEZpbGVzKGZpbGVPclBhdHRlcm46IGFueSkge1xuICAgIGlmIChnbG9iLmhhc01hZ2ljKGZpbGVPclBhdHRlcm4pKSB7XG4gICAgICBjb25zdCBkYXRhRmlsZXMgPSBnbG9iLmdsb2JTeW5jKGZpbGVPclBhdHRlcm4sIHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pXG4gICAgICBpZiAoZGF0YUZpbGVzLmxlbmd0aCA8PSAwKVxuICAgICAgICB0aHJvdyBuZXcgR2V0RmlsZU5vdEZvdW5kRXJyb3IoYCR7ZmlsZU9yUGF0dGVybn0gZ2xvYiBkb2VzIG5vdCBtYXRjaGApXG4gICAgICBmaWxlcyA9IGZpbGVzLmNvbmNhdChkYXRhRmlsZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzLnB1c2goZmlsZU9yUGF0dGVybilcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlT3JQYXR0ZXJuKSlcbiAgICAgICAgdGhyb3cgbmV3IEdldEZpbGVOb3RGb3VuZEVycm9yKGAke2ZpbGVPclBhdHRlcm59IGZpbGUgZG9lcyBub3QgZXhpc3RgKVxuICAgIH1cbiAgfVxuICBhcmdzLmZvckVhY2goX2dldEZpbGVzKVxuICByZXR1cm4gZmlsZXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsSUFBSSxRQUFRLE1BQU07QUFDM0IsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFFdkIsT0FBTyxVQUFVQyxPQUFPQSxDQUN0QkMsT0FBZSxFQUNmQyxnQkFBMEIsR0FBRyxFQUFFLEVBQ1g7RUFDcEIsTUFBTUMsR0FBRyxHQUFHSixJQUFJLENBQUNLLElBQUksQ0FBQ0gsT0FBTyxFQUFFLEdBQUdDLGdCQUFnQixDQUFDO0VBRW5ELElBQUksQ0FBQ0osRUFBRSxDQUFDTyxVQUFVLENBQUNGLEdBQUcsQ0FBQyxFQUFF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
61
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iIiwiZnMiLCJwYXRoIiwid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiZGlyIiwiam9pbiIsImV4aXN0c1N5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwiZmlsZVBhdGgiLCJyZWxhdGl2ZVNwbGl0UGF0aCIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJsb2FkIiwicmF3anNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwid3JpdGUiLCJzb21ldGhpbmciLCJjb250ZW50Iiwic3RyaW5naWZ5IiwiZW5zdXJlRGlyU3luYyIsImRpcm5hbWUiLCJ3cml0ZUZpbGVTeW5jIiwiR2V0RmlsZU5vdEZvdW5kRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRGaWxlcyIsImFyZ3MiLCJmaWxlcyIsIl9nZXRGaWxlcyIsImZpbGVPclBhdHRlcm4iLCJoYXNNYWdpYyIsImRhdGFGaWxlcyIsImdsb2JTeW5jIiwiY3dkIiwicHJvY2VzcyIsImxlbmd0aCIsImNvbmNhdCIsInB1c2giLCJmb3JFYWNoIl0sInNvdXJjZXMiOlsiLi4vc3JjL2ZpbGVfc3lzdGVtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnbG9iIH0gZnJvbSBcImdsb2JcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBmdW5jdGlvbiogd2Fsa0RpcihcbiAgcm9vdERpcjogc3RyaW5nLFxuICByZWxhdGl2ZVNwbGl0RGlyOiBzdHJpbmdbXSA9IFtdLFxuKTogSXRlcmFibGU8c3RyaW5nW10+IHtcbiAgY29uc3QgZGlyID0gcGF0aC5qb2luKHJvb3REaXIsIC4uLnJlbGF0aXZlU3BsaXREaXIpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmMoZGlyKSkge1xuICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRpciwgZmlsZW5hbWUpXG4gICAgY29uc3QgcmVsYXRpdmVTcGxpdFBhdGggPSBbLi4ucmVsYXRpdmVTcGxpdERpciwgZmlsZW5hbWVdXG4gICAgaWYgKGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB5aWVsZCogd2Fsa0Rpcihyb290RGlyLCByZWxhdGl2ZVNwbGl0UGF0aClcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgcmVsYXRpdmVTcGxpdFBhdGhcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcmF3anNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKHJhd2pzb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZShzb21ldGhpbmc6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb21ldGhpbmcsIG51bGwsIDIpXG4gIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgY29udGVudCwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbn1cblxuZXhwb3J0IGNsYXNzIEdldEZpbGVOb3RGb3VuZEVycm9yIHtcbiAgbWVzc2FnZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlcyhhcmdzOiBhbnkpOiBhbnkge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW11cbiAgZnVuY3Rpb24gX2dldEZpbGVzKGZpbGVPclBhdHRlcm46IGFueSkge1xuICAgIGlmIChnbG9iLmhhc01hZ2ljKGZpbGVPclBhdHRlcm4pKSB7XG4gICAgICBjb25zdCBkYXRhRmlsZXMgPSBnbG9iLmdsb2JTeW5jKGZpbGVPclBhdHRlcm4sIHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pXG4gICAgICBpZiAoZGF0YUZpbGVzLmxlbmd0aCA8PSAwKVxuICAgICAgICB0aHJvdyBuZXcgR2V0RmlsZU5vdEZvdW5kRXJyb3IoYCR7ZmlsZU9yUGF0dGVybn0gZ2xvYiBkb2VzIG5vdCBtYXRjaGApXG4gICAgICBmaWxlcyA9IGZpbGVzLmNvbmNhdChkYXRhRmlsZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzLnB1c2goZmlsZU9yUGF0dGVybilcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlT3JQYXR0ZXJuKSlcbiAgICAgICAgdGhyb3cgbmV3IEdldEZpbGVOb3RGb3VuZEVycm9yKGAke2ZpbGVPclBhdHRlcm59IGZpbGUgZG9lcyBub3QgZXhpc3RgKVxuICAgIH1cbiAgfVxuICBhcmdzLmZvckVhY2goX2dldEZpbGVzKVxuICByZXR1cm4gZmlsZXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsSUFBSSxRQUFRLE1BQU07QUFDM0IsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFFdkIsT0FBTyxVQUFVQyxPQUFPQSxDQUN0QkMsT0FBZSxFQUNmQyxnQkFBMEIsR0FBRyxFQUFFLEVBQ1g7RUFDcEIsTUFBTUMsR0FBRyxHQUFHSixJQUFJLENBQUNLLElBQUksQ0FBQ0gsT0FBTyxFQUFFLEdBQUdDLGdCQUFnQixDQUFDO0VBRW5ELElBQUksQ0FBQ0osRUFBRSxDQUFDTyxVQUFVLENBQUNGLEdBQUcsQ0FBQyxFQUFF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
package/lib/git.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export declare function commit(repositoryDir: string, message: string): boolean;
2
2
  export declare function commitAndPush(repositoryDir: string, message: string, remotes?: string[]): number;
3
+ export declare function resetAndPull(gitDir: string): boolean;
3
4
  export declare function run(repositoryDir: string, args: string, verbose?: boolean): string;
4
5
  export declare function test(repositoryDir: string, args: string, verbose?: boolean): boolean;
5
6
  export declare function uidBranchUpdate(repositoryDir: string, subdirectories: any, notHard: boolean): boolean;
package/lib/git.js CHANGED
@@ -16,6 +16,7 @@ Object.defineProperty(exports, "__esModule", {
16
16
  });
17
17
  exports.commit = commit;
18
18
  exports.commitAndPush = commitAndPush;
19
+ exports.resetAndPull = resetAndPull;
19
20
  exports.run = run;
20
21
  exports.test = test;
21
22
  exports.uidBranchUpdate = uidBranchUpdate;
@@ -29,10 +30,10 @@ var _path = _interopRequireDefault(require("path"));
29
30
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
30
31
  var _file_systems = require("./file_systems");
31
32
  var _child_process = require("child_process");
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
34
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
35
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
33
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
34
+ 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; } } }; }
35
+ 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; } }
36
+ 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; }
36
37
  var MAXBUFFER = 50 * 1024 * 1024;
37
38
  function commit(repositoryDir, message) {
38
39
  (0, _child_process.execSync)("git add .", {
@@ -90,6 +91,21 @@ function commitAndPush(repositoryDir, message, remotes) {
90
91
  }
91
92
  return exitCode;
92
93
  }
94
+ function resetAndPull(gitDir) {
95
+ (0, _child_process.execSync)("git reset --hard origin/master", {
96
+ cwd: gitDir,
97
+ env: process.env,
98
+ encoding: "utf-8",
99
+ stdio: ["ignore", "ignore", "pipe"]
100
+ });
101
+ (0, _child_process.execSync)("git pull --rebase", {
102
+ cwd: gitDir,
103
+ env: process.env,
104
+ encoding: "utf-8",
105
+ stdio: ["ignore", "ignore", "pipe"]
106
+ });
107
+ return true;
108
+ }
93
109
  function run(repositoryDir, args, verbose) {
94
110
  try {
95
111
  if (verbose) console.log("git -C ".concat(repositoryDir, " ").concat(args));
@@ -193,4 +209,4 @@ function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
193
209
  run(repositoryDir, "reset ".concat(resetOption));
194
210
  return status;
195
211
  }
196
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfZmlsZV9zeXN0ZW1zIiwiX2NoaWxkX3Byb2Nlc3MiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiaSIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImUiLCJfZSIsImYiLCJUeXBlRXJyb3IiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwiY2FsbCIsInN0ZXAiLCJuZXh0IiwiX2UyIiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJhcnIiLCJsZW4iLCJhcnIyIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwibWF4QnVmZmVyIiwiY29uY2F0IiwiY2hpbGRQcm9jZXNzIiwic3Rkb3V0IiwiY29uc29sZSIsImVycm9yIiwib3V0cHV0IiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZXMiLCJleGl0Q29kZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwicmVtb3RlIiwic3RhdHVzIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0cmltIiwiX2kiLCJfYXJyIiwidWlkQnJhbmNoVXBkYXRlIiwic3ViZGlyZWN0b3JpZXMiLCJub3RIYXJkIiwicHJldmlvdXNCcmFuY2giLCJicmFuY2giLCJjaGRpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJzdWJkaXJlY3RvcnkiLCJ1aWREaXJlY3RvcnkiLCJmcyIsImVuc3VyZURpclN5bmMiLCJfaXRlcmF0b3I0IiwiZ2V0RmlsZXMiLCJfc3RlcDQiLCJwYXRobmFtZSIsImZpbGVuYW1lIiwicGF0aCIsImJhc2VuYW1lIiwicmVuYW1lU3luYyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsYUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBQXNELFNBQUFELHVCQUFBSyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSwyQkFBQUMsQ0FBQSxFQUFBQyxjQUFBLFFBQUFDLEVBQUEsVUFBQUMsTUFBQSxvQkFBQUgsQ0FBQSxDQUFBRyxNQUFBLENBQUFDLFFBQUEsS0FBQUosQ0FBQSxxQkFBQUUsRUFBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQU4sQ0FBQSxNQUFBRSxFQUFBLEdBQUFLLDJCQUFBLENBQUFQLENBQUEsTUFBQUMsY0FBQSxJQUFB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
212
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfZmlsZV9zeXN0ZW1zIiwiX2NoaWxkX3Byb2Nlc3MiLCJlIiwiX19lc01vZHVsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJNQVhCVUZGRVIiLCJjb21taXQiLCJyZXBvc2l0b3J5RGlyIiwibWVzc2FnZSIsImV4ZWNTeW5jIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJtYXhCdWZmZXIiLCJjb25jYXQiLCJjaGlsZFByb2Nlc3MiLCJzdGRvdXQiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJyZW1vdGUiLCJzdGF0dXMiLCJlcnIiLCJyZXNldEFuZFB1bGwiLCJnaXREaXIiLCJydW4iLCJhcmdzIiwidmVyYm9zZSIsImxvZyIsInRyaW0iLCJfaSIsIl9hcnIiLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInN1YmRpcmVjdG9yeSIsInVpZERpcmVjdG9yeSIsImZzIiwiZW5zdXJlRGlyU3luYyIsIl9pdGVyYXRvcjQiLCJnZXRGaWxlcyIsIl9zdGVwNCIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJwYXRoIiwiYmFzZW5hbWUiLCJyZW5hbWVTeW5jIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInJlc2V0T3B0aW9uIl0sInNvdXJjZXMiOlsiLi4vc3JjL2dpdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCB7IGdldEZpbGVzIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5cbmNvbnN0IE1BWEJVRkZFUiA9IDUwICogMTAyNCAqIDEwMjRcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdChyZXBvc2l0b3J5RGlyOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBleGVjU3luYyhcImdpdCBhZGQgLlwiLCB7XG4gICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgfSlcbiAgdHJ5IHtcbiAgICBleGVjU3luYyhgZ2l0IGNvbW1pdCAtbSBcIiR7bWVzc2FnZX1cIiAtLXF1aWV0YCwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBpZiAoXG4gICAgICAoY2hpbGRQcm9jZXNzIGFzIENoaWxkUHJvY2Vzcykuc3Rkb3V0ID09PSBudWxsIHx8XG4gICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBudW1iZXIge1xuICBsZXQgZXhpdENvZGUgPSAwXG4gIGlmIChjb21taXQocmVwb3NpdG9yeURpciwgbWVzc2FnZSkpIHtcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiByZW1vdGVzIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgZ2l0IHB1c2ggJHtyZW1vdGV9IG1hc3RlcmAsIHtcbiAgICAgICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIC8vIERvbid0IHN0b3Agd2hlbiBwdXNoIGZhaWxzLlxuICAgICAgICBjb25zb2xlLmVycm9yKChjaGlsZFByb2Nlc3MgYXMgYW55KS5vdXRwdXQpXG4gICAgICAgIGV4aXRDb2RlID0gKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0YXR1c1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBUaGVyZSB3YXMgbm90aGluZyB0byBjb21taXQuXG4gICAgZXhpdENvZGUgPSAxMFxuICB9XG4gIHJldHVybiBleGl0Q29kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRBbmRQdWxsKGdpdERpcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGV4ZWNTeW5jKGBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi9tYXN0ZXJgLCB7XG4gICAgY3dkOiBnaXREaXIsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICB9KVxuXG4gIGV4ZWNTeW5jKGBnaXQgcHVsbCAtLXJlYmFzZWAsIHtcbiAgICBjd2Q6IGdpdERpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gIH0pXG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNB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
package/lib/git.mjs CHANGED
@@ -50,6 +50,21 @@ export function commitAndPush(repositoryDir, message, remotes) {
50
50
  }
51
51
  return exitCode;
52
52
  }
53
+ export function resetAndPull(gitDir) {
54
+ execSync(`git reset --hard origin/master`, {
55
+ cwd: gitDir,
56
+ env: process.env,
57
+ encoding: "utf-8",
58
+ stdio: ["ignore", "ignore", "pipe"]
59
+ });
60
+ execSync(`git pull --rebase`, {
61
+ cwd: gitDir,
62
+ env: process.env,
63
+ encoding: "utf-8",
64
+ stdio: ["ignore", "ignore", "pipe"]
65
+ });
66
+ return true;
67
+ }
53
68
  export function run(repositoryDir, args, verbose) {
54
69
  try {
55
70
  if (verbose) console.log(`git -C ${repositoryDir} ${args}`);
@@ -123,4 +138,4 @@ export function uidBranchUpdate(repositoryDir, subdirectories, notHard) {
123
138
  run(repositoryDir, `reset ${resetOption}`);
124
139
  return status;
125
140
  }
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsIm1heEJ1ZmZlciIsImNoaWxkUHJvY2VzcyIsInN0ZG91dCIsInRlc3QiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwicmVtb3RlIiwic3RhdHVzIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0b1N0cmluZyIsInRyaW0iLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZW5zdXJlRGlyU3luYyIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlbmFtZVN5bmMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bihcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2coYGdpdCAtQyAke3JlcG9zaXRvcnlEaXJ9ICR7YXJnc31gKVxuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBnaXQgJHthcmdzfWAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIG1heEJ1ZmZlcjogTUFYQlVGRkVSLFxuICAgIH0pXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnRyaW0oKVxuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhvdXRwdXQpXG4gICAgcmV0dXJuIG91dHB1dFxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBbXCJzdGRvdXRcIiwgXCJzdGRlcnJcIl0pXG4gICAgICBjb25zb2xlLmVycm9yKGAke291dHB1dH06ICR7KGNoaWxkUHJvY2VzcyBhcyBhbnkpW291dHB1dF19YClcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVzdChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmcsXG4gIHZlcmJvc2U/OiBib29sZWFuLFxuKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwicGlwZVwiLCBcInBpcGVcIl0sXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgIGlmICgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3RhdHVzICE9IDApIHJldHVybiBmYWxzZVxuICAgIHRocm93IGNoaWxkUHJvY2Vzc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWRCcmFuY2hVcGRhdGUoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbiAgbm90SGFyZDogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICBjb25zdCBwcmV2aW91c0JyYW5jaCA9IHJ1bihyZXBvc2l0b3J5RGlyLCBcInJldi1wYXJzZSAtLWFiYnJldi1yZWYgSEVBRFwiKVxuICBjb25zdCBicmFuY2ggPSBcInVpZFwiXG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKClcbiAgcHJvY2Vzcy5jaGRpcihyZXBvc2l0b3J5RGlyKVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIGZzLmVuc3VyZURpclN5bmModWlkRGlyZWN0b3J5KVxuICAgIGZvciAoY29uc3QgcGF0aG5hbWUgb2YgZ2V0RmlsZXMoW2Ake3N1YmRpcmVjdG9yeX0vKiovKi5qc29uYF0pKSB7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IHBhdGguYmFzZW5hbWUocGF0aG5hbWUpXG4gICAgICBmcy5yZW5hbWVTeW5jKHBhdGhuYW1lLCBgJHt1aWREaXJlY3Rvcnl9LyR7ZmlsZW5hbWV9YClcbiAgICB9XG4gIH1cbiAgcHJvY2Vzcy5jaGRpcihjd2QpXG4gIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVtb3Rlcy9vcmlnaW4vJHticmFuY2h9YCkpIHtcbiAgICAvLyBpZiBhIHJlbW90ZSBicmFuY2ggZXhpc3RzLCBpdCBtdXN0IGJlIHVzZWQgZXZlbiBpZiBhIGxvY2FsIGJyYW5jaCBleGlzdHNcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGJyYW5jaCAtLWZvcmNlICR7YnJhbmNofSBvcmlnaW4vJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICB9IGVsc2UgaWYgKHRlc3QocmVwb3NpdG9yeURpciwgYHJldi1wYXJzZSByZWZzL2hlYWRzLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgbm8gcmVtb3RlIGJyYW5jaCBleGlzdHMgYnV0IGEgbG9jYWwgb25lIGV4aXN0cywgdXNlIGl0XG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcmVtb3RlIG9yIGxvY2FsIGJyYW5jaGVzLCBjcmVhdGUgYSBuZXcgb25lXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gbWFzdGVyYClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYHN5bWJvbGljLXJlZiBIRUFEIHJlZnMvaGVhZHMvJHticmFuY2h9YClcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJyZXNldFwiKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJtIC1yIC5cIilcbiAgfVxuICBmb3IgKGNvbnN0IHN1YmRpcmVjdG9yeSBvZiBzdWJkaXJlY3Rvcmllcykge1xuICAgIGNvbnN0IHVpZERpcmVjdG9yeSA9IGAke3N1YmRpcmVjdG9yeX0vdWlkYFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYWRkICR7dWlkRGlyZWN0b3J5fWApXG4gIH1cbiAgbGV0IHN0YXR1cyA9IGZhbHNlXG4gIGlmICghdGVzdChyZXBvc2l0b3J5RGlyLCBcImRpZmYgLS1xdWlldCAtLWNhY2hlZFwiKSkge1xuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgY29tbWl0IC1tICdVcGRhdGUnYClcbiAgICBzdGF0dXMgPSB0cnVlXG4gIH1cbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7cHJldmlvdXNCcmFuY2h9YClcbiAgY29uc3QgcmVzZXRPcHRpb24gPSBub3RIYXJkID8gXCJcIiA6IFwiLS1oYXJkXCJcbiAgcnVuKHJlcG9zaXRvcnlEaXIsIGByZXNldCAke3Jlc2V0T3B0aW9ufWApXG4gIHJldHVybiBzdGF0dXNcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsSUFBSSxNQUFNLE1BQU07QUFDdkIsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFBQSxTQUNoQkMsUUFBUTtBQUNqQixTQUF1QkMsUUFBUSxRQUFRLGVBQWU7QUFF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
141
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiZnMiLCJnZXRGaWxlcyIsImV4ZWNTeW5jIiwiTUFYQlVGRkVSIiwiY29tbWl0IiwicmVwb3NpdG9yeURpciIsIm1lc3NhZ2UiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsIm1heEJ1ZmZlciIsImNoaWxkUHJvY2VzcyIsInN0ZG91dCIsInRlc3QiLCJjb25zb2xlIiwiZXJyb3IiLCJvdXRwdXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlcyIsImV4aXRDb2RlIiwicmVtb3RlIiwic3RhdHVzIiwicmVzZXRBbmRQdWxsIiwiZ2l0RGlyIiwicnVuIiwiYXJncyIsInZlcmJvc2UiLCJsb2ciLCJ0b1N0cmluZyIsInRyaW0iLCJ1aWRCcmFuY2hVcGRhdGUiLCJzdWJkaXJlY3RvcmllcyIsIm5vdEhhcmQiLCJwcmV2aW91c0JyYW5jaCIsImJyYW5jaCIsImNoZGlyIiwic3ViZGlyZWN0b3J5IiwidWlkRGlyZWN0b3J5IiwiZW5zdXJlRGlyU3luYyIsInBhdGhuYW1lIiwiZmlsZW5hbWUiLCJiYXNlbmFtZSIsInJlbmFtZVN5bmMiLCJyZXNldE9wdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9naXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgeyBnZXRGaWxlcyB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuXG5jb25zdCBNQVhCVUZGRVIgPSA1MCAqIDEwMjQgKiAxMDI0XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQocmVwb3NpdG9yeURpcjogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gIH0pXG4gIHRyeSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjb21taXQgLW0gXCIke21lc3NhZ2V9XCIgLS1xdWlldGAsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gICAgcmV0dXJuIHRydWVcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgaWYgKFxuICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZG91dCA9PT0gbnVsbCB8fFxuICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21taXRBbmRQdXNoKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIG1lc3NhZ2U6IHN0cmluZyxcbiAgcmVtb3Rlcz86IHN0cmluZ1tdLFxuKTogbnVtYmVyIHtcbiAgbGV0IGV4aXRDb2RlID0gMFxuICBpZiAoY29tbWl0KHJlcG9zaXRvcnlEaXIsIG1lc3NhZ2UpKSB7XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBleGl0Q29kZSA9IChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGF0dXNcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vdGhpbmcgdG8gY29tbWl0LlxuICAgIGV4aXRDb2RlID0gMTBcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0QW5kUHVsbChnaXREaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBleGVjU3luYyhgZ2l0IHJlc2V0IC0taGFyZCBvcmlnaW4vbWFzdGVyYCwge1xuICAgIGN3ZDogZ2l0RGlyLFxuICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgfSlcblxuICBleGVjU3luYyhgZ2l0IHB1bGwgLS1yZWJhc2VgLCB7XG4gICAgY3dkOiBnaXREaXIsXG4gICAgZW52OiBwcm9jZXNzLmVudixcbiAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICB9KVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW4oXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nLFxuICB2ZXJib3NlPzogYm9vbGVhbixcbik6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKGBnaXQgLUMgJHtyZXBvc2l0b3J5RGlyfSAke2FyZ3N9YClcbiAgICBjb25zdCBvdXRwdXQgPSBleGVjU3luYyhgZ2l0ICR7YXJnc31gLCB7XG4gICAgICBjd2Q6IHJlcG9zaXRvcnlEaXIsXG4gICAgICBtYXhCdWZmZXI6IE1BWEJVRkZFUixcbiAgICB9KVxuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICBpZiAodmVyYm9zZSkgY29uc29sZS5sb2cob3V0cHV0KVxuICAgIHJldHVybiBvdXRwdXRcbiAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgZm9yIChjb25zdCBvdXRwdXQgb2YgW1wic3Rkb3V0XCIsIFwic3RkZXJyXCJdKVxuICAgICAgY29uc29sZS5lcnJvcihgJHtvdXRwdXR9OiAkeyhjaGlsZFByb2Nlc3MgYXMgYW55KVtvdXRwdXRdfWApXG4gICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlc3QoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgYXJnczogc3RyaW5nLFxuICB2ZXJib3NlPzogYm9vbGVhbixcbik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGlmICh2ZXJib3NlKSBjb25zb2xlLmxvZyhgZ2l0IC1DICR7cmVwb3NpdG9yeURpcn0gJHthcmdzfWApXG4gICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoYGdpdCAke2FyZ3N9YCwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcInBpcGVcIiwgXCJwaXBlXCJdLFxuICAgICAgbWF4QnVmZmVyOiBNQVhCVUZGRVIsXG4gICAgfSlcbiAgICAgIC50b1N0cmluZygpXG4gICAgICAudHJpbSgpXG4gICAgaWYgKHZlcmJvc2UpIGNvbnNvbGUubG9nKG91dHB1dClcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICBpZiAoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLnN0YXR1cyAhPSAwKSByZXR1cm4gZmFsc2VcbiAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlkQnJhbmNoVXBkYXRlKFxuICByZXBvc2l0b3J5RGlyOiBzdHJpbmcsXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4gIG5vdEhhcmQ6IGJvb2xlYW4sXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcHJldmlvdXNCcmFuY2ggPSBydW4ocmVwb3NpdG9yeURpciwgXCJyZXYtcGFyc2UgLS1hYmJyZXYtcmVmIEhFQURcIilcbiAgY29uc3QgYnJhbmNoID0gXCJ1aWRcIlxuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpXG4gIHByb2Nlc3MuY2hkaXIocmVwb3NpdG9yeURpcilcbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHVpZERpcmVjdG9yeSlcbiAgICBmb3IgKGNvbnN0IHBhdGhuYW1lIG9mIGdldEZpbGVzKFtgJHtzdWJkaXJlY3Rvcnl9LyoqLyouanNvbmBdKSkge1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKHBhdGhuYW1lKVxuICAgICAgZnMucmVuYW1lU3luYyhwYXRobmFtZSwgYCR7dWlkRGlyZWN0b3J5fS8ke2ZpbGVuYW1lfWApXG4gICAgfVxuICB9XG4gIHByb2Nlc3MuY2hkaXIoY3dkKVxuICBpZiAodGVzdChyZXBvc2l0b3J5RGlyLCBgcmV2LXBhcnNlIHJlbW90ZXMvb3JpZ2luLyR7YnJhbmNofWApKSB7XG4gICAgLy8gaWYgYSByZW1vdGUgYnJhbmNoIGV4aXN0cywgaXQgbXVzdCBiZSB1c2VkIGV2ZW4gaWYgYSBsb2NhbCBicmFuY2ggZXhpc3RzXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBicmFuY2ggLS1mb3JjZSAke2JyYW5jaH0gb3JpZ2luLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgfSBlbHNlIGlmICh0ZXN0KHJlcG9zaXRvcnlEaXIsIGByZXYtcGFyc2UgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKSkge1xuICAgIC8vIGlmIG5vIHJlbW90ZSBicmFuY2ggZXhpc3RzIGJ1dCBhIGxvY2FsIG9uZSBleGlzdHMsIHVzZSBpdFxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke2JyYW5jaH1gKVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBcInJlc2V0XCIpXG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIHJlbW90ZSBvciBsb2NhbCBicmFuY2hlcywgY3JlYXRlIGEgbmV3IG9uZVxuICAgIHJ1bihyZXBvc2l0b3J5RGlyLCBgYnJhbmNoIC0tZm9yY2UgJHticmFuY2h9IG1hc3RlcmApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIGBzeW1ib2xpYy1yZWYgSEVBRCByZWZzL2hlYWRzLyR7YnJhbmNofWApXG4gICAgcnVuKHJlcG9zaXRvcnlEaXIsIFwicmVzZXRcIilcbiAgICBydW4ocmVwb3NpdG9yeURpciwgXCJybSAtciAuXCIpXG4gIH1cbiAgZm9yIChjb25zdCBzdWJkaXJlY3Rvcnkgb2Ygc3ViZGlyZWN0b3JpZXMpIHtcbiAgICBjb25zdCB1aWREaXJlY3RvcnkgPSBgJHtzdWJkaXJlY3Rvcnl9L3VpZGBcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGFkZCAke3VpZERpcmVjdG9yeX1gKVxuICB9XG4gIGxldCBzdGF0dXMgPSBmYWxzZVxuICBpZiAoIXRlc3QocmVwb3NpdG9yeURpciwgXCJkaWZmIC0tcXVpZXQgLS1jYWNoZWRcIikpIHtcbiAgICBydW4ocmVwb3NpdG9yeURpciwgYGNvbW1pdCAtbSAnVXBkYXRlJ2ApXG4gICAgc3RhdHVzID0gdHJ1ZVxuICB9XG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgc3ltYm9saWMtcmVmIEhFQUQgcmVmcy9oZWFkcy8ke3ByZXZpb3VzQnJhbmNofWApXG4gIGNvbnN0IHJlc2V0T3B0aW9uID0gbm90SGFyZCA/IFwiXCIgOiBcIi0taGFyZFwiXG4gIHJ1bihyZXBvc2l0b3J5RGlyLCBgcmVzZXQgJHtyZXNldE9wdGlvbn1gKVxuICByZXR1cm4gc3RhdHVzXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLElBQUksTUFBTSxNQUFNO0FBQ3ZCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQUEsU0FDaEJDLFFBQVE7QUFDakIsU0FBdUJDLFFBQVEsUUFBUSxlQUFlO0FBRXRELE1BQU1DLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7QUFFbEMsT0FBTyxTQUFTQyxNQUFNQSxDQUFDQyxhQUFxQixFQUFFQyxPQUFlLEVBQVc7RUFDdEVKLFFBQVEsQ0FBQyxXQUFXLEVBQUU7SUFDcEJLLEdBQUcsRUFBRUYsYUFBYTtJQUNsQkcsR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7SUFDaEJFLFFBQVEsRUFBRSxPQUFPO0lBQ2pCQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNuQ0MsU0FBUyxFQUFFVDtFQUNiLENBQUMsQ0FBQztFQUNGLElBQUk7SUFDRkQsUUFBUSxDQUFDLGtCQUFrQkksT0FBTyxXQUFXLEVBQUU7TUFDN0NDLEdBQUcsRUFBRUYsYUFBYTtNQUNsQkcsR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7TUFDaEJFLFFBQVEsRUFBRSxPQUFPO01BQ2pCQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU07SUFDbEMsQ0FB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
package/lib/inserters.js CHANGED
@@ -25,9 +25,9 @@ exports.insertDossierReferences = insertDossierReferences;
25
25
  exports.insertOrganeReferences = insertOrganeReferences;
26
26
  exports.insertReunionReferences = insertReunionReferences;
27
27
  exports.insertScrutinReferences = insertScrutinReferences;
28
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, 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 normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
29
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
30
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
28
+ 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; } } }; }
29
+ 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; } }
30
+ 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; }
31
31
  function insertActeLegislatifReferences(acte, data, visitedUids) {
32
32
  if (!visitedUids.has(acte.uid)) {
33
33
  visitedUids.add(acte.uid);
package/lib/loaders.d.ts CHANGED
@@ -54,66 +54,39 @@ export interface Data {
54
54
  [uid: string]: CompteRendu;
55
55
  };
56
56
  }
57
- export declare function iterLoadAssembleeActeurs(dataDir: string, legislature: Legislature, { noValidation, log }?: {
58
- noValidation?: boolean | undefined;
59
- log?: boolean | undefined;
60
- }): Generator<{
57
+ export declare function iterLoadAssembleeActeurs(dataDir: string, legislature: Legislature, options?: {}): Generator<{
61
58
  acteur: Acteur;
62
59
  datasetLegislature: Legislature;
63
60
  }, void, unknown>;
64
- export declare function iterLoadAssembleeAmendements(dataDir: string, legislature: Legislature, { noValidation, log }?: {
65
- noValidation?: boolean | undefined;
66
- log?: boolean | undefined;
67
- }): Generator<{
61
+ export declare function iterLoadAssembleeOrganes(dataDir: string, legislature: Legislature, options?: {}): Generator<{
62
+ organe: Organe;
63
+ datasetLegislature: Legislature;
64
+ }, void, unknown>;
65
+ export declare function iterLoadAssembleeAmendements(dataDir: string, legislature: Legislature, options?: {}): Generator<{
68
66
  amendement: Amendement;
69
67
  datasetLegislature: Legislature;
70
68
  }, void, unknown>;
71
- export declare function iterLoadAssembleeDocuments(dataDir: string, legislature: Legislature, { noValidation, log }?: {
72
- noValidation?: boolean | undefined;
73
- log?: boolean | undefined;
74
- }): Generator<{
69
+ export declare function iterLoadAssembleeDocuments(dataDir: string, legislature: Legislature, options?: {}): Generator<{
75
70
  document: Document;
76
71
  datasetLegislature: Legislature;
77
72
  }, void, unknown>;
78
- export declare function iterLoadAssembleeDossiersParlementaires(dataDir: string, legislature: Legislature, { noValidation, log }?: {
79
- noValidation?: boolean | undefined;
80
- log?: boolean | undefined;
81
- }): Generator<{
73
+ export declare function iterLoadAssembleeDossiersParlementaires(dataDir: string, legislature: Legislature, options?: {}): Generator<{
82
74
  dossierParlementaire: DossierParlementaire;
83
75
  datasetLegislature: Legislature;
84
76
  }, void, unknown>;
85
- export declare function iterLoadAssembleeOrganes(dataDir: string, legislature: Legislature, { noValidation, log }?: {
86
- noValidation?: boolean | undefined;
87
- log?: boolean | undefined;
88
- }): Generator<{
89
- organe: Organe;
90
- datasetLegislature: Legislature;
91
- }, void, unknown>;
92
- export declare function iterLoadAssembleeReunions(dataDir: string, legislature: Legislature, { noValidation, log }?: {
93
- noValidation?: boolean | undefined;
94
- log?: boolean | undefined;
95
- }): Generator<{
77
+ export declare function iterLoadAssembleeReunions(dataDir: string, legislature: Legislature, options?: {}): Generator<{
96
78
  reunion: Reunion;
97
79
  datasetLegislature: Legislature;
98
80
  }, void, unknown>;
99
- export declare function iterLoadAssembleeScrutins(dataDir: string, legislature: Legislature, { noValidation, log }?: {
100
- noValidation?: boolean | undefined;
101
- log?: boolean | undefined;
102
- }): Generator<{
81
+ export declare function iterLoadAssembleeScrutins(dataDir: string, legislature: Legislature, options?: {}): Generator<{
103
82
  scrutin: Scrutin;
104
83
  datasetLegislature: Legislature;
105
84
  }, void, unknown>;
106
- export declare function iterLoadAssembleeQuestions(dataDir: string, legislature: Legislature, { noValidation, log }?: {
107
- noValidation?: boolean | undefined;
108
- log?: boolean | undefined;
109
- }): Generator<{
85
+ export declare function iterLoadAssembleeQuestions(dataDir: string, legislature: Legislature, options?: {}): Generator<{
110
86
  question: Question;
111
87
  datasetLegislature: Legislature;
112
88
  }, void, unknown>;
113
- export declare function iterLoadAssembleeComptesRendus(dataDir: string, legislature: Legislature, { noValidation, log }?: {
114
- noValidation?: boolean | undefined;
115
- log?: boolean | undefined;
116
- }): Generator<{
89
+ export declare function iterLoadAssembleeComptesRendus(dataDir: string, legislature: Legislature, options?: {}): Generator<{
117
90
  compteRendu: CompteRendu;
118
91
  datasetLegislature: Legislature;
119
92
  }, void, unknown>;
@@ -149,4 +122,5 @@ export declare function pathFromDocumentUid(documentsDir: string, uid: string):
149
122
  export declare function pathFromDossierParlementaireUid(dossiersDir: string, uid: string): string;
150
123
  export declare function pathFromReunionUid(reunionsDir: string, uid: string): string;
151
124
  export declare function pathFromScrutinUid(scrutinsDir: string, uid: string): string;
152
- export declare function pathFromUid(dataDir: string, uid: string, dataRegexp: RegExp): string;
125
+ export declare function pathFromQuestionUid(dataDir: string, uid: string): string;
126
+ export declare function pathFromCompteRenduUid(dataDir: string, uid: string): string;