mapshaper 0.6.20 → 0.6.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mapshaper.js +26 -19
- package/package.json +1 -1
- package/www/mapshaper-gui.js +33 -28
- package/www/mapshaper.js +26 -19
package/mapshaper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function () {
|
|
2
2
|
|
|
3
|
-
var VERSION = "0.6.
|
|
3
|
+
var VERSION = "0.6.22";
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var utils = /*#__PURE__*/Object.freeze({
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
get formatter () { return formatter; },
|
|
89
89
|
get wildcardToRegExp () { return wildcardToRegExp; },
|
|
90
90
|
get createBuffer () { return createBuffer; },
|
|
91
|
+
get toBuffer () { return toBuffer; },
|
|
91
92
|
get expandoBuffer () { return expandoBuffer; },
|
|
92
93
|
get copyElements () { return copyElements; },
|
|
93
94
|
get extendBuffer () { return extendBuffer; },
|
|
@@ -1033,6 +1034,15 @@
|
|
|
1033
1034
|
}
|
|
1034
1035
|
}
|
|
1035
1036
|
|
|
1037
|
+
function toBuffer(src) {
|
|
1038
|
+
if (src instanceof B$3) return src;
|
|
1039
|
+
if (src instanceof ArrayBuffer) return B$3.from(src);
|
|
1040
|
+
if (src instanceof Uint8Array) {
|
|
1041
|
+
return B$3.from(src.buffer, src.byteOffset, src.byteLength);
|
|
1042
|
+
}
|
|
1043
|
+
error('Unexpected argument type');
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1036
1046
|
function expandoBuffer(constructor, rate) {
|
|
1037
1047
|
var capacity = 0,
|
|
1038
1048
|
k = rate >= 1 ? rate : 1.2,
|
|
@@ -1173,17 +1183,19 @@
|
|
|
1173
1183
|
return str.replace(',', '.');
|
|
1174
1184
|
}
|
|
1175
1185
|
|
|
1176
|
-
function trimQuotes(
|
|
1177
|
-
var len =
|
|
1186
|
+
function trimQuotes(str) {
|
|
1187
|
+
var len = str.length, first, last;
|
|
1178
1188
|
if (len >= 2) {
|
|
1179
|
-
first =
|
|
1180
|
-
last =
|
|
1181
|
-
if (first == '"' && last == '"' && !
|
|
1182
|
-
first == "'" && last == "'" && !
|
|
1183
|
-
|
|
1189
|
+
first = str.charAt(0);
|
|
1190
|
+
last = str.charAt(len-1);
|
|
1191
|
+
if (first == '"' && last == '"' && !str.includes('","') ||
|
|
1192
|
+
first == "'" && last == "'" && !str.includes("','")) {
|
|
1193
|
+
str = str.substr(1, len-2);
|
|
1194
|
+
// remove string escapes
|
|
1195
|
+
str = str.replace(first == '"' ? /\\(?=")/g : /\\(?=')/g, '');
|
|
1184
1196
|
}
|
|
1185
1197
|
}
|
|
1186
|
-
return
|
|
1198
|
+
return str;
|
|
1187
1199
|
}
|
|
1188
1200
|
|
|
1189
1201
|
var LOGGING = false;
|
|
@@ -10763,12 +10775,6 @@
|
|
|
10763
10775
|
};
|
|
10764
10776
|
}
|
|
10765
10777
|
|
|
10766
|
-
// TODO..
|
|
10767
|
-
// export function serializeSession(catalog) {
|
|
10768
|
-
// var obj = exportDatasets(catalog.getDatasets());
|
|
10769
|
-
// return BSON.serialize(obj);
|
|
10770
|
-
// }
|
|
10771
|
-
|
|
10772
10778
|
async function exportDataset(dataset, opts) {
|
|
10773
10779
|
return {
|
|
10774
10780
|
arcs: dataset.arcs ? await exportArcs(dataset.arcs, opts) : null,
|
|
@@ -21453,7 +21459,8 @@ ${svg}
|
|
|
21453
21459
|
|
|
21454
21460
|
function buffer() {
|
|
21455
21461
|
if (!buf) {
|
|
21456
|
-
buf = (src instanceof ArrayBuffer) ? utils.createBuffer(src) : src;
|
|
21462
|
+
// buf = (src instanceof ArrayBuffer) ? utils.createBuffer(src) : src;
|
|
21463
|
+
buf = utils.toBuffer(src);
|
|
21457
21464
|
}
|
|
21458
21465
|
return buf;
|
|
21459
21466
|
}
|
|
@@ -22333,9 +22340,9 @@ ${svg}
|
|
|
22333
22340
|
var assignmentRxp = /^([a-z0-9_+-]+)=(?!=)(.*)$/i; // exclude ==
|
|
22334
22341
|
|
|
22335
22342
|
function splitShellTokens(str) {
|
|
22336
|
-
var BAREWORD =
|
|
22337
|
-
var DOUBLE_QUOTE =
|
|
22338
|
-
var SINGLE_QUOTE = '
|
|
22343
|
+
var BAREWORD = `([^'"\\s])+`;
|
|
22344
|
+
var DOUBLE_QUOTE = `"((\\\\"|[^"])*?)"`;
|
|
22345
|
+
var SINGLE_QUOTE = `'((\\\\'|[^'])*?)'`;
|
|
22339
22346
|
var rxp = new RegExp('(' + BAREWORD + '|' + SINGLE_QUOTE + '|' + DOUBLE_QUOTE + ')*', 'g');
|
|
22340
22347
|
var matches = str.match(rxp) || [];
|
|
22341
22348
|
var chunks = matches.filter(function(chunk) {
|
package/package.json
CHANGED
package/www/mapshaper-gui.js
CHANGED
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
get formatter () { return formatter; },
|
|
86
86
|
get wildcardToRegExp () { return wildcardToRegExp; },
|
|
87
87
|
get createBuffer () { return createBuffer; },
|
|
88
|
+
get toBuffer () { return toBuffer; },
|
|
88
89
|
get expandoBuffer () { return expandoBuffer; },
|
|
89
90
|
get copyElements () { return copyElements; },
|
|
90
91
|
get extendBuffer () { return extendBuffer; },
|
|
@@ -589,12 +590,12 @@
|
|
|
589
590
|
if (arguments.length == 1) {
|
|
590
591
|
return this.el.getAttribute(obj);
|
|
591
592
|
}
|
|
592
|
-
|
|
593
|
-
|
|
593
|
+
if (value === null) {
|
|
594
|
+
this.el.removeAttribute(obj);
|
|
595
|
+
} else {
|
|
596
|
+
this.el.setAttribute(obj, value);
|
|
597
|
+
}
|
|
594
598
|
}
|
|
595
|
-
// else if (!value) {
|
|
596
|
-
// Opts.copyAllParams(this.el, obj);
|
|
597
|
-
// }
|
|
598
599
|
return this;
|
|
599
600
|
},
|
|
600
601
|
|
|
@@ -1397,7 +1398,7 @@
|
|
|
1397
1398
|
addMenuLink({
|
|
1398
1399
|
slug: 'stash',
|
|
1399
1400
|
// label: 'save data snapshot',
|
|
1400
|
-
label: '
|
|
1401
|
+
label: 'create a snapshot',
|
|
1401
1402
|
action: saveSnapshot
|
|
1402
1403
|
});
|
|
1403
1404
|
|
|
@@ -1793,16 +1794,16 @@
|
|
|
1793
1794
|
.attr('multiple', 'multiple')
|
|
1794
1795
|
.on('change', onchange);
|
|
1795
1796
|
|
|
1796
|
-
function onchange(e) {
|
|
1797
|
+
async function onchange(e) {
|
|
1797
1798
|
var files = e.target.files;
|
|
1798
1799
|
// files may be undefined (e.g. if user presses 'cancel' after a file has been selected)
|
|
1799
1800
|
if (files) {
|
|
1800
1801
|
// disable the button while files are being processed
|
|
1801
1802
|
btn.addClass('selected');
|
|
1802
1803
|
input.attr('disabled', true);
|
|
1803
|
-
cb(files);
|
|
1804
|
+
await cb(files);
|
|
1804
1805
|
btn.removeClass('selected');
|
|
1805
|
-
input.attr('disabled',
|
|
1806
|
+
input.attr('disabled', null);
|
|
1806
1807
|
}
|
|
1807
1808
|
}
|
|
1808
1809
|
}
|
|
@@ -1945,6 +1946,7 @@
|
|
|
1945
1946
|
async function receiveFiles(files) {
|
|
1946
1947
|
var names = getFileNames(files);
|
|
1947
1948
|
var expanded = [];
|
|
1949
|
+
if (files.length === 0) return;
|
|
1948
1950
|
try {
|
|
1949
1951
|
expanded = await expandFiles(files);
|
|
1950
1952
|
} catch(e) {
|
|
@@ -1960,7 +1962,7 @@
|
|
|
1960
1962
|
}
|
|
1961
1963
|
gui.enterMode('import');
|
|
1962
1964
|
if (useQuickView()) {
|
|
1963
|
-
importQueuedFiles();
|
|
1965
|
+
await importQueuedFiles();
|
|
1964
1966
|
} else {
|
|
1965
1967
|
gui.container.addClass('queued-files');
|
|
1966
1968
|
El('#path-import-options').classed('hidden', !filesMayContainPaths(queuedFiles));
|
|
@@ -2133,14 +2135,6 @@
|
|
|
2133
2135
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
2134
2136
|
}
|
|
2135
2137
|
|
|
2136
|
-
function runAsync(fn, arg) {
|
|
2137
|
-
return new Promise((resolve, reject) => {
|
|
2138
|
-
fn(arg, function(err, data) {
|
|
2139
|
-
return err ? reject(err) : resolve(data);
|
|
2140
|
-
});
|
|
2141
|
-
});
|
|
2142
|
-
}
|
|
2143
|
-
|
|
2144
2138
|
async function readKmzFile(file) {
|
|
2145
2139
|
var files = await readZipFile(file);
|
|
2146
2140
|
var name = files[0] && files[0].name;
|
|
@@ -2162,7 +2156,7 @@
|
|
|
2162
2156
|
async function readZipFile(file) {
|
|
2163
2157
|
// Async is up to twice as fast unzipping large files
|
|
2164
2158
|
// var index = internal.unzipSync(file.content);
|
|
2165
|
-
var index = await
|
|
2159
|
+
var index = await utils$1.promisify(internal.unzipAsync)(file.content);
|
|
2166
2160
|
return Object.keys(index).reduce(function(memo, filename) {
|
|
2167
2161
|
if (!/\.txt$/i.test(filename)) {
|
|
2168
2162
|
memo.push({
|
|
@@ -2196,7 +2190,7 @@
|
|
|
2196
2190
|
|
|
2197
2191
|
async function readFileData(file) {
|
|
2198
2192
|
try {
|
|
2199
|
-
var content = await
|
|
2193
|
+
var content = await utils$1.promisify(readContentFileAsync)(file);
|
|
2200
2194
|
return {
|
|
2201
2195
|
content: content,
|
|
2202
2196
|
name: file.name
|
|
@@ -6071,6 +6065,15 @@
|
|
|
6071
6065
|
}
|
|
6072
6066
|
}
|
|
6073
6067
|
|
|
6068
|
+
function toBuffer(src) {
|
|
6069
|
+
if (src instanceof B) return src;
|
|
6070
|
+
if (src instanceof ArrayBuffer) return B.from(src);
|
|
6071
|
+
if (src instanceof Uint8Array) {
|
|
6072
|
+
return B.from(src.buffer, src.byteOffset, src.byteLength);
|
|
6073
|
+
}
|
|
6074
|
+
error('Unexpected argument type');
|
|
6075
|
+
}
|
|
6076
|
+
|
|
6074
6077
|
function expandoBuffer(constructor, rate) {
|
|
6075
6078
|
var capacity = 0,
|
|
6076
6079
|
k = rate >= 1 ? rate : 1.2,
|
|
@@ -6211,17 +6214,19 @@
|
|
|
6211
6214
|
return str.replace(',', '.');
|
|
6212
6215
|
}
|
|
6213
6216
|
|
|
6214
|
-
function trimQuotes(
|
|
6215
|
-
var len =
|
|
6217
|
+
function trimQuotes(str) {
|
|
6218
|
+
var len = str.length, first, last;
|
|
6216
6219
|
if (len >= 2) {
|
|
6217
|
-
first =
|
|
6218
|
-
last =
|
|
6219
|
-
if (first == '"' && last == '"' && !
|
|
6220
|
-
first == "'" && last == "'" && !
|
|
6221
|
-
|
|
6220
|
+
first = str.charAt(0);
|
|
6221
|
+
last = str.charAt(len-1);
|
|
6222
|
+
if (first == '"' && last == '"' && !str.includes('","') ||
|
|
6223
|
+
first == "'" && last == "'" && !str.includes("','")) {
|
|
6224
|
+
str = str.substr(1, len-2);
|
|
6225
|
+
// remove string escapes
|
|
6226
|
+
str = str.replace(first == '"' ? /\\(?=")/g : /\\(?=')/g, '');
|
|
6222
6227
|
}
|
|
6223
6228
|
}
|
|
6224
|
-
return
|
|
6229
|
+
return str;
|
|
6225
6230
|
}
|
|
6226
6231
|
|
|
6227
6232
|
function absArcId(arcId) {
|
package/www/mapshaper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function () {
|
|
2
2
|
|
|
3
|
-
var VERSION = "0.6.
|
|
3
|
+
var VERSION = "0.6.22";
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var utils = /*#__PURE__*/Object.freeze({
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
get formatter () { return formatter; },
|
|
89
89
|
get wildcardToRegExp () { return wildcardToRegExp; },
|
|
90
90
|
get createBuffer () { return createBuffer; },
|
|
91
|
+
get toBuffer () { return toBuffer; },
|
|
91
92
|
get expandoBuffer () { return expandoBuffer; },
|
|
92
93
|
get copyElements () { return copyElements; },
|
|
93
94
|
get extendBuffer () { return extendBuffer; },
|
|
@@ -1033,6 +1034,15 @@
|
|
|
1033
1034
|
}
|
|
1034
1035
|
}
|
|
1035
1036
|
|
|
1037
|
+
function toBuffer(src) {
|
|
1038
|
+
if (src instanceof B$3) return src;
|
|
1039
|
+
if (src instanceof ArrayBuffer) return B$3.from(src);
|
|
1040
|
+
if (src instanceof Uint8Array) {
|
|
1041
|
+
return B$3.from(src.buffer, src.byteOffset, src.byteLength);
|
|
1042
|
+
}
|
|
1043
|
+
error('Unexpected argument type');
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1036
1046
|
function expandoBuffer(constructor, rate) {
|
|
1037
1047
|
var capacity = 0,
|
|
1038
1048
|
k = rate >= 1 ? rate : 1.2,
|
|
@@ -1173,17 +1183,19 @@
|
|
|
1173
1183
|
return str.replace(',', '.');
|
|
1174
1184
|
}
|
|
1175
1185
|
|
|
1176
|
-
function trimQuotes(
|
|
1177
|
-
var len =
|
|
1186
|
+
function trimQuotes(str) {
|
|
1187
|
+
var len = str.length, first, last;
|
|
1178
1188
|
if (len >= 2) {
|
|
1179
|
-
first =
|
|
1180
|
-
last =
|
|
1181
|
-
if (first == '"' && last == '"' && !
|
|
1182
|
-
first == "'" && last == "'" && !
|
|
1183
|
-
|
|
1189
|
+
first = str.charAt(0);
|
|
1190
|
+
last = str.charAt(len-1);
|
|
1191
|
+
if (first == '"' && last == '"' && !str.includes('","') ||
|
|
1192
|
+
first == "'" && last == "'" && !str.includes("','")) {
|
|
1193
|
+
str = str.substr(1, len-2);
|
|
1194
|
+
// remove string escapes
|
|
1195
|
+
str = str.replace(first == '"' ? /\\(?=")/g : /\\(?=')/g, '');
|
|
1184
1196
|
}
|
|
1185
1197
|
}
|
|
1186
|
-
return
|
|
1198
|
+
return str;
|
|
1187
1199
|
}
|
|
1188
1200
|
|
|
1189
1201
|
var LOGGING = false;
|
|
@@ -10763,12 +10775,6 @@
|
|
|
10763
10775
|
};
|
|
10764
10776
|
}
|
|
10765
10777
|
|
|
10766
|
-
// TODO..
|
|
10767
|
-
// export function serializeSession(catalog) {
|
|
10768
|
-
// var obj = exportDatasets(catalog.getDatasets());
|
|
10769
|
-
// return BSON.serialize(obj);
|
|
10770
|
-
// }
|
|
10771
|
-
|
|
10772
10778
|
async function exportDataset(dataset, opts) {
|
|
10773
10779
|
return {
|
|
10774
10780
|
arcs: dataset.arcs ? await exportArcs(dataset.arcs, opts) : null,
|
|
@@ -21453,7 +21459,8 @@ ${svg}
|
|
|
21453
21459
|
|
|
21454
21460
|
function buffer() {
|
|
21455
21461
|
if (!buf) {
|
|
21456
|
-
buf = (src instanceof ArrayBuffer) ? utils.createBuffer(src) : src;
|
|
21462
|
+
// buf = (src instanceof ArrayBuffer) ? utils.createBuffer(src) : src;
|
|
21463
|
+
buf = utils.toBuffer(src);
|
|
21457
21464
|
}
|
|
21458
21465
|
return buf;
|
|
21459
21466
|
}
|
|
@@ -22333,9 +22340,9 @@ ${svg}
|
|
|
22333
22340
|
var assignmentRxp = /^([a-z0-9_+-]+)=(?!=)(.*)$/i; // exclude ==
|
|
22334
22341
|
|
|
22335
22342
|
function splitShellTokens(str) {
|
|
22336
|
-
var BAREWORD =
|
|
22337
|
-
var DOUBLE_QUOTE =
|
|
22338
|
-
var SINGLE_QUOTE = '
|
|
22343
|
+
var BAREWORD = `([^'"\\s])+`;
|
|
22344
|
+
var DOUBLE_QUOTE = `"((\\\\"|[^"])*?)"`;
|
|
22345
|
+
var SINGLE_QUOTE = `'((\\\\'|[^'])*?)'`;
|
|
22339
22346
|
var rxp = new RegExp('(' + BAREWORD + '|' + SINGLE_QUOTE + '|' + DOUBLE_QUOTE + ')*', 'g');
|
|
22340
22347
|
var matches = str.match(rxp) || [];
|
|
22341
22348
|
var chunks = matches.filter(function(chunk) {
|