Compare commits

...

7 Commits

Author SHA1 Message Date
release bot
b58af55b7d 📦 3.1.0 2023-09-23 18:22:23 +00:00
platane
4e5805f8af ⬆️ use node 20 2023-09-23 20:18:51 +02:00
platane
743771147d ⬆️ 2023-09-23 20:07:23 +02:00
Platane
8eddcbdbea 📓 2023-09-13 20:59:51 +02:00
Alfi Maulana
6f0ace6560 docs: fix indentation of GITHUB_TOKEN env in the README's usage section 2023-07-20 14:02:52 +02:00
platane
835fdd6b84 🚑 fix vercel function 2023-07-17 23:14:15 +02:00
platane
e6034f3972 📓 update readme 2023-07-17 23:04:14 +02:00
21 changed files with 719 additions and 4590 deletions

View File

@@ -7,11 +7,11 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
with: with:
cache: yarn cache: yarn
node-version: 16 node-version: 20
- run: yarn install --frozen-lockfile - run: yarn install --frozen-lockfile
- run: npm run type - run: npm run type
@@ -23,7 +23,7 @@ jobs:
test-action: test-action:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: update action.yml to use image from local Dockerfile - name: update action.yml to use image from local Dockerfile
run: | run: |
@@ -58,11 +58,11 @@ jobs:
test-action-svg-only: test-action-svg-only:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
with: with:
cache: yarn cache: yarn
node-version: 16 node-version: 20
- run: yarn install --frozen-lockfile - run: yarn install --frozen-lockfile
- name: build svg-only action - name: build svg-only action
@@ -98,11 +98,11 @@ jobs:
deploy-ghpages: deploy-ghpages:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
with: with:
cache: yarn cache: yarn
node-version: 16 node-version: 20
- run: yarn install --frozen-lockfile - run: yarn install --frozen-lockfile
- run: npm run build:demo - run: npm run build:demo

View File

@@ -21,7 +21,7 @@ jobs:
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v2 - uses: docker/setup-qemu-action@v2
@@ -48,7 +48,7 @@ jobs:
- uses: actions/setup-node@v3 - uses: actions/setup-node@v3
with: with:
cache: yarn cache: yarn
node-version: 16 node-version: 20
- name: build svg-only action - name: build svg-only action
run: | run: |

2
.nvmrc
View File

@@ -1 +1 @@
16 20

View File

@@ -1,4 +1,4 @@
FROM node:16-slim as builder FROM node:20-slim as builder
WORKDIR /app WORKDIR /app
@@ -18,12 +18,12 @@ RUN yarn build:action
FROM node:16-slim FROM node:20-slim
WORKDIR /action-release WORKDIR /action-release
RUN export YARN_CACHE_FOLDER="$(mktemp -d)" \ RUN export YARN_CACHE_FOLDER="$(mktemp -d)" \
&& yarn add canvas@2.10.2 gifsicle@5.3.0 --no-lockfile \ && yarn add canvas@2.11.2 gifsicle@5.3.0 --no-lockfile \
&& rm -r "$YARN_CACHE_FOLDER" && rm -r "$YARN_CACHE_FOLDER"
COPY --from=builder /app/packages/action/dist/ /action-release/ COPY --from=builder /app/packages/action/dist/ /action-release/

View File

