📦 2.0.0-rc.1

This commit is contained in:
release bot
2022-04-11 21:23:16 +00:00
parent 6b320a1ac4
commit e7aa7b7289
3 changed files with 162 additions and 66 deletions

View File

@@ -4,7 +4,7 @@ author: "platane"
runs: runs:
using: docker using: docker
image: docker://platane/snk@sha256:74d02183a9a4adb8e00d9f50e6eb5035a5b6ef02644d848363ef3301235ebd1d image: docker://platane/snk@sha256:300fb94d3b1214e6c229990b458286a8f1c4c68a178b1b59b670c9fcac7c80d1
inputs: inputs:
github_user_name: github_user_name:

View File

@@ -1,7 +1,7 @@
{ {
"name": "snk", "name": "snk",
"description": "Generates a snake game from a github user contributions grid", "description": "Generates a snake game from a github user contributions grid",
"version": "2.0.0", "version": "2.0.0-rc.1",
"private": true, "private": true,
"repository": "github:platane/snk", "repository": "github:platane/snk",
"devDependencies": { "devDependencies": {

224
svg-only/dist/index.js vendored
View File

@@ -32781,55 +32781,51 @@ var userContributionToGrid_1 = __webpack_require__(5740);
var getBestRoute_1 = __webpack_require__(2705); var getBestRoute_1 = __webpack_require__(2705);
var snake_1 = __webpack_require__(7087); var snake_1 = __webpack_require__(7087);
var getPathToPose_1 = __webpack_require__(6963); var getPathToPose_1 = __webpack_require__(6963);
var generateContributionSnake = function (userName, format) { return __awaiter(void 0, void 0, void 0, function () { var generateContributionSnake = function (userName, outputs) { return __awaiter(void 0, void 0, void 0, function () {
var _a, cells, colorScheme, grid, snake, drawOptions, gifOptions, chain, output, createGif, _b, createSvg; var _a, cells, colorScheme, grid, snake, chain;
return __generator(this, function (_c) { return __generator(this, function (_b) {
switch (_c.label) { switch (_b.label) {
case 0: case 0:
console.log("🎣 fetching github user contribution"); console.log("🎣 fetching github user contribution");
return [4 /*yield*/, (0, github_user_contribution_1.getGithubUserContribution)(userName)]; return [4 /*yield*/, (0, github_user_contribution_1.getGithubUserContribution)(userName)];
case 1: case 1:
_a = _c.sent(), cells = _a.cells, colorScheme = _a.colorScheme; _a = _b.sent(), cells = _a.cells, colorScheme = _a.colorScheme;
grid = (0, userContributionToGrid_1.userContributionToGrid)(cells, colorScheme); grid = (0, userContributionToGrid_1.userContributionToGrid)(cells, colorScheme);
snake = snake_1.snake4; snake = snake_1.snake4;
drawOptions = {
sizeBorderRadius: 2,
sizeCell: 16,
sizeDot: 12,
colorBorder: "#1b1f230a",
colorDots: colorScheme,
colorEmpty: colorScheme[0],
colorSnake: "purple",
cells: cells,
dark: {
colorEmpty: "#161b22",
colorDots: { 1: "#01311f", 2: "#034525", 3: "#0f6d31", 4: "#00c647" }
}
};
gifOptions = { frameDuration: 100, step: 1 };
console.log("📡 computing best route"); console.log("📡 computing best route");
chain = (0, getBestRoute_1.getBestRoute)(grid, snake); chain = (0, getBestRoute_1.getBestRoute)(grid, snake);
chain.push.apply(chain, (0, getPathToPose_1.getPathToPose)(chain.slice(-1)[0], snake)); chain.push.apply(chain, (0, getPathToPose_1.getPathToPose)(chain.slice(-1)[0], snake));
output = {}; return [2 /*return*/, Promise.all(outputs.map(function (out, i) { return __awaiter(void 0, void 0, void 0, function () {
if (!format.gif) return [3 /*break*/, 4]; var format, drawOptions, gifOptions, _a, createSvg, createGif;
console.log("📹 creating gif"); return __generator(this, function (_b) {
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(340)); })]; switch (_b.label) {
case 2: case 0:
createGif = (_c.sent()).createGif; if (!out)
_b = output; return [2 /*return*/];
return [4 /*yield*/, createGif(grid, chain, drawOptions, gifOptions)]; format = out.format, drawOptions = out.drawOptions, gifOptions = out.gifOptions;
case 3: _a = format;
_b.gif = _c.sent(); switch (_a) {
_c.label = 4; case "svg": return [3 /*break*/, 1];
case 4: case "gif": return [3 /*break*/, 3];
if (!format.svg) return [3 /*break*/, 6]; }
console.log("🖌 creating svg"); return [3 /*break*/, 6];
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(7415)); })]; case 1:
case 5: console.log("\uD83D\uDD8C creating svg (outputs[".concat(i, "])"));
createSvg = (_c.sent()).createSvg; return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(7415)); })];
output.svg = createSvg(grid, chain, drawOptions, gifOptions); case 2:
_c.label = 6; createSvg = (_b.sent()).createSvg;
case 6: return [2 /*return*/, output]; return [2 /*return*/, createSvg(grid, chain, drawOptions, gifOptions)];
case 3:
console.log("\uD83D\uDCF9 creating gif (outputs[".concat(i, "])"));
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(340)); })];
case 4:
createGif = (_b.sent()).createGif;
return [4 /*yield*/, createGif(grid, chain, drawOptions, gifOptions)];
case 5: return [2 /*return*/, _b.sent()];
case 6: return [2 /*return*/];
}
});
}); }))];
} }
}); });
}); }; }); };
@@ -32907,30 +32903,30 @@ var fs = __importStar(__webpack_require__(5747));
var path = __importStar(__webpack_require__(5622)); var path = __importStar(__webpack_require__(5622));
var core = __importStar(__webpack_require__(7117)); var core = __importStar(__webpack_require__(7117));
var generateContributionSnake_1 = __webpack_require__(8847); var generateContributionSnake_1 = __webpack_require__(8847);
var outputsOptions_1 = __webpack_require__(3379);
(function () { return __awaiter(void 0, void 0, void 0, function () { (function () { return __awaiter(void 0, void 0, void 0, function () {
var userName, format, _a, svg, gif, e_1; var userName, outputs, results_1, e_1;
var _a;
return __generator(this, function (_b) { return __generator(this, function (_b) {
switch (_b.label) { switch (_b.label) {
case 0: case 0:
_b.trys.push([0, 2, , 3]); _b.trys.push([0, 2, , 3]);
userName = core.getInput("github_user_name"); userName = core.getInput("github_user_name");
format = { outputs = (0, outputsOptions_1.parseOutputsOption)((_a = core.getMultilineInput("outputs")) !== null && _a !== void 0 ? _a : [
svg: core.getInput("svg_out_path"), core.getInput("gif_out_path"),
gif: core.getInput("gif_out_path") core.getInput("svg_out_path"),
}; ]);
return [4 /*yield*/, (0, generateContributionSnake_1.generateContributionSnake)(userName, format)]; return [4 /*yield*/, (0, generateContributionSnake_1.generateContributionSnake)(userName, outputs)];
case 1: case 1:
_a = _b.sent(), svg = _a.svg, gif = _a.gif; results_1 = _b.sent();
if (svg) { outputs.forEach(function (out, i) {
fs.mkdirSync(path.dirname(format.svg), { recursive: true }); var result = results_1[i];
fs.writeFileSync(format.svg, svg); if ((out === null || out === void 0 ? void 0 : out.filename) && result) {
core.setOutput("svg_out_path", format.svg); console.log("\uD83D\uDCBE writing to ".concat(out === null || out === void 0 ? void 0 : out.filename));
} fs.mkdirSync(path.dirname(out === null || out === void 0 ? void 0 : out.filename), { recursive: true });
if (gif) { fs.writeFileSync(out === null || out === void 0 ? void 0 : out.filename, result);
fs.mkdirSync(path.dirname(format.gif), { recursive: true }); }
fs.writeFileSync(format.gif, gif); });
core.setOutput("gif_out_path", format.gif);
}
return [3 /*break*/, 3]; return [3 /*break*/, 3];
case 2: case 2:
e_1 = _b.sent(); e_1 = _b.sent();
@@ -32942,6 +32938,106 @@ var generateContributionSnake_1 = __webpack_require__(8847);
}); })(); }); })();
/***/ }),
/***/ 3379:
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
exports.__esModule = true;
exports.parseEntry = exports.parseOutputsOption = void 0;
var palettes_1 = __webpack_require__(3848);
var parseOutputsOption = function (lines) { return lines.map(exports.parseEntry); };
exports.parseOutputsOption = parseOutputsOption;
var parseEntry = function (entry) {
var m = entry.trim().match(/^(.+\.(svg|gif))(\?.*)?$/);
if (!m)
return null;
var _ = m[0], filename = m[1], format = m[2], query = m[3];
var sp = new URLSearchParams(query || "");
var drawOptions = __assign({ sizeDotBorderRadius: 2, sizeCell: 16, sizeDot: 12 }, palettes_1.palettes["default"]);
var gifOptions = { step: 1, frameDuration: 100 };
{
var palette = palettes_1.palettes[sp.get("palette")];
if (palette) {
Object.assign(drawOptions, palette);
drawOptions.dark = palette.dark && __assign({}, palette.dark);
}
}
if (sp.has("color_snake"))
drawOptions.colorSnake = sp.get("color_snake");
if (sp.has("color_dots")) {
var colors = sp.get("color_dots").split(/[,;]/);
drawOptions.colorDots = colors;
drawOptions.colorEmpty = colors[0];
drawOptions.dark = undefined;
}
if (sp.has("color_dot_border"))
drawOptions.colorDotBorder = sp.get("color_dot_border");
if (sp.has("dark_color_dots")) {
var colors = sp.get("dark_color_dots").split(/[,;]/);
drawOptions.dark = __assign(__assign({}, drawOptions.dark), { colorDots: colors, colorEmpty: colors[0] });
}
if (sp.has("dark_color_dot_border") && drawOptions.dark)
drawOptions.dark.colorDotBorder = sp.get("color_dot_border");
if (sp.has("dark_color_snake") && drawOptions.dark)
drawOptions.dark.colorSnake = sp.get("color_snake");
return { filename: filename, format: format, drawOptions: drawOptions, gifOptions: gifOptions };
};
exports.parseEntry = parseEntry;
/***/ }),
/***/ 3848:
/***/ (function(__unused_webpack_module, exports) {
"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
exports.__esModule = true;
exports.palettes = void 0;
exports.palettes = {
"github-light": {
colorDotBorder: "#1b1f230a",
colorDots: ["#ebedf0", "#9be9a8", "#40c463", "#30a14e", "#216e39"],
colorEmpty: "#ebedf0",
colorSnake: "purple"
},
"github-dark": {
colorDotBorder: "#1b1f230a",
colorEmpty: "#161b22",
colorDots: ["#161b22", "#01311f", "#034525", "#0f6d31", "#00c647"],
colorSnake: "purple"
}
};
// aliases
exports.palettes.github = __assign(__assign({}, exports.palettes["github-light"]), { dark: __assign({}, exports.palettes["github-dark"]) });
exports.palettes.default = exports.palettes["github"];
/***/ }), /***/ }),
/***/ 5740: /***/ 5740:
@@ -32999,10 +33095,10 @@ var drawGrid = function (ctx, grid, o) {
ctx.save(); ctx.save();
ctx.translate(x * o.sizeCell + (o.sizeCell - o.sizeDot) / 2, y * o.sizeCell + (o.sizeCell - o.sizeDot) / 2); ctx.translate(x * o.sizeCell + (o.sizeCell - o.sizeDot) / 2, y * o.sizeCell + (o.sizeCell - o.sizeDot) / 2);
ctx.fillStyle = color; ctx.fillStyle = color;
ctx.strokeStyle = o.colorBorder; ctx.strokeStyle = o.colorDotBorder;
ctx.lineWidth = 1; ctx.lineWidth = 1;
ctx.beginPath(); ctx.beginPath();
(0, pathRoundedRect_1.pathRoundedRect)(ctx, o.sizeDot, o.sizeDot, o.sizeBorderRadius); (0, pathRoundedRect_1.pathRoundedRect)(ctx, o.sizeDot, o.sizeDot, o.sizeDotBorderRadius);
ctx.fill(); ctx.fill();
ctx.stroke(); ctx.stroke();
ctx.closePath(); ctx.closePath();
@@ -34284,7 +34380,7 @@ exports.createGrid = void 0;
var utils_1 = __webpack_require__(5913); var utils_1 = __webpack_require__(5913);
var percent = function (x) { return (x * 100).toFixed(2); }; var percent = function (x) { return (x * 100).toFixed(2); };
var createGrid = function (cells, _a, duration) { var createGrid = function (cells, _a, duration) {
var sizeBorderRadius = _a.sizeBorderRadius, sizeDot = _a.sizeDot, sizeCell = _a.sizeCell; var sizeDotBorderRadius = _a.sizeDotBorderRadius, sizeDot = _a.sizeDot, sizeCell = _a.sizeCell;
var svgElements = []; var svgElements = [];
var styles = [ var styles = [
".c{\n shape-rendering: geometricPrecision;\n fill: var(--ce);\n stroke-width: 1px;\n stroke: var(--cb);\n animation: none ".concat(duration, "ms linear infinite;\n }"), ".c{\n shape-rendering: geometricPrecision;\n fill: var(--ce);\n stroke-width: 1px;\n stroke: var(--cb);\n animation: none ".concat(duration, "ms linear infinite;\n }"),
@@ -34307,8 +34403,8 @@ var createGrid = function (cells, _a, duration) {
"class": ["c", id].filter(Boolean).join(" "), "class": ["c", id].filter(Boolean).join(" "),
x: x * s + m, x: x * s + m,
y: y * s + m, y: y * s + m,
rx: sizeBorderRadius, rx: sizeDotBorderRadius,
ry: sizeBorderRadius, ry: sizeDotBorderRadius,
width: d, width: d,
height: d height: d
})); }));
@@ -34442,14 +34538,14 @@ exports.createSvg = createSvg;
var optimizeCss = function (css) { return csso.minify(css).css; }; var optimizeCss = function (css) { return csso.minify(css).css; };
var optimizeSvg = function (svg) { return svg; }; var optimizeSvg = function (svg) { return svg; };
var generateColorVar = function (drawOptions) { var generateColorVar = function (drawOptions) {
return "\n :root {\n --cb: ".concat(drawOptions.colorBorder, ";\n --cs: ").concat(drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.colorEmpty, ";\n ").concat(Object.entries(drawOptions.colorDots) return "\n :root {\n --cb: ".concat(drawOptions.colorDotBorder, ";\n --cs: ").concat(drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.colorEmpty, ";\n ").concat(Object.entries(drawOptions.colorDots)
.map(function (_a) { .map(function (_a) {
var i = _a[0], color = _a[1]; var i = _a[0], color = _a[1];
return "--c".concat(i, ":").concat(color, ";"); return "--c".concat(i, ":").concat(color, ";");
}) })
.join(""), "\n }\n ") + .join(""), "\n }\n ") +
(drawOptions.dark (drawOptions.dark
? "\n @media (prefers-color-scheme: dark) {\n :root {\n --cb: ".concat(drawOptions.dark.colorBorder || drawOptions.colorBorder, ";\n --cs: ").concat(drawOptions.dark.colorSnake || drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.dark.colorEmpty, ";\n ").concat(Object.entries(drawOptions.dark.colorDots) ? "\n @media (prefers-color-scheme: dark) {\n :root {\n --cb: ".concat(drawOptions.dark.colorDotBorder || drawOptions.colorDotBorder, ";\n --cs: ").concat(drawOptions.dark.colorSnake || drawOptions.colorSnake, ";\n --ce: ").concat(drawOptions.dark.colorEmpty, ";\n ").concat(Object.entries(drawOptions.dark.colorDots)
.map(function (_a) { .map(function (_a) {
var i = _a[0], color = _a[1]; var i = _a[0], color = _a[1];
return "--c".concat(i, ":").concat(color, ";"); return "--c".concat(i, ":").concat(color, ";");