@jutge.org/toolkit 4.0.0

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.
Files changed (140) hide show
  1. package/README.md +5 -0
  2. package/assets/images/jutge-toolkit.png +0 -0
  3. package/assets/images/jutge.png +0 -0
  4. package/assets/lua/fixCodeBlocks.lua +19 -0
  5. package/assets/lua/removeEnvs.lua +20 -0
  6. package/assets/lua/removeHtmlOnly.lua +11 -0
  7. package/assets/problems/function/valid-date.pbm/README.md +11 -0
  8. package/assets/problems/function/valid-date.pbm/award.html +1 -0
  9. package/assets/problems/function/valid-date.pbm/award.png +0 -0
  10. package/assets/problems/function/valid-date.pbm/ca/handler.yml +3 -0
  11. package/assets/problems/function/valid-date.pbm/ca/main.c +13 -0
  12. package/assets/problems/function/valid-date.pbm/ca/main.cc +14 -0
  13. package/assets/problems/function/valid-date.pbm/ca/main.java +16 -0
  14. package/assets/problems/function/valid-date.pbm/ca/main.py +6 -0
  15. package/assets/problems/function/valid-date.pbm/ca/problem.ca.tex +40 -0
  16. package/assets/problems/function/valid-date.pbm/ca/problem.ca.yml +3 -0
  17. package/assets/problems/function/valid-date.pbm/ca/random.inp +113976 -0
  18. package/assets/problems/function/valid-date.pbm/ca/sample.inp +4 -0
  19. package/assets/problems/function/valid-date.pbm/ca/solution.c +15 -0
  20. package/assets/problems/function/valid-date.pbm/ca/solution.cc +16 -0
  21. package/assets/problems/function/valid-date.pbm/ca/solution.java +17 -0
  22. package/assets/problems/function/valid-date.pbm/ca/solution.py +13 -0
  23. package/assets/problems/function/valid-date.pbm/en/handler.yml +3 -0
  24. package/assets/problems/function/valid-date.pbm/en/main.c +13 -0
  25. package/assets/problems/function/valid-date.pbm/en/main.cc +14 -0
  26. package/assets/problems/function/valid-date.pbm/en/main.java +16 -0
  27. package/assets/problems/function/valid-date.pbm/en/main.py +7 -0
  28. package/assets/problems/function/valid-date.pbm/en/problem.en.tex +46 -0
  29. package/assets/problems/function/valid-date.pbm/en/problem.en.yml +4 -0
  30. package/assets/problems/function/valid-date.pbm/en/random.inp +108200 -0
  31. package/assets/problems/function/valid-date.pbm/en/sample.inp +4 -0
  32. package/assets/problems/function/valid-date.pbm/en/solution.c +15 -0
  33. package/assets/problems/function/valid-date.pbm/en/solution.cc +16 -0
  34. package/assets/problems/function/valid-date.pbm/en/solution.java +20 -0
  35. package/assets/problems/function/valid-date.pbm/en/solution.py +13 -0
  36. package/assets/problems/graphic/japanese-flag.pbm/README.md +14 -0
  37. package/assets/problems/graphic/japanese-flag.pbm/award.png +0 -0
  38. package/assets/problems/graphic/japanese-flag.pbm/handler.yml +2 -0
  39. package/assets/problems/graphic/japanese-flag.pbm/problem.ca.tex +21 -0
  40. package/assets/problems/graphic/japanese-flag.pbm/problem.ca.yml +3 -0
  41. package/assets/problems/graphic/japanese-flag.pbm/sample-1.inp +1 -0
  42. package/assets/problems/graphic/japanese-flag.pbm/sample-2.inp +1 -0
  43. package/assets/problems/graphic/japanese-flag.pbm/solution.cc +25 -0
  44. package/assets/problems/graphic/japanese-flag.pbm/solution.py +11 -0
  45. package/assets/problems/graphic/tortuga.pbm/README.md +13 -0
  46. package/assets/problems/graphic/tortuga.pbm/award.png +0 -0
  47. package/assets/problems/graphic/tortuga.pbm/handler.yml +2 -0
  48. package/assets/problems/graphic/tortuga.pbm/problem.ca.tex +23 -0
  49. package/assets/problems/graphic/tortuga.pbm/problem.ca.yml +3 -0
  50. package/assets/problems/graphic/tortuga.pbm/sample.inp +0 -0
  51. package/assets/problems/graphic/tortuga.pbm/solution.py +11 -0
  52. package/assets/problems/standard/campanar-de-la-torrassa.pbm/README.md +15 -0
  53. package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.html +1 -0
  54. package/assets/problems/standard/campanar-de-la-torrassa.pbm/award.png +0 -0
  55. package/assets/problems/standard/campanar-de-la-torrassa.pbm/campanar.png +0 -0
  56. package/assets/problems/standard/campanar-de-la-torrassa.pbm/handler.yml +2 -0
  57. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.tex +59 -0
  58. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.ca.yml +3 -0
  59. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.tex +52 -0
  60. package/assets/problems/standard/campanar-de-la-torrassa.pbm/problem.en.yml +4 -0
  61. package/assets/problems/standard/campanar-de-la-torrassa.pbm/sample.inp +7 -0
  62. package/assets/problems/standard/campanar-de-la-torrassa.pbm/slow.cc +29 -0
  63. package/assets/problems/standard/campanar-de-la-torrassa.pbm/solution.cc +48 -0
  64. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-1.inp +12 -0
  65. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.inp +100000 -0
  66. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-2.ops +1 -0
  67. package/assets/problems/standard/campanar-de-la-torrassa.pbm/test-b.inp +0 -0
  68. package/assets/problems/standard/maximum-of-2-integers.pbm/README.md +11 -0
  69. package/assets/problems/standard/maximum-of-2-integers.pbm/handler.yml +1 -0
  70. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.tex +17 -0
  71. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.ca.yml +3 -0
  72. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.tex +16 -0
  73. package/assets/problems/standard/maximum-of-2-integers.pbm/problem.en.yml +4 -0
  74. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-1.inp +1 -0
  75. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-2.inp +1 -0
  76. package/assets/problems/standard/maximum-of-2-integers.pbm/sample-3.inp +1 -0
  77. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.c +18 -0
  78. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.cc +13 -0
  79. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.java +16 -0
  80. package/assets/problems/standard/maximum-of-2-integers.pbm/solution.py +5 -0
  81. package/assets/problems/standard/maximum-of-2-integers.pbm/test-1.inp +1 -0
  82. package/assets/problems/standard/maximum-of-2-integers.pbm/test-2.inp +1 -0
  83. package/assets/problems/standard/maximum-of-2-integers.pbm/test-3.inp +1 -0
  84. package/assets/problems/standard/maximum-of-2-integers.pbm/test-4.inp +1 -0
  85. package/assets/problems/standard/maximum-of-2-integers.pbm/test-5.inp +1 -0
  86. package/assets/problems/standard/treasures-in-a-map.pbm/README.md +12 -0
  87. package/assets/problems/standard/treasures-in-a-map.pbm/atzar.cc +85 -0
  88. package/assets/problems/standard/treasures-in-a-map.pbm/award.png +0 -0
  89. package/assets/problems/standard/treasures-in-a-map.pbm/generate-1.cc +26 -0
  90. package/assets/problems/standard/treasures-in-a-map.pbm/generate-2.cc +26 -0
  91. package/assets/problems/standard/treasures-in-a-map.pbm/generate-3.cc +26 -0
  92. package/assets/problems/standard/treasures-in-a-map.pbm/generate-4.cc +26 -0
  93. package/assets/problems/standard/treasures-in-a-map.pbm/handler.yml +1 -0
  94. package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.tex +40 -0
  95. package/assets/problems/standard/treasures-in-a-map.pbm/problem.ca.yml +3 -0
  96. package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.tex +40 -0
  97. package/assets/problems/standard/treasures-in-a-map.pbm/problem.en.yml +4 -0
  98. package/assets/problems/standard/treasures-in-a-map.pbm/random-1.inp +24 -0
  99. package/assets/problems/standard/treasures-in-a-map.pbm/random-2.inp +27 -0
  100. package/assets/problems/standard/treasures-in-a-map.pbm/random-3.inp +38 -0
  101. package/assets/problems/standard/treasures-in-a-map.pbm/random-4.inp +50 -0
  102. package/assets/problems/standard/treasures-in-a-map.pbm/sample-1.inp +9 -0
  103. package/assets/problems/standard/treasures-in-a-map.pbm/sample-2.inp +6 -0
  104. package/assets/problems/standard/treasures-in-a-map.pbm/sample-3.inp +7 -0
  105. package/assets/problems/standard/treasures-in-a-map.pbm/solution.cc +38 -0
  106. package/assets/problems/standard/treasures-in-a-map.pbm/test-1.inp +5 -0
  107. package/assets/problems/standard/treasures-in-a-map.pbm/test-2.inp +6 -0
  108. package/assets/problems/standard/treasures-in-a-map.pbm/test-3.inp +6 -0
  109. package/assets/problems/standard/treasures-in-a-map.pbm/test-4.inp +9 -0
  110. package/assets/problems/standard/treasures-in-a-map.pbm/test-5.inp +10 -0
  111. package/assets/problems/standard/treasures-in-a-map.pbm/test-6.inp +9 -0
  112. package/assets/problems/standard/treasures-in-a-map.pbm/test-7.inp +12 -0
  113. package/assets/problems/standard/treasures-in-a-map.pbm/test-8.inp +3 -0
  114. package/assets/problems/standard/treasures-in-a-map.pbm/test-9.inp +37 -0
  115. package/assets/problems/standard/treasures-in-a-map.pbm/test-91.inp +52 -0
  116. package/assets/problems/standard/treasures-in-a-map.pbm/test-92.inp +25 -0
  117. package/assets/problems/standard/treasures-in-a-map.pbm/test-93.inp +3 -0
  118. package/assets/prompts/creators/create-solution.tpl.txt +10 -0
  119. package/assets/prompts/creators/create-statement.tpl.txt +21 -0
  120. package/assets/prompts/creators/create-translation.tpl.txt +5 -0
  121. package/assets/prompts/creators/private-test-cases.txt +6 -0
  122. package/assets/prompts/creators/sample-test-cases.txt +6 -0
  123. package/assets/prompts/creators/system-prompt.txt +2 -0
  124. package/assets/prompts/examples/statement-coda.tex +7 -0
  125. package/assets/prompts/examples/statement.tex +19 -0
  126. package/assets/prompts/generators/efficiency.md +41 -0
  127. package/assets/prompts/generators/hard.md +47 -0
  128. package/assets/prompts/generators/random.md +39 -0
  129. package/assets/prompts/proglangs/cc.md +3 -0
  130. package/assets/prompts/proglangs/py.md +40 -0
  131. package/assets/python/pyexec.py +29 -0
  132. package/assets/sty/judgeit.ca.sty +54 -0
  133. package/assets/sty/judgeit.de.sty +61 -0
  134. package/assets/sty/judgeit.en.sty +60 -0
  135. package/assets/sty/judgeit.es.sty +54 -0
  136. package/assets/sty/judgeit.fr.sty +59 -0
  137. package/assets/sty/judgeit.sty +326 -0
  138. package/assets/sty/picins.sty +579 -0
  139. package/dist/index.js +4246 -0
  140. package/package.json +103 -0