@@ -55,14 +55,14 @@ Available as github action. It can automatically generate a new image each day.
dist/github-snake-dark.svg?palette=github-dark dist/github-snake-dark.svg?palette=github-dark
dist/ocean.gif?color_snake=orange&color_dots=#bfd6f6,#8dbdff,#64a1f4,#4b91f1,#3c7dd9 dist/ocean.gif?color_snake=orange&color_dots=#bfd6f6,#8dbdff,#64a1f4,#4b91f1,#3c7dd9
env: env:
# a github token is required to fetch the contribution calendar from github API # a github token is required to fetch the contribution calendar from github API
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
``` ```
[example with cron job](https://github.com/Platane/Platane/blob/master/.github/workflows/main.yml#L24-L29) [example with cron job](https://github.com/Platane/Platane/blob/master/.github/workflows/main.yml#L26-L35)
If you are only interested in generating a svg, consider using this faster action: `uses: Platane/snk/svg-only@v2` If you are only interested in generating a svg, consider using this faster action: `uses: Platane/snk/svg-only@v3`
**dark mode** **dark mode**

View File

@@ -4,7 +4,7 @@ author: "platane"
runs: runs:
using: docker using: docker
image: docker://platane/snk@sha256:753878055e52fbbaf3148fdac4590e396f97581f1dc4c1f861701add7a1dc1b5 image: docker://platane/snk@sha256:b7835a30ad60660a0c3e1f669187932a7e098fe4949ed7df4ec3beb56c2cfb9f
inputs: inputs:
github_user_name: github_user_name:

View File

@@ -1,17 +1,17 @@
{ {
"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": "3.0.0", "version": "3.1.0",
"private": true, "private": true,
"repository": "github:platane/snk", "repository": "github:platane/snk",
"devDependencies": { "devDependencies": {
"@sucrase/jest-plugin": "3.0.0", "@sucrase/jest-plugin": "3.0.0",
"@types/jest": "29.5.3", "@types/jest": "29.5.5",
"@types/node": "16.18.38", "@types/node": "20.6.3",
"jest": "29.6.1", "jest": "29.7.0",
"prettier": "2.8.8", "prettier": "2.8.8",
"sucrase": "3.33.0", "sucrase": "3.34.0",
"typescript": "5.1.6" "typescript": "5.2.2"
}, },
"workspaces": [ "workspaces": [
"packages/**" "packages/**"

View File

@@ -2,7 +2,7 @@
"name": "@snk/action", "name": "@snk/action",
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@actions/core": "1.10.0", "@actions/core": "1.10.1",
"@snk/gif-creator": "1.0.0", "@snk/gif-creator": "1.0.0",
"@snk/github-user-contribution": "1.0.0", "@snk/github-user-contribution": "1.0.0",
"@snk/solver": "1.0.0", "@snk/solver": "1.0.0",
@@ -10,7 +10,7 @@
"@snk/types": "1.0.0" "@snk/types": "1.0.0"
}, },
"devDependencies": { "devDependencies": {
"@vercel/ncc": "0.36.1", "@vercel/ncc": "0.38.0",
"dotenv": "16.3.1" "dotenv": "16.3.1"
}, },
"scripts": { "scripts": {

View File

@@ -10,12 +10,13 @@
"@snk/types": "1.0.0" "@snk/types": "1.0.0"
}, },
"devDependencies": { "devDependencies": {
"dotenv": "16.3.1",
"@types/dat.gui": "0.7.10", "@types/dat.gui": "0.7.10",
"dat.gui": "0.7.9", "dat.gui": "0.7.9",
"html-webpack-plugin": "5.5.3", "html-webpack-plugin": "5.5.3",
"ts-loader": "9.4.4", "ts-loader": "9.4.4",
"ts-node": "10.9.1", "ts-node": "10.9.1",
"webpack": "5.88.1", "webpack": "5.88.2",
"webpack-cli": "5.1.4", "webpack-cli": "5.1.4",
"webpack-dev-server": "4.15.1" "webpack-dev-server": "4.15.1"
}, },

View File

@@ -66,7 +66,7 @@ export const drawWorld = (
}; };
export const drawLerpWorld = ( export const drawLerpWorld = (
ctx: CanvasRenderingContext2D, ctx: CanvasRenderingContext2D | CanvasRenderingContext2D,
grid: Grid, grid: Grid,
cells: Point[] | null, cells: Point[] | null,
snake0: Snake, snake0: Snake,

View File

@@ -43,7 +43,7 @@ export const createGif = async (
const { width, height } = getCanvasWorldSize(grid0, drawOptions); const { width, height } = getCanvasWorldSize(grid0, drawOptions);
const canvas = createCanvas(width, height); const canvas = createCanvas(width, height);
const ctx = canvas.getContext("2d")!; const ctx = canvas.getContext("2d") as any as CanvasRenderingContext2D;
const grid = copyGrid(grid0); const grid = copyGrid(grid0);
const stack: Color[] = []; const stack: Color[] = [];

View File

@@ -4,15 +4,15 @@
"dependencies": { "dependencies": {
"@snk/draw": "1.0.0", "@snk/draw": "1.0.0",
"@snk/solver": "1.0.0", "@snk/solver": "1.0.0",
"canvas": "2.10.2", "canvas": "2.11.2",
"gif-encoder-2": "1.0.5", "gif-encoder-2": "1.0.5",
"gifsicle": "5.3.0", "gifsicle": "5.3.0",
"tmp": "0.2.1" "tmp": "0.2.1"
}, },
"devDependencies": { "devDependencies": {
"@types/gifsicle": "5.2.0", "@types/gifsicle": "5.2.0",
"@types/tmp": "0.2.3", "@types/tmp": "0.2.4",
"@vercel/ncc": "0.36.1" "@vercel/ncc": "0.38.0"
}, },
"scripts": { "scripts": {
"benchmark": "ncc run __tests__/benchmark.ts --quiet" "benchmark": "ncc run __tests__/benchmark.ts --quiet"

View File

@@ -9,7 +9,7 @@ export default async (req: VercelRequest, res: VercelResponse) => {
res.statusCode = 200; res.statusCode = 200;
res.json( res.json(
await getGithubUserContribution(userName as string, { await getGithubUserContribution(userName as string, {
githubToken: process.env.GITHUB!, githubToken: process.env.GITHUB_TOKEN!,
}) })
); );
} catch (err) { } catch (err) {

View File

@@ -3,6 +3,6 @@
"version": "1.0.0", "version": "1.0.0",
"dependencies": { "dependencies": {
"@snk/github-user-contribution": "1.0.0", "@snk/github-user-contribution": "1.0.0",
"@vercel/node": "2.15.5" "@vercel/node": "3.0.6"
} }
} }

View File

@@ -1,5 +1,3 @@
import fetch from "node-fetch";
/** /**
* get the contribution grid from a github user page * get the contribution grid from a github user page
* *

View File

@@ -1,11 +1,7 @@
{ {
"name": "@snk/github-user-contribution", "name": "@snk/github-user-contribution",
"version": "1.0.0", "version": "1.0.0",
"dependencies": {
"node-fetch": "2.6.12"
},
"devDependencies": { "devDependencies": {
"@types/node-fetch": "2.6.4",
"dotenv": "16.3.1" "dotenv": "16.3.1"
} }
} }

View File

@@ -3,7 +3,7 @@ description: "Generates a snake game from a github user contributions grid. Outp
author: "platane" author: "platane"
runs: runs:
using: node16 using: node20
main: dist/index.js main: dist/index.js
inputs: inputs:

File diff suppressed because one or more lines are too long

View File

@@ -14,11 +14,7 @@ __webpack_require__.d(__webpack_exports__, {
"generateContributionSnake": () => (/* binding */ generateContributionSnake) "generateContributionSnake": () => (/* binding */ generateContributionSnake)
}); });
// EXTERNAL MODULE: ../../node_modules/node-fetch/lib/index.js
var lib = __webpack_require__(2197);
var lib_default = /*#__PURE__*/__webpack_require__.n(lib);
;// CONCATENATED MODULE: ../github-user-contribution/index.ts ;// CONCATENATED MODULE: ../github-user-contribution/index.ts
/** /**
* get the contribution grid from a github user page * get the contribution grid from a github user page
* *
@@ -55,7 +51,7 @@ const getGithubUserContribution = async (userName, o) => {
} }
`; `;
const variables = { login: userName }; const variables = { login: userName };
const res = await lib_default()("https://api.github.com/graphql", { const res = await fetch("https://api.github.com/graphql", {
headers: { headers: {
Authorization: `bearer ${o.githubToken}`, Authorization: `bearer ${o.githubToken}`,
"Content-Type": "application/json", "Content-Type": "application/json",

View File

@@ -558,7 +558,7 @@ class OidcClient {
.catch(error => { .catch(error => {
throw new Error(`Failed to get ID Token. \n throw new Error(`Failed to get ID Token. \n
Error Code : ${error.statusCode}\n Error Code : ${error.statusCode}\n
Error Message: ${error.result.message}`); Error Message: ${error.message}`);
}); });
const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value;
if (!id_token) { if (!id_token) {
@@ -2784,14 +2784,6 @@ module.exports = require("path");
/***/ }), /***/ }),
/***/ 5477:
/***/ ((module) => {
"use strict";
module.exports = require("punycode");
/***/ }),
/***/ 2781: /***/ 2781:
/***/ ((module) => { /***/ ((module) => {
@@ -2808,28 +2800,12 @@ module.exports = require("tls");
/***/ }), /***/ }),
/***/ 7310:
/***/ ((module) => {
"use strict";
module.exports = require("url");
/***/ }),
/***/ 3837: /***/ 3837:
/***/ ((module) => { /***/ ((module) => {
"use strict"; "use strict";
module.exports = require("util"); module.exports = require("util");
/***/ }),
/***/ 9796:
/***/ ((module) => {
"use strict";
module.exports = require("zlib");
/***/ }) /***/ })
/******/ }); /******/ });
@@ -3099,7 +3075,7 @@ const parseEntry = (entry) => {
core.getInput("svg_out_path"), core.getInput("svg_out_path"),
]); ]);
const githubToken = process.env.GITHUB_TOKEN; const githubToken = process.env.GITHUB_TOKEN;
const { generateContributionSnake } = await Promise.all(/* import() */[__nccwpck_require__.e(197), __nccwpck_require__.e(407)]).then(__nccwpck_require__.bind(__nccwpck_require__, 407)); const { generateContributionSnake } = await __nccwpck_require__.e(/* import() */ 407).then(__nccwpck_require__.bind(__nccwpck_require__, 407));
const results = await generateContributionSnake(userName, outputs, { const results = await generateContributionSnake(userName, outputs, {
githubToken, githubToken,
}); });

1214
yarn.lock

File diff suppressed because it is too large Load Diff