mirror of
				https://github.com/theoludwig/programming-challenges.git
				synced 2025-09-11 23:11:21 +02:00 
			
		
		
		
	build(deps): update latest
This commit is contained in:
		| @@ -1 +0,0 @@ | ||||
| { "extends": ["@commitlint/config-conventional"] } | ||||
| @@ -1,18 +0,0 @@ | ||||
| { | ||||
|   "extends": ["conventions"], | ||||
|   "plugins": ["import", "unicorn"], | ||||
|   "parserOptions": { | ||||
|     "project": "./tsconfig.json" | ||||
|   }, | ||||
|   "rules": { | ||||
|     "import/extensions": ["error", "always"], | ||||
|     "unicorn/prevent-abbreviations": "error", | ||||
|     "unicorn/prefer-node-protocol": "error" | ||||
|   }, | ||||
|   "overrides": [ | ||||
|     { | ||||
|       "files": ["*.ts", "*.tsx"], | ||||
|       "parser": "@typescript-eslint/parser" | ||||
|     } | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										4
									
								
								.github/workflows/challenges.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/challenges.yml
									
									
									
									
										vendored
									
									
								
							| @@ -11,7 +11,7 @@ jobs: | ||||
|     runs-on: "ubuntu-latest" | ||||
|     timeout-minutes: 30 | ||||
|     steps: | ||||
|       - uses: "actions/checkout@v4.1.1" | ||||
|       - uses: "actions/checkout@v4.2.2" | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
|  | ||||
| @@ -21,7 +21,7 @@ jobs: | ||||
|           SKIP_LOGIN: true | ||||
|  | ||||
|       - name: "Setup Node.js" | ||||
|         uses: "actions/setup-node@v4.0.1" | ||||
|         uses: "actions/setup-node@v4.1.0" | ||||
|         with: | ||||
|           node-version: "lts/*" | ||||
|           cache: "npm" | ||||
|   | ||||
							
								
								
									
										15
									
								
								.github/workflows/cli.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/cli.yml
									
									
									
									
										vendored
									
									
								
							| @@ -10,10 +10,10 @@ jobs: | ||||
|   lint: | ||||
|     runs-on: "ubuntu-latest" | ||||
|     steps: | ||||
|       - uses: "actions/checkout@v4.1.1" | ||||
|       - uses: "actions/checkout@v4.2.2" | ||||
|  | ||||
|       - name: "Setup Node.js" | ||||
|         uses: "actions/setup-node@v4.0.1" | ||||
|         uses: "actions/setup-node@v4.1.0" | ||||
|         with: | ||||
|           node-version: "lts/*" | ||||
|           cache: "npm" | ||||
| @@ -21,7 +21,6 @@ jobs: | ||||
|       - name: "Install dependencies" | ||||
|         run: "npm clean-install" | ||||
|  | ||||
|       - run: 'npm run lint:commit -- --to "${{ github.sha }}"' | ||||
|       - run: "npm run lint:editorconfig" | ||||
|       - run: "npm run lint:markdown" | ||||
|       - run: "npm run lint:eslint" | ||||
| @@ -29,10 +28,10 @@ jobs: | ||||
|   build: | ||||
|     runs-on: "ubuntu-latest" | ||||
|     steps: | ||||
|       - uses: "actions/checkout@v4.1.1" | ||||
|       - uses: "actions/checkout@v4.2.2" | ||||
|  | ||||
|       - name: "Setup Node.js" | ||||
|         uses: "actions/setup-node@v4.0.1" | ||||
|         uses: "actions/setup-node@v4.1.0" | ||||
|         with: | ||||
|           node-version: "lts/*" | ||||
|           cache: "npm" | ||||
| @@ -43,12 +42,12 @@ jobs: | ||||
|       - name: "Build" | ||||
|         run: "npm run build" | ||||
|  | ||||
|       - run: "npm run build:typescript" | ||||
|       - run: "npm run lint:typescript" | ||||
|  | ||||
|   test: | ||||
|     runs-on: "ubuntu-latest" | ||||
|     steps: | ||||
|       - uses: "actions/checkout@v4.1.1" | ||||
|       - uses: "actions/checkout@v4.2.2" | ||||
|  | ||||
|       - name: "Setup Docker" | ||||
|         uses: "actions-hub/docker/cli@master" | ||||
| @@ -56,7 +55,7 @@ jobs: | ||||
|           SKIP_LOGIN: true | ||||
|  | ||||
|       - name: "Setup Node.js" | ||||
|         uses: "actions/setup-node@v4.0.1" | ||||
|         uses: "actions/setup-node@v4.1.0" | ||||
|         with: | ||||
|           node-version: "lts/*" | ||||
|           cache: "npm" | ||||
|   | ||||
| @@ -48,7 +48,7 @@ Gitpod will automatically setup an environment for you. | ||||
|  | ||||
| #### Prerequisites | ||||
|  | ||||
| - [Node.js](https://nodejs.org/) >= 20.0.0 | ||||
| - [Node.js](https://nodejs.org/) >= 20.11.0 | ||||
| - [npm](https://npmjs.com/) >= 10.0.0 | ||||
| - [Docker](https://www.docker.com/) | ||||
|  | ||||
|   | ||||
| @@ -47,7 +47,7 @@ export class Solution implements SolutionOptions { | ||||
|       challenge.path, | ||||
|       "solutions", | ||||
|       programmingLanguageName, | ||||
|       name, | ||||
|       name | ||||
|     ) | ||||
|     this.temporaryFolder = new TemporaryFolder() | ||||
|   } | ||||
| @@ -83,7 +83,7 @@ export class Solution implements SolutionOptions { | ||||
|       loader.succeed(chalk.bold.green("Success!")) | ||||
|       SolutionTestsResult.printBenchmark(elapsedTimeMilliseconds) | ||||
|       if (output) { | ||||
|         console.log(`${chalk.bold("Output:")}`) | ||||
|         console.log(chalk.bold("Output:")) | ||||
|         console.log(stdout) | ||||
|       } | ||||
|     } catch (error: any) { | ||||
| @@ -137,7 +137,7 @@ export class Solution implements SolutionOptions { | ||||
|     const languagesSolution = (await fs.promises.readdir(solutionsPath)).filter( | ||||
|       (name) => { | ||||
|         return name !== ".gitkeep" | ||||
|       }, | ||||
|       } | ||||
|     ) | ||||
|     const paths: string[] = [] | ||||
|     for (const language of languagesSolution) { | ||||
| @@ -152,12 +152,12 @@ export class Solution implements SolutionOptions { | ||||
|   } | ||||
|  | ||||
|   static async getManyByProgrammingLanguages( | ||||
|     programmingLanguages?: string[], | ||||
|     programmingLanguages?: string[] | ||||
|   ): Promise<Solution[]> { | ||||
|     const languages = | ||||
|       programmingLanguages ?? (await template.getProgrammingLanguages()) | ||||
|     const challengesPath = fileURLToPath( | ||||
|       new URL("../../challenges", import.meta.url), | ||||
|       new URL("../../challenges", import.meta.url) | ||||
|     ) | ||||
|     const challenges = await fs.promises.readdir(challengesPath) | ||||
|     const paths: string[] = [] | ||||
|   | ||||
| @@ -2,13 +2,11 @@ import path from "node:path" | ||||
| import { fileURLToPath } from "node:url" | ||||
| import fs from "node:fs" | ||||
|  | ||||
| import replaceInFileDefault from "replace-in-file" | ||||
| import { replaceInFile } from "replace-in-file" | ||||
| import date from "date-and-time" | ||||
|  | ||||
| import { copyDirectory } from "../utils/copyDirectory.js" | ||||
|  | ||||
| const { replaceInFile } = replaceInFileDefault | ||||
|  | ||||
| const TEMPLATE_PATH = fileURLToPath(new URL("../../templates", import.meta.url)) | ||||
| const TEMPLATE_DOCKER_PATH = path.join(TEMPLATE_PATH, "docker") | ||||
| const TEMPLATE_CHALLENGE_PATH = path.join(TEMPLATE_PATH, "challenge") | ||||
| @@ -52,7 +50,7 @@ class Template { | ||||
|   } | ||||
|  | ||||
|   private async replaceInDestination( | ||||
|     options: ReplaceInDestinationOptions, | ||||
|     options: ReplaceInDestinationOptions | ||||
|   ): Promise<void> { | ||||
|     const { name, description, destination } = options | ||||
|     const readmePath = path.join(destination, "README.md") | ||||
| @@ -84,7 +82,7 @@ class Template { | ||||
|     } = options | ||||
|     const templateLanguagePath = path.join( | ||||
|       TEMPLATE_SOLUTION_PATH, | ||||
|       programmingLanguageName, | ||||
|       programmingLanguageName | ||||
|     ) | ||||
|     await this.verifySupportedProgrammingLanguage(programmingLanguageName) | ||||
|     await fs.promises.mkdir(destination, { recursive: true }) | ||||
| @@ -115,7 +113,7 @@ class Template { | ||||
|   } | ||||
|  | ||||
|   public async verifySupportedProgrammingLanguage( | ||||
|     language: string, | ||||
|     language: string | ||||
|   ): Promise<void> { | ||||
|     const languages = await this.getProgrammingLanguages() | ||||
|     if (!languages.includes(language)) { | ||||
|   | ||||
							
								
								
									
										13
									
								
								eslint.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								eslint.config.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| import typescriptESLint from "typescript-eslint" | ||||
| import configConventions from "eslint-config-conventions" | ||||
|  | ||||
| export default typescriptESLint.config(...configConventions, { | ||||
|   files: ["**/*.ts", "**/*.tsx"], | ||||
|   languageOptions: { | ||||
|     parser: typescriptESLint.parser, | ||||
|     parserOptions: { | ||||
|       projectService: true, | ||||
|       tsconfigRootDir: import.meta.dirname, | ||||
|     }, | ||||
|   }, | ||||
| }) | ||||
							
								
								
									
										5503
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5503
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										59
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								package.json
									
									
									
									
									
								
							| @@ -10,7 +10,7 @@ | ||||
|     "url": "https://github.com/theoludwig/programming-challenges" | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">=20.0.0", | ||||
|     "node": ">=20.11.0", | ||||
|     "npm": ">=10.0.0" | ||||
|   }, | ||||
|   "main": "build/index.js", | ||||
| @@ -19,51 +19,48 @@ | ||||
|     "start": "node --enable-source-maps build/index.js", | ||||
|     "build": "swc ./cli --out-dir ./build --strip-leading-paths --delete-dir-on-start", | ||||
|     "build:dev": "swc ./cli --out-dir ./build --strip-leading-paths --delete-dir-on-start --watch", | ||||
|     "build:typescript": "tsc", | ||||
|     "lint:commit": "commitlint", | ||||
|     "lint:typescript": "tsc --noEmit", | ||||
|     "lint:editorconfig": "editorconfig-checker", | ||||
|     "lint:markdown": "markdownlint-cli2", | ||||
|     "lint:eslint": "eslint ./cli --max-warnings 0 --report-unused-disable-directives --ignore-path .gitignore", | ||||
|     "test": "cross-env NODE_ENV=test node --enable-source-maps --test build/" | ||||
|     "lint:eslint": "eslint ./cli --max-warnings 0", | ||||
|     "test": "cross-env NODE_ENV=test node --enable-source-maps --test \"build/**/*.test.js\"" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "chalk": "5.3.0", | ||||
|     "clipanion": "3.2.1", | ||||
|     "date-and-time": "3.1.1", | ||||
|     "execa": "8.0.1", | ||||
|     "date-and-time": "3.6.0", | ||||
|     "execa": "9.5.1", | ||||
|     "log-symbols": "6.0.0", | ||||
|     "ora": "8.0.1", | ||||
|     "replace-in-file": "7.1.0", | ||||
|     "table": "6.8.1", | ||||
|     "ora": "8.1.1", | ||||
|     "replace-in-file": "8.2.0", | ||||
|     "table": "6.8.2", | ||||
|     "typanion": "3.14.0", | ||||
|     "validate-npm-package-name": "5.0.0" | ||||
|     "validate-npm-package-name": "6.0.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@commitlint/cli": "18.6.0", | ||||
|     "@commitlint/config-conventional": "18.6.0", | ||||
|     "@swc/cli": "0.3.5", | ||||
|     "@swc/core": "1.3.107", | ||||
|     "@tsconfig/strictest": "2.0.2", | ||||
|     "@swc/cli": "0.5.0", | ||||
|     "@swc/core": "1.9.2", | ||||
|     "@tsconfig/strictest": "2.0.5", | ||||
|     "@types/mock-fs": "4.13.4", | ||||
|     "@types/ms": "0.7.34", | ||||
|     "@types/node": "20.11.10", | ||||
|     "@types/node": "22.9.0", | ||||
|     "@types/sinon": "17.0.3", | ||||
|     "@types/validate-npm-package-name": "4.0.2", | ||||
|     "@typescript-eslint/eslint-plugin": "6.20.0", | ||||
|     "@typescript-eslint/parser": "6.20.0", | ||||
|     "typescript-eslint": "8.14.0", | ||||
|     "cross-env": "7.0.3", | ||||
|     "editorconfig-checker": "5.1.2", | ||||
|     "eslint": "8.56.0", | ||||
|     "eslint-config-conventions": "13.1.0", | ||||
|     "eslint-plugin-import": "2.29.1", | ||||
|     "eslint-plugin-promise": "6.1.1", | ||||
|     "eslint-plugin-unicorn": "50.0.1", | ||||
|     "get-stream": "8.0.1", | ||||
|     "markdownlint-cli2": "0.12.1", | ||||
|     "markdownlint-rule-relative-links": "2.2.0", | ||||
|     "mock-fs": "5.2.0", | ||||
|     "editorconfig-checker": "6.0.0", | ||||
|     "eslint": "9.15.0", | ||||
|     "eslint-config-conventions": "17.0.1", | ||||
|     "eslint-plugin-import-x": "4.4.2", | ||||
|     "eslint-plugin-promise": "7.1.0", | ||||
|     "eslint-plugin-unicorn": "56.0.0", | ||||
|     "globals": "15.12.0", | ||||
|     "get-stream": "9.0.1", | ||||
|     "markdownlint-cli2": "0.15.0", | ||||
|     "markdownlint-rule-relative-links": "3.0.0", | ||||
|     "mock-fs": "5.4.1", | ||||
|     "ms": "2.1.3", | ||||
|     "sinon": "17.0.1", | ||||
|     "typescript": "5.3.3" | ||||
|     "sinon": "19.0.2", | ||||
|     "typescript": "5.6.3" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM gcc:12.3.0-bookworm AS builder | ||||
| FROM gcc:12.4.0-bookworm AS builder | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| RUN gcc ./*.c* -o solution -Wall -Wextra -Wfloat-equal -Wundef -Werror -std=c17 -pedantic -pedantic-errors -O3 | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM gcc:12.3.0-bookworm AS builder | ||||
| FROM gcc:12.4.0-bookworm AS builder | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| RUN g++ ./*.cpp* -o solution -Wall -Wextra -Wfloat-equal -Wundef -Werror -std=c++17 -pedantic -pedantic-errors -O3 | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM mono:6.12.0 | ||||
| FROM mono:6.12.0.182 | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| RUN mcs ./Solution.cs -out:Solution.exe | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM dart:3.2.5 AS builder | ||||
| FROM dart:3.5.4 AS builder | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| RUN dart compile exe solution.dart -o solution | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| FROM openjdk:17 AS builder | ||||
| FROM openjdk:21 AS builder | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| RUN javac Solution.java | ||||
| RUN jar cfe solution.jar Solution *.class | ||||
|  | ||||
| FROM gcr.io/distroless/java17-debian12:latest AS runner | ||||
| FROM gcr.io/distroless/java21-debian12:latest AS runner | ||||
| WORKDIR /usr/src/application | ||||
| COPY --from=builder /usr/src/application/solution.jar ./ | ||||
| CMD ["./solution.jar"] | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM gcr.io/distroless/nodejs20-debian12:latest AS runner | ||||
| FROM gcr.io/distroless/nodejs22-debian12:latest AS runner | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| CMD ["./solution.js"] | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM pypy:3.10 | ||||
| FROM pypy:3.10-bookworm | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./ ./ | ||||
| CMD ["python", "solution.py"] | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| FROM rust:1.75.0 AS builder | ||||
| FROM rust:1.82.0 AS builder | ||||
| WORKDIR /usr/src/rust_application | ||||
|  | ||||
| # Cache dependencies | ||||
|   | ||||
| @@ -1,15 +1,15 @@ | ||||
| FROM node:20.11.0 AS builder-dependencies | ||||
| FROM node:22.11.0 AS builder-dependencies | ||||
| WORKDIR /usr/src/application | ||||
| COPY ./package*.json ./ | ||||
| RUN npm install | ||||
|  | ||||
| FROM node:20.11.0 AS builder | ||||
| FROM node:22.11.0 AS builder | ||||
| WORKDIR /usr/src/application | ||||
| COPY --from=builder-dependencies /usr/src/application/node_modules ./node_modules | ||||
| COPY ./ ./ | ||||
| RUN npm run build | ||||
|  | ||||
| FROM gcr.io/distroless/nodejs20-debian12:latest AS runner | ||||
| FROM gcr.io/distroless/nodejs22-debian12:latest AS runner | ||||
| WORKDIR /usr/src/application | ||||
| ENV NODE_ENV=production | ||||
| COPY --from=builder /usr/src/application/package.json ./package.json | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|     "build": "tsc" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/node": "20.6.2", | ||||
|     "typescript": "5.2.2" | ||||
|     "@types/node": "22.9.0", | ||||
|     "typescript": "5.6.3" | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user