package/package.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "@jutge.org/toolkit",
3
+ "description": "Toolkit to prepare problems for Jutge.org",
4
+ "version": "4.0.0",
5
+ "homepage": "https://jutge.org",
6
+ "author": {
7
+ "name": "Jutge.org",
8
+ "url": "https://jutge.org"
9
+ },
10
+ "contributors": [
11
+ {
12
+ "name": "Jordi Petit",
13
+ "url": "https://github.com/jordi-petit"
14
+ },
15
+ {
16
+ "name": "Pau Fernández",
17
+ "url": "https://github.com/pauek"
18
+ }
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/jutge-org/new-jutge-toolkit.git"
23
+ },
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "module": "index.ts",
28
+ "type": "module",
29
+ "bin": {
30
+ "jutge-toolkit": "dist/index.js",
31
+ "jtk": "dist/index.js"
32
+ },
33
+ "scripts": {
34
+ "lint": "eslint .",
35
+ "format": "bun prettier --write .",
36
+ "depcheck": "bunx depcheck",
37
+ "dev": "bun build --target bun --minify --outfile dist/index.js ./toolkit --watch",
38
+ "build": "bun build --target bun --minify --outfile dist/index.js ./toolkit ",
39
+ "update-jutge-client": "(cd lib ; rm -f jutge_api_client.ts ; https --download https://api.jutge.org/clients/download/typescript)"
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "assets"
44
+ ],
45
+ "dependencies": {
46
+ "@commander-js/extra-typings": "^14.0.0",
47
+ "@eslint/js": "^9.39.2",
48
+ "@inquirer/prompts": "^8.1.0",
49
+ "archiver": "^7.0.1",
50
+ "boxen": "^8.0.1",
51
+ "bun-types": "^1.3.5",
52
+ "chalk": "^5.6.2",
53
+ "commander": "^14.0.2",
54
+ "env-paths": "^3.0.0",
55
+ "eslint": "^9.39.2",
56
+ "execa": "^9.6.1",
57
+ "gpt-tokenizer": "^3.4.0",
58
+ "handlebars": "^4.7.8",
59
+ "image-size": "^2.0.2",
60
+ "inquirer-checkbox-plus-plus": "^1.1.1",
61
+ "marked": "^17.0.1",
62
+ "marked-terminal": "^7.3.0",
63
+ "multi-llm-ts": "^4.6.2",
64
+ "nanoid": "^5.1.6",
65
+ "openai": "^6.15.0",
66
+ "ora": "^9.0.0",
67
+ "prettier": "^3.7.4",
68
+ "pretty-bytes": "^7.1.0",
69
+ "pretty-ms": "^9.3.0",
70
+ "radash": "^12.1.1",
71
+ "semver": "^7.7.3",
72
+ "sharp": "^0.34.5",
73
+ "terminal-image": "^4.1.0",
74
+ "terminal-link": "^5.0.0",
75
+ "tree-node-cli": "^1.6.0",
76
+ "typescript-eslint": "^8.51.0",
77
+ "yaml": "^2.8.2",
78
+ "zod": "^4.3.4",
79
+ "zod-package-json": "^2.1.0",
80
+ "zod-validation-error": "^5.0.0"
81
+ },
82
+ "devDependencies": {
83
+ "@types/archiver": "^7.0.0",
84
+ "@types/image-size": "^0.8.0",
85
+ "@types/marked": "^6.0.0",
86
+ "@types/marked-terminal": "^6.1.1",
87
+ "@types/node": "^25.0.3",
88
+ "@types/ora": "^3.2.0",
89
+ "@types/semver": "^7.7.1"
90
+ },
91
+ "peerDependencies": {
92
+ "typescript": "^5.9.3"
93
+ },
94
+ "prettier": {
95
+ "semi": false,
96
+ "singleQuote": true,
97
+ "trailingComma": "all",
98
+ "tabWidth": 4,
99
+ "useTabs": false,
100
+ "arrowParens": "always",
101
+ "printWidth": 120
102
+ }
103
+ }