You've already forked wakapi-readme-stats
Bar graph added.
This commit is contained in:
89
node_modules/d3-geo-projection/bin/geo2svg
generated
vendored
Executable file
89
node_modules/d3-geo-projection/bin/geo2svg
generated
vendored
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var os = require("os"),
|
||||
commander = require("commander"),
|
||||
d3 = Object.assign({}, require("d3-geo"), require("../")),
|
||||
read = require("./read"),
|
||||
write = require("./write");
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] [file]")
|
||||
.description("Convert GeoJSON to SVG.")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-w, --width <value>", "output width", 960)
|
||||
.option("-h, --height <value>", "output height", 500)
|
||||
.option("-p, --precision <value>", "number of output digits after the decimal point", 6)
|
||||
.option("-n, --newline-delimited", "accept newline-delimited JSON")
|
||||
.option("--fill <value>", "default fill", "none")
|
||||
.option("--stroke <value>", "default stroke", "black")
|
||||
.option("-r, --radius <value>", "default point radius", 4.5)
|
||||
.parse(process.argv);
|
||||
|
||||
if (commander.args.length === 0) commander.args[0] = "-";
|
||||
else if (commander.args.length !== 1) {
|
||||
console.error();
|
||||
console.error(" error: multiple input files");
|
||||
console.error();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
var reader = read(commander.args[0], commander.newlineDelimited, transform).then(end).catch(abort),
|
||||
writer = write(commander.out),
|
||||
path = d3.geoPath().pointRadius(function(d) { var p = d.properties, v; return p && (v = p["point-radius"] || p.pointRadius) != null ? v : commander.radius; }),
|
||||
render = commander.precision == null ? path : function(d) { return path(d3.geoQuantize(d, commander.precision)); };
|
||||
|
||||
writer.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + os.EOL
|
||||
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">" + os.EOL
|
||||
+ "<!-- Generated by geo2svg " + require("../package.json").version + ". https://d3js.org/d3-geo-projection/ -->" + os.EOL
|
||||
+ "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\""
|
||||
+ " width=\"" + +commander.width + "\""
|
||||
+ " height=\"" + +commander.height + "\""
|
||||
+ " viewBox=\"0 0 " + +commander.width + " " + +commander.height + "\""
|
||||
+ (commander.fill != "black" ? " fill=\"" + attr(commander.fill) + "\"" : "")
|
||||
+ (commander.stroke != "none" ? " stroke=\"" + attr(commander.stroke) + "\"" : "")
|
||||
+ ">" + os.EOL);
|
||||
|
||||
function transform(d) {
|
||||
var p = d.properties, v;
|
||||
return writer.write(" <path"
|
||||
+ ((v = d.id) != null ? " id=\"" + attr(v + "") + "\"" : "")
|
||||
+ (p ? ((v = p["fill"]) != null ? " fill=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["fill-rule"] || p.fillRule) != null ? " fill-rule=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["fill-opacity"] || p.fillOpacity) != null ? " fill-opacity=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke"]) != null ? " stroke=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-width"] || p.strokeWidth) != null ? " stroke-width=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-linecap"] || p.strokeLinecap) != null ? " stroke-linecap=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-linejoin"] || p.strokeLinejoin) != null ? " stroke-linejoin=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-miterlimit"] || p.strokeMiterlimit) != null ? " stroke-miterlimit=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-dasharray"] || p.strokeDasharray) != null ? " stroke-dasharray=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-dashoffset"] || p.strokeDashoffset) != null ? " stroke-dashoffset=\"" + attr(v + "") + "\"" : "")
|
||||
+ ((v = p["stroke-opacity"] || p.strokeOpacity) != null ? " stroke-opacity=\"" + attr(v + "") + "\"" : "")
|
||||
: "")
|
||||
+ (v = render(d), v ? " d=\"" + v + "\"" : "")
|
||||
+ ">"
|
||||
+ ((v = p && p["title"]) != null ? "<title>" + text(v + "") + "</title>" : "")
|
||||
+ "</path>" + os.EOL);
|
||||
}
|
||||
|
||||
function end() {
|
||||
return writer.write("</svg>" + os.EOL);
|
||||
}
|
||||
|
||||
function abort(error) {
|
||||
console.error(error.stack);
|
||||
}
|
||||
|
||||
function text(string) {
|
||||
return string.replace(/[&<>]/g, function(character) {
|
||||
switch (character) {
|
||||
case "&": return "&";
|
||||
case "<": return "<";
|
||||
case ">": return ">";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function attr(string) {
|
||||
return string.replace(/"/g, """);
|
||||
}
|
||||
55
node_modules/d3-geo-projection/bin/geograticule
generated
vendored
Executable file
55
node_modules/d3-geo-projection/bin/geograticule
generated
vendored
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var commander = require("commander"),
|
||||
graticule = require("d3-geo").geoGraticule(),
|
||||
write = require("./write");
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options]")
|
||||
.description("Generate a GeoJSON graticule.")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("--extent <value>", "the major and minor extent", parseExtent)
|
||||
.option("--extent-minor <value>", "the minor extent; defaults to " + graticule.extentMajor(), parseExtent)
|
||||
.option("--extent-major <value>", "the major extent; defaults to " + graticule.extentMinor(), parseExtent)
|
||||
.option("--step <value>", "the major and minor step", parseStep)
|
||||
.option("--step-minor <value>", "the minor step; defaults to " + graticule.stepMinor(), parseStep)
|
||||
.option("--step-major <value>", "the major step; defaults to " + graticule.stepMajor(), parseStep)
|
||||
.option("--precision <value>", "the precision; defaults to " + graticule.precision(), graticule.precision)
|
||||
.parse(process.argv);
|
||||
|
||||
if (commander.args.length !== 0) {
|
||||
console.error();
|
||||
console.error(" error: unexpected arguments");
|
||||
console.error();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (commander.extent != null) {
|
||||
if (commander.extentMinor == null) commander.extentMinor = commander.extent;
|
||||
if (commander.extentMajor == null) commander.extentMajor = commander.extent;
|
||||
}
|
||||
if (commander.step != null) {
|
||||
if (commander.stepMinor == null) commander.stepMinor = commander.step;
|
||||
if (commander.stepMajor == null) commander.stepMajor = commander.step;
|
||||
}
|
||||
if (commander.extentMinor != null) graticule.extentMinor(commander.extentMinor);
|
||||
if (commander.extentMajor != null) graticule.extentMajor(commander.extentMajor);
|
||||
if (commander.stepMinor != null) graticule.stepMinor(commander.stepMinor);
|
||||
if (commander.stepMajor != null) graticule.stepMajor(commander.stepMajor);
|
||||
|
||||
var writer = write(commander.out);
|
||||
writer.write(JSON.stringify(graticule()) + "\n");
|
||||
writer.end().catch(abort);
|
||||
|
||||
function parseStep(x) {
|
||||
return x = x.split(","), x.length === 1 ? [+x[0], +x[0]] : [+x[0], +x[1]];
|
||||
}
|
||||
|
||||
function parseExtent(x) {
|
||||
return x = x.split(","), [[+x[0], +x[1]], [+x[2], +x[3]]];
|
||||
}
|
||||
|
||||
function abort(error) {
|
||||
console.error(error.stack);
|
||||
}
|
||||
53
node_modules/d3-geo-projection/bin/geoproject
generated
vendored
Executable file
53
node_modules/d3-geo-projection/bin/geoproject
generated
vendored
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var commander = require("commander"),
|
||||
vm = require("vm"),
|
||||
d3 = Object.assign({}, require("d3-geo"), require("../")),
|
||||
read = require("./read"),
|
||||
requires = require("./requires"),
|
||||
write = require("./write");
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] <projection> [file]")
|
||||
.description("Transform GeoJSON, such as to project from spherical to planar coordinates.")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-p, --precision <value>", "number of output digits after the decimal point")
|
||||
.option("-n, --newline-delimited", "use newline-delimited JSON")
|
||||
.option("-r, --require <[name=]module>", "require a module", requires, {d3: d3, d: undefined, i: -1})
|
||||
.parse(process.argv);
|
||||
|
||||
if (commander.args.length < 1) {
|
||||
console.error();
|
||||
console.error(" error: missing projection");
|
||||
console.error();
|
||||
process.exit(1);
|
||||
} else if (commander.args.length > 2) {
|
||||
console.error();
|
||||
console.error(" error: multiple input files");
|
||||
console.error();
|
||||
process.exit(1);
|
||||
} else if (commander.args.length === 1) {
|
||||
commander.args.push("-");
|
||||
}
|
||||
|
||||
var sandbox = commander.require,
|
||||
context = new vm.createContext(sandbox),
|
||||
projection = new vm.Script("(" + commander.args[0] + ")"),
|
||||
reader = read(commander.args[1], commander.newlineDelimited, project).then(end).catch(abort),
|
||||
writer = write(commander.out);
|
||||
|
||||
function project(d, i) {
|
||||
sandbox.d = d, sandbox.i = i;
|
||||
d = d3.geoProject(d, projection.runInContext(context));
|
||||
if (commander.precision != null) d = d3.geoQuantize(d, commander.precision);
|
||||
return writer.write(JSON.stringify(d) + "\n");
|
||||
}
|
||||
|
||||
function end() {
|
||||
return writer.end();
|
||||
}
|
||||
|
||||
function abort(error) {
|
||||
console.error(error.stack);
|
||||
}
|
||||
40
node_modules/d3-geo-projection/bin/geoquantize
generated
vendored
Executable file
40
node_modules/d3-geo-projection/bin/geoquantize
generated
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var commander = require("commander"),
|
||||
d3 = Object.assign({}, require("d3-geo"), require("../")),
|
||||
read = require("./read"),
|
||||
write = require("./write");
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] [file]")
|
||||
.description("Quantize GeoJSON.")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-p, --precision <value>", "number of output digits after the decimal point")
|
||||
.option("-n, --newline-delimited", "use newline-delimited JSON")
|
||||
.parse(process.argv);
|
||||
|
||||
if (commander.args.length > 1) {
|
||||
console.error();
|
||||
console.error(" error: multiple input files");
|
||||
console.error();
|
||||
process.exit(1);
|
||||
} else if (commander.args.length === 0) {
|
||||
commander.args.push("-");
|
||||
}
|
||||
|
||||
var reader = read(commander.args[0], commander.newlineDelimited, quantize).then(end).catch(abort),
|
||||
writer = write(commander.out);
|
||||
|
||||
function quantize(d, i) {
|
||||
if (commander.precision != null) d = d3.geoQuantize(d, commander.precision);
|
||||
return writer.write(JSON.stringify(d) + "\n");
|
||||
}
|
||||
|
||||
function end() {
|
||||
return writer.end();
|
||||
}
|
||||
|
||||
function abort(error) {
|
||||
console.error(error.stack);
|
||||
}
|
||||
37
node_modules/d3-geo-projection/bin/geostitch
generated
vendored
Executable file
37
node_modules/d3-geo-projection/bin/geostitch
generated
vendored
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
var commander = require("commander"),
|
||||
d3 = require("../"),
|
||||
read = require("./read"),
|
||||
write = require("./write");
|
||||
|
||||
commander
|
||||
.version(require("../package.json").version)
|
||||
.usage("[options] [file]")
|
||||
.description("Stitch equirectangular GeoJSON in degrees, removing antimeridian and polar cuts.")
|
||||
.option("-o, --out <file>", "output file name; defaults to “-” for stdout", "-")
|
||||
.option("-n, --newline-delimited", "use newline-delimited JSON")
|
||||
.parse(process.argv);
|
||||
|
||||
if (commander.args.length === 0) commander.args[0] = "-";
|
||||
else if (commander.args.length !== 1) {
|
||||
console.error();
|
||||
console.error(" error: multiple input files");
|
||||
console.error();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
var reader = read(commander.args[0], commander.newlineDelimited, stitch).then(end).catch(abort),
|
||||
writer = write(commander.out);
|
||||
|
||||
function stitch(d) {
|
||||
return writer.write(JSON.stringify(d3.geoStitch(d)) + "\n");
|
||||
}
|
||||
|
||||
function end() {
|
||||
return writer.end();
|
||||
}
|
||||
|
||||
function abort(error) {
|
||||
console.error(error.stack);
|
||||
}
|
||||
39
node_modules/d3-geo-projection/bin/read.js
generated
vendored
Normal file
39
node_modules/d3-geo-projection/bin/read.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
var fs = require("fs"),
|
||||
readline = require("readline");
|
||||
|
||||
module.exports = function(file, newlineDelimited, callback) {
|
||||
var index = -1,
|
||||
input = file === "-" ? process.stdin : fs.createReadStream(file);
|
||||
|
||||
function readObject() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
var data = [];
|
||||
input
|
||||
.on("data", function(d) { data.push(d); })
|
||||
.on("end", function() { resolve(JSON.parse(Buffer.concat(data))); })
|
||||
.on("error", reject);
|
||||
});
|
||||
}
|
||||
|
||||
function readNewlineDelimitedObjects() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
var queue = Promise.resolve();
|
||||
readline.createInterface({
|
||||
input: input,
|
||||
output: null
|
||||
}).on("line", function(line) {
|
||||
queue = queue.then(function() { return callbackObject(JSON.parse(line)); });
|
||||
}).on("close", function() {
|
||||
queue.then(function() { resolve(); }, reject);
|
||||
}).on("error", reject);
|
||||
});
|
||||
}
|
||||
|
||||
function callbackObject(object) {
|
||||
return callback(object, ++index);
|
||||
}
|
||||
|
||||
return newlineDelimited
|
||||
? readNewlineDelimitedObjects()
|
||||
: readObject().then(callbackObject);
|
||||
};
|
||||
10
node_modules/d3-geo-projection/bin/requires.js
generated
vendored
Normal file
10
node_modules/d3-geo-projection/bin/requires.js
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
var resolve = require("./resolve");
|
||||
|
||||
module.exports = function(module, sandbox) {
|
||||
var i = module.indexOf("="), name = module;
|
||||
if (i >= 0) name = module.slice(0, i), module = module.slice(i + 1);
|
||||
module = require(resolve(module));
|
||||
if (sandbox[name]) Object.assign(sandbox[name], module);
|
||||
else sandbox[name] = module;
|
||||
return sandbox;
|
||||
};
|
||||
16
node_modules/d3-geo-projection/bin/resolve.js
generated
vendored
Normal file
16
node_modules/d3-geo-projection/bin/resolve.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
var child_process = require("child_process"),
|
||||
resolve = require("resolve"),
|
||||
options = {basedir: process.cwd(), paths: []};
|
||||
|
||||
module.exports = function(module) {
|
||||
try {
|
||||
return resolve.sync(module, options); // Attempt fast local resolve first.
|
||||
} catch (error) {
|
||||
if (!options.paths.length) {
|
||||
options.paths.push(child_process.execSync("npm root -g").toString().trim());
|
||||
return resolve.sync(module, options);
|
||||
} else {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
};
|
||||
35
node_modules/d3-geo-projection/bin/write.js
generated
vendored
Normal file
35
node_modules/d3-geo-projection/bin/write.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
var fs = require("fs");
|
||||
|
||||
function handleEpipe(error) {
|
||||
if (error.code === "EPIPE" || error.errno === "EPIPE") {
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function(file) {
|
||||
var output = (file === "-" ? process.stdout : fs.createWriteStream(file)).on("error", handleEpipe),
|
||||
queue = Promise.resolve();
|
||||
return {
|
||||
write: function(data) {
|
||||
return queue = queue.then(function() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
output.write(data, function(error) {
|
||||
if (error) reject(error);
|
||||
else resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
end: function() {
|
||||
if (output === process.stdout) return queue;
|
||||
return queue = queue.then(function() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
output.end(function(error) {
|
||||
if (error) reject(error);
|
||||
else resolve();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user