@ecodev/natural 47.3.1 → 47.3.3

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.
@@ -70,16 +70,27 @@ function createFileInput(document) {
70
70
  return fileElem;
71
71
  }
72
72
  export function isDirectory(file) {
73
- return file
74
- .slice(0, 1)
75
- .text()
76
- .then(text => {
73
+ return blobText(file.slice(0, 1)).then(text => {
77
74
  // Firefox will return empty string for a folder, so we must check that special case.
78
75
  // That means that any empty file will incorrectly be interpreted as a folder on all
79
76
  // browsers, but that's tolerable because there is no real use-case to upload an empty file.
80
77
  return text !== '';
81
78
  }, () => false);
82
79
  }
80
+ /**
81
+ * This is a ponyfill for `Blob.text()`, because Safari 13 and 14 do not support it, https://caniuse.com/?search=blob.text,
82
+ * and we try our best not to break iPhone users too much.
83
+ */
84
+ function blobText(blob) {
85
+ return new Promise((resolve, reject) => {
86
+ const reader = new FileReader();
87
+ reader.onload = () => {
88
+ resolve(reader.result);
89
+ };
90
+ reader.onerror = reject;
91
+ reader.readAsText(blob);
92
+ });
93
+ }
83
94
  export function stopEvent(event) {
84
95
  event.preventDefault();
85
96
  event.stopPropagation();
@@ -115,4 +126,4 @@ export function eventToFiles(event) {
115
126
  }
116
127
  return [];
117
128
  }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFnQjtJQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QyxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWdCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJ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QUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUF3QjtJQUNqRCxNQUFNLFFBQVEsR0FBRyxjQUFjLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckUsSUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUM7SUFFRCxJQUFJLFFBQVEsRUFBRTtRQUNWLE9BQU8sMkJBQTJCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFjY2VwdFR5cGUoYWNjZXB0OiBzdHJpbmcsIHR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghYWNjZXB0LnRyaW0oKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGZpbGVuYW1lID0gZmlsZW5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBhY2NlcHQuc3BsaXQoJywnKS5zb21lKG1pbWVPckV4dGVuc2lvbiA9PiB7XG4gICAgICAgIG1pbWVPckV4dGVuc2lvbiA9IG1pbWVPckV4dGVuc2lvbi50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1pbWVPckV4dGVuc2lvbi5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZS5lbmRzV2l0aChtaW1lT3JFeHRlbnNpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGAqYCBpbnRvIGAuKmBcbiAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBtaW1lT3JFeHRlbnNpb24ucmVwbGFjZSgvXFwqL2csICcuKicpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHlwZS5tYXRjaChwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaWxlSW5wdXQoZWxtOiBIVE1MRWxlbWVudCk6IGVsbSBpcyBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICBjb25zdCB0eXBlID0gZWxtLmdldEF0dHJpYnV0ZSgndHlwZScpO1xuXG4gICAgcmV0dXJuIGVsbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgISF0eXBlICYmIHR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ2ZpbGUnO1xufVxuXG5sZXQgaW5pdGlhbFRvdWNoU3RhcnRZID0gMDtcbmxldCBpbml0aWFsVG91Y2hTdGFydFggPSAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0U3dpcGUoZXZlbnQ6IEV2ZW50IHwgVG91Y2hFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRvdWNoZXMgPSAnY2hhbmdlZFRvdWNoZXMnIGluIGV2ZW50ID8gZXZlbnQuY2hhbmdlZFRvdWNoZXMgOiBudWxsO1xuICAgIGlmICghdG91Y2hlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0Jykge1xuICAgICAgICBpbml0aWFsVG91Y2hTdGFydFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIGluaXRpYWxUb3VjaFN0YXJ0WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gZG9uJ3QgYmxvY2sgZXZlbnQgZGVmYXVsdFxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHByZXZlbnQgc2Nyb2xsIGZyb20gdHJpZ2dlcmluZyBldmVudFxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhjdXJyZW50WCAtIGluaXRpYWxUb3VjaFN0YXJ0WCkgPiAyMCB8fCBNYXRoLmFicyhjdXJyZW50WSAtIGluaXRpYWxUb3VjaFN0YXJ0WSkgPiAyMCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW52aXNpYmxlRmlsZUlucHV0V3JhcChkb2N1bWVudDogRG9jdW1lbnQpOiBIVE1MTGFiZWxFbGVtZW50IHtcbiAgICBjb25zdCBmaWxlRWxlbSA9IGNyZWF0ZUZpbGVJbnB1dChkb2N1bWVudCk7XG4gICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuICAgIGxhYmVsLmlubmVySFRNTCA9ICd1cGxvYWQnO1xuICAgIGxhYmVsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgbGFiZWwuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS53aWR0aCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgICBsYWJlbC5zdHlsZS5tYXJnaW4gPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5wYWRkaW5nID0gJzBweCc7XG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuXG4gICAgbGFiZWwuYXBwZW5kQ2hpbGQoZmlsZUVsZW0pO1xuXG4gICAgcmV0dXJuIGxhYmVsO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlSW5wdXQoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgZmlsZUVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGZpbGVFbGVtLnR5cGUgPSAnZmlsZSc7XG5cbiAgICByZXR1cm4gZmlsZUVsZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdG9yeShmaWxlOiBGaWxlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZpbGVcbiAgICAgICAgLnNsaWNlKDAsIDEpXG4gICAgICAgIC50ZXh0KClcbiAgICAgICAgLnRoZW4oXG4gICAgICAgICAgICB0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGaXJlZm94IHdpbGwgcmV0dXJuIGVtcHR5IHN0cmluZyBmb3IgYSBmb2xkZXIsIHNvIHdlIG11c3QgY2hlY2sgdGhhdCBzcGVjaWFsIGNhc2UuXG4gICAgICAgICAgICAgICAgLy8gVGhhdCBtZWFucyB0aGF0IGFueSBlbXB0eSBmaWxlIHdpbGwgaW5jb3JyZWN0bHkgYmUgaW50ZXJwcmV0ZWQgYXMgYSBmb2xkZXIgb24gYWxsXG4gICAgICAgICAgICAgICAgLy8gYnJvd3NlcnMsIGJ1dCB0aGF0J3MgdG9sZXJhYmxlIGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhbCB1c2UtY2FzZSB0byB1cGxvYWQgYW4gZW1wdHkgZmlsZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dCAhPT0gJyc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVMaXN0VG9BcnJheShmaWxlTGlzdDogRmlsZUxpc3QpOiBGaWxlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogRmlsZVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlID0gZmlsZUxpc3QuaXRlbShpKTtcbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZGF0YVRyYW5zZmVySXRlbUxpc3RUb0FycmF5KGl0ZW1zOiBEYXRhVHJhbnNmZXJJdGVtTGlzdCk6IEZpbGVbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBGaWxlW10gPSBbXTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJlZmVyLWZvci1vZlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGl0ZW1zW2ldLmdldEFzRmlsZSgpO1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlbnRUb0ZpbGVzKGV2ZW50OiBFdmVudCB8IERyYWdFdmVudCk6IEZpbGVbXSB7XG4gICAgY29uc3QgdHJhbnNmZXIgPSAnZGF0YVRyYW5zZmVyJyBpbiBldmVudCA/IGV2ZW50LmRhdGFUcmFuc2ZlciA6IG51bGw7XG4gICAgaWYgKHRyYW5zZmVyPy5maWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmaWxlTGlzdFRvQXJyYXkodHJhbnNmZXIuZmlsZXMpO1xuICAgIH1cblxuICAgIGlmICh0cmFuc2Zlcikge1xuICAgICAgICByZXR1cm4gZGF0YVRyYW5zZmVySXRlbUxpc3RUb0FycmF5KHRyYW5zZmVyLml0ZW1zKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG59XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxRQUFnQjtJQUNyRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUM1QyxlQUFlLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWdCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJ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QztTQUNyQjtLQUNKO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsS0FBMkI7SUFDNUQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0lBRTFCLDREQUE0RDtJQUM1RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLEVBQUU7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0tBQ0o7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUF3QjtJQUNqRCxNQUFNLFFBQVEsR0FBRyxjQUFjLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckUsSUFBSSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUM7SUFFRCxJQUFJLFFBQVEsRUFBRTtRQUNWLE9BQU8sMkJBQTJCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFjY2VwdFR5cGUoYWNjZXB0OiBzdHJpbmcsIHR5cGU6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghYWNjZXB0LnRyaW0oKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgIGZpbGVuYW1lID0gZmlsZW5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBhY2NlcHQuc3BsaXQoJywnKS5zb21lKG1pbWVPckV4dGVuc2lvbiA9PiB7XG4gICAgICAgIG1pbWVPckV4dGVuc2lvbiA9IG1pbWVPckV4dGVuc2lvbi50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1pbWVPckV4dGVuc2lvbi5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZS5lbmRzV2l0aChtaW1lT3JFeHRlbnNpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVHJhbnNmb3JtIGAqYCBpbnRvIGAuKmBcbiAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBtaW1lT3JFeHRlbnNpb24ucmVwbGFjZSgvXFwqL2csICcuKicpO1xuXG4gICAgICAgICAgICByZXR1cm4gdHlwZS5tYXRjaChwYXR0ZXJuKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaWxlSW5wdXQoZWxtOiBIVE1MRWxlbWVudCk6IGVsbSBpcyBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICBjb25zdCB0eXBlID0gZWxtLmdldEF0dHJpYnV0ZSgndHlwZScpO1xuXG4gICAgcmV0dXJuIGVsbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdpbnB1dCcgJiYgISF0eXBlICYmIHR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ2ZpbGUnO1xufVxuXG5sZXQgaW5pdGlhbFRvdWNoU3RhcnRZID0gMDtcbmxldCBpbml0aWFsVG91Y2hTdGFydFggPSAwO1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0U3dpcGUoZXZlbnQ6IEV2ZW50IHwgVG91Y2hFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRvdWNoZXMgPSAnY2hhbmdlZFRvdWNoZXMnIGluIGV2ZW50ID8gZXZlbnQuY2hhbmdlZFRvdWNoZXMgOiBudWxsO1xuICAgIGlmICghdG91Y2hlcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0Jykge1xuICAgICAgICBpbml0aWFsVG91Y2hTdGFydFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIGluaXRpYWxUb3VjaFN0YXJ0WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gZG9uJ3QgYmxvY2sgZXZlbnQgZGVmYXVsdFxuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHByZXZlbnQgc2Nyb2xsIGZyb20gdHJpZ2dlcmluZyBldmVudFxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3RvdWNoZW5kJykge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFggPSB0b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50WSA9IHRvdWNoZXNbMF0uY2xpZW50WTtcbiAgICAgICAgICAgIGlmIChNYXRoLmFicyhjdXJyZW50WCAtIGluaXRpYWxUb3VjaFN0YXJ0WCkgPiAyMCB8fCBNYXRoLmFicyhjdXJyZW50WSAtIGluaXRpYWxUb3VjaFN0YXJ0WSkgPiAyMCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW52aXNpYmxlRmlsZUlucHV0V3JhcChkb2N1bWVudDogRG9jdW1lbnQpOiBIVE1MTGFiZWxFbGVtZW50IHtcbiAgICBjb25zdCBmaWxlRWxlbSA9IGNyZWF0ZUZpbGVJbnB1dChkb2N1bWVudCk7XG4gICAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuICAgIGxhYmVsLmlubmVySFRNTCA9ICd1cGxvYWQnO1xuICAgIGxhYmVsLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgbGFiZWwuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICBsYWJlbC5zdHlsZS53aWR0aCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgIGxhYmVsLnN0eWxlLmJvcmRlciA9ICdub25lJztcbiAgICBsYWJlbC5zdHlsZS5tYXJnaW4gPSAnMHB4JztcbiAgICBsYWJlbC5zdHlsZS5wYWRkaW5nID0gJzBweCc7XG4gICAgbGFiZWwuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuXG4gICAgbGFiZWwuYXBwZW5kQ2hpbGQoZmlsZUVsZW0pO1xuXG4gICAgcmV0dXJuIGxhYmVsO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWxlSW5wdXQoZG9jdW1lbnQ6IERvY3VtZW50KTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgY29uc3QgZmlsZUVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGZpbGVFbGVtLnR5cGUgPSAnZmlsZSc7XG5cbiAgICByZXR1cm4gZmlsZUVsZW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdG9yeShmaWxlOiBGaWxlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGJsb2JUZXh0KGZpbGUuc2xpY2UoMCwgMSkpLnRoZW4oXG4gICAgICAgIHRleHQgPT4ge1xuICAgICAgICAgICAgLy8gRmlyZWZveCB3aWxsIHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIGEgZm9sZGVyLCBzbyB3ZSBtdXN0IGNoZWNrIHRoYXQgc3BlY2lhbCBjYXNlLlxuICAgICAgICAgICAgLy8gVGhhdCBtZWFucyB0aGF0IGFueSBlbXB0eSBmaWxlIHdpbGwgaW5jb3JyZWN0bHkgYmUgaW50ZXJwcmV0ZWQgYXMgYSBmb2xkZXIgb24gYWxsXG4gICAgICAgICAgICAvLyBicm93c2VycywgYnV0IHRoYXQncyB0b2xlcmFibGUgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFsIHVzZS1jYXNlIHRvIHVwbG9hZCBhbiBlbXB0eSBmaWxlLlxuICAgICAgICAgICAgcmV0dXJuIHRleHQgIT09ICcnO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiBmYWxzZSxcbiAgICApO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBwb255ZmlsbCBmb3IgYEJsb2IudGV4dCgpYCwgYmVjYXVzZSBTYWZhcmkgMTMgYW5kIDE0IGRvIG5vdCBzdXBwb3J0IGl0LCBodHRwczovL2Nhbml1c2UuY29tLz9zZWFyY2g9YmxvYi50ZXh0LFxuICogYW5kIHdlIHRyeSBvdXIgYmVzdCBub3QgdG8gYnJlYWsgaVBob25lIHVzZXJzIHRvbyBtdWNoLlxuICovXG5mdW5jdGlvbiBibG9iVGV4dChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgIH07XG4gICAgICAgIHJlYWRlci5vbmVycm9yID0gcmVqZWN0O1xuICAgICAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsZUxpc3RUb0FycmF5KGZpbGVMaXN0OiBGaWxlTGlzdCk6IEZpbGVbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBGaWxlW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBmaWxlTGlzdC5pdGVtKGkpO1xuICAgICAgICBpZiAoZmlsZSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZmlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBkYXRhVHJhbnNmZXJJdGVtTGlzdFRvQXJyYXkoaXRlbXM6IERhdGFUcmFuc2Zlckl0ZW1MaXN0KTogRmlsZVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IEZpbGVbXSA9IFtdO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBmaWxlID0gaXRlbXNbaV0uZ2V0QXNGaWxlKCk7XG4gICAgICAgIGlmIChmaWxlKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChmaWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVudFRvRmlsZXMoZXZlbnQ6IEV2ZW50IHwgRHJhZ0V2ZW50KTogRmlsZVtdIHtcbiAgICBjb25zdCB0cmFuc2ZlciA9ICdkYXRhVHJhbnNmZXInIGluIGV2ZW50ID8gZXZlbnQuZGF0YVRyYW5zZmVyIDogbnVsbDtcbiAgICBpZiAodHJhbnNmZXI/LmZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGZpbGVMaXN0VG9BcnJheSh0cmFuc2Zlci5maWxlcyk7XG4gICAgfVxuXG4gICAgaWYgKHRyYW5zZmVyKSB7XG4gICAgICAgIHJldHVybiBkYXRhVHJhbnNmZXJJdGVtTGlzdFRvQXJyYXkodHJhbnNmZXIuaXRlbXMpO1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbn1cbiJdfQ==
@@ -8689,16 +8689,27 @@ function createFileInput(document) {
8689
8689
  return fileElem;
8690
8690
  }
8691
8691
  function isDirectory(file) {
8692
- return file
8693
- .slice(0, 1)
8694
- .text()
8695
- .then(text => {
8692
+ return blobText(file.slice(0, 1)).then(text => {
8696
8693
  // Firefox will return empty string for a folder, so we must check that special case.
8697
8694
  // That means that any empty file will incorrectly be interpreted as a folder on all
8698
8695
  // browsers, but that's tolerable because there is no real use-case to upload an empty file.
8699
8696
  return text !== '';
8700
8697
  }, () => false);
8701
8698
  }
8699
+ /**
8700
+ * This is a ponyfill for `Blob.text()`, because Safari 13 and 14 do not support it, https://caniuse.com/?search=blob.text,
8701
+ * and we try our best not to break iPhone users too much.
8702
+ */
8703
+ function blobText(blob) {
8704
+ return new Promise((resolve, reject) => {
8705
+ const reader = new FileReader();
8706
+ reader.onload = () => {
8707
+ resolve(reader.result);
8708
+ };
8709
+ reader.onerror = reject;
8710
+ reader.readAsText(blob);
8711
+ });
8712
+ }
8702
8713
  function stopEvent(event) {
8703
8714
  event.preventDefault();
8704
8715
  event.stopPropagation();