@learnpack/learnpack 5.0.9 → 5.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. package/README.md +17 -17
  2. package/bin/run +17 -17
  3. package/bin/run.cmd +3 -3
  4. package/lib/commands/audit.js +24 -27
  5. package/lib/commands/clean.js +3 -3
  6. package/lib/commands/download.js +3 -3
  7. package/lib/commands/login.js +3 -3
  8. package/lib/commands/logout.js +3 -3
  9. package/lib/commands/publish.js +8 -7
  10. package/lib/managers/config/index.d.ts +0 -10
  11. package/lib/managers/config/index.js +11 -3
  12. package/lib/managers/session.js +1 -1
  13. package/lib/utils/checkNotInstalled.js +3 -5
  14. package/oclif.manifest.json +1 -1
  15. package/package.json +152 -152
  16. package/src/commands/audit.ts +449 -449
  17. package/src/commands/clean.ts +29 -29
  18. package/src/commands/download.ts +61 -61
  19. package/src/commands/login.ts +42 -42
  20. package/src/commands/logout.ts +43 -43
  21. package/src/commands/publish.ts +9 -7
  22. package/src/commands/test.ts +85 -85
  23. package/src/index.ts +1 -1
  24. package/src/managers/config/allowed_files.ts +29 -29
  25. package/src/managers/config/index.ts +16 -6
  26. package/src/managers/gitpod.ts +84 -84
  27. package/src/managers/server/index.ts +78 -78
  28. package/src/managers/session.ts +2 -1
  29. package/src/managers/telemetry.ts +353 -353
  30. package/src/managers/test.ts +83 -83
  31. package/src/models/audit.ts +16 -16
  32. package/src/models/config-manager.ts +23 -23
  33. package/src/models/counter.ts +11 -11
  34. package/src/models/errors.ts +22 -22
  35. package/src/models/exercise-obj.ts +29 -29
  36. package/src/models/file.ts +5 -5
  37. package/src/models/findings.ts +18 -18
  38. package/src/models/flags.ts +10 -10
  39. package/src/models/front-matter.ts +11 -11
  40. package/src/models/gitpod-data.ts +19 -19
  41. package/src/models/language.ts +4 -4
  42. package/src/models/package.ts +7 -7
  43. package/src/models/plugin-config.ts +17 -17
  44. package/src/models/success-types.ts +1 -1
  45. package/src/plugin/command/compile.ts +17 -17
  46. package/src/plugin/command/test.ts +30 -30
  47. package/src/plugin/index.ts +6 -6
  48. package/src/plugin/plugin.ts +94 -94
  49. package/src/plugin/utils.ts +87 -87
  50. package/src/types/node-fetch.d.ts +1 -1
  51. package/src/ui/download.ts +71 -71
  52. package/src/utils/BaseCommand.ts +48 -48
  53. package/src/utils/SessionCommand.ts +43 -43
  54. package/src/utils/audit.ts +393 -393
  55. package/src/utils/checkNotInstalled.ts +10 -12
  56. package/src/utils/errors.ts +117 -117
  57. package/src/utils/exercisesQueue.ts +51 -51
  58. package/src/utils/fileQueue.ts +199 -199
  59. package/src/utils/misc.ts +23 -23
  60. package/src/utils/osOperations.ts +79 -79
  61. package/src/utils/templates/gitignore.txt +19 -19
  62. package/src/utils/templates/incremental/.learn/exercises/01-hello-world/README.es.md +24 -24
  63. package/src/utils/templates/incremental/.learn/exercises/01-hello-world/README.md +24 -24
  64. package/src/utils/templates/incremental/.vscode/schema.json +121 -121
  65. package/src/utils/templates/incremental/.vscode/settings.json +13 -13
  66. package/src/utils/templates/incremental/README.ejs +4 -4
  67. package/src/utils/templates/incremental/README.es.ejs +4 -4
  68. package/src/utils/templates/isolated/.vscode/schema.json +121 -121
  69. package/src/utils/templates/isolated/.vscode/settings.json +13 -13
  70. package/src/utils/templates/isolated/README.ejs +4 -4
  71. package/src/utils/templates/isolated/README.es.ejs +4 -4
  72. package/src/utils/templates/no-grading/README.ejs +4 -4
  73. package/src/utils/templates/no-grading/README.es.ejs +4 -4
  74. package/src/utils/validators.ts +18 -18
  75. package/src/utils/watcher.ts +27 -27
@@ -1,5 +1,5 @@
1
- # Welcome to <%= it.title %>
2
-
3
- You have initialized the exercises with grading=`incremental`; meaning that your students will complete one single tutorial with clear and autograded steps from beginning to end.
4
-
1
+ # Welcome to <%= it.title %>
2
+
3
+ You have initialized the exercises with grading=`incremental`; meaning that your students will complete one single tutorial with clear and autograded steps from beginning to end.
4
+
5
5
  Type `$ learnpack start` in your terminal to start the exercises.
@@ -1,5 +1,5 @@
1
- # Bienvenido a <%= it.title %>
2
-
3
- Has inicializado los ejercicios con grading=`incremental`; esto signigica que tus estudiantes completarán un solo tutorial con pasos claros e incrementales, desde el comienzo hasta el final.
4
-
1
+ # Bienvenido a <%= it.title %>
2
+
3
+ Has inicializado los ejercicios con grading=`incremental`; esto signigica que tus estudiantes completarán un solo tutorial con pasos claros e incrementales, desde el comienzo hasta el final.
4
+
5
5
  Ejecuta `$ learnpack start` en la terminal para comenzar con los ejercicios.
@@ -1,5 +1,5 @@
1
- # Welcome to <%= it.title %>
2
-
3
- You have initialized the exercises without grading, meaning that your students will completed exercises without the need of coding.
4
-
1
+ # Welcome to <%= it.title %>
2
+
3
+ You have initialized the exercises without grading, meaning that your students will completed exercises without the need of coding.
4
+
5
5
  Type `$ learnpack start` in your terminal to start the exercises.
@@ -1,5 +1,5 @@
1
- # Bienvenido a <%= it.title %>
2
-
3
- Has inicializado los ejercicios sin grading; lo que signigica que tus estudiantes completarán los ejercicios sin necesidad de codificar.
4
-
1
+ # Bienvenido a <%= it.title %>
2
+
3
+ Has inicializado los ejercicios sin grading; lo que signigica que tus estudiantes completarán los ejercicios sin necesidad de codificar.
4
+
5
5
  Ejecuta `$ learnpack start` en la terminal para comenzar con los ejercicios.
@@ -1,18 +1,18 @@
1
- export function validURL(str: string) {
2
- if (!str.includes('github.com')) {
3
- return false
4
- }
5
-
6
- const pattern = new RegExp(
7
- '^(https?:\\/\\/)?' + // protocol
8
- '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
9
- '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
10
- '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
11
- '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
12
- '(\\#[-a-z\\d_]*)?$',
13
- 'i',
14
- ) // fragment locator
15
- return !!pattern.test(str)
16
- }
17
-
18
- export default {validURL}
1
+ export function validURL(str: string) {
2
+ if (!str.includes('github.com')) {
3
+ return false
4
+ }
5
+
6
+ const pattern = new RegExp(
7
+ '^(https?:\\/\\/)?' + // protocol
8
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
9
+ '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
10
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
11
+ '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
12
+ '(\\#[-a-z\\d_]*)?$',
13
+ 'i',
14
+ ) // fragment locator
15
+ return !!pattern.test(str)
16
+ }
17
+
18
+ export default {validURL}
@@ -1,27 +1,27 @@
1
- import * as chokidar from "chokidar"
2
- import Console from "./console"
3
- import * as debounce from "debounce"
4
- import { IConfigManager } from "../models/config-manager"
5
-
6
- export default (path: string, reloadSocket: (filename: string) => void) =>
7
- new Promise((resolve /* , reject */) => {
8
- Console.debug("PATH:", path)
9
- const watcher = chokidar.watch(path, {
10
- // TODO: This watcher is not ready yet
11
- // ignored: /^(?=.*(\.\w+)$)(?!.*\.md$).*$/gm,
12
- ignored: /\.pyc$/,
13
- ignoreInitial: true,
14
- })
15
- const onChange = (eventname: string, _filename: string) => {
16
- // Console.info(`Event ${eventname} detected. in file: ${_filename}`)
17
- resolve(_filename)
18
- reloadSocket(_filename)
19
- }
20
-
21
- watcher.on("all", debounce(onChange, 500, true))
22
- // watcher.on('all', onChange)
23
- process.on("SIGINT", function () {
24
- watcher.close()
25
- process.exit()
26
- })
27
- })
1
+ import * as chokidar from "chokidar"
2
+ import Console from "./console"
3
+ import * as debounce from "debounce"
4
+ import { IConfigManager } from "../models/config-manager"
5
+
6
+ export default (path: string, reloadSocket: (filename: string) => void) =>
7
+ new Promise((resolve /* , reject */) => {
8
+ Console.debug("PATH:", path)
9
+ const watcher = chokidar.watch(path, {
10
+ // TODO: This watcher is not ready yet
11
+ // ignored: /^(?=.*(\.\w+)$)(?!.*\.md$).*$/gm,
12
+ ignored: /\.pyc$/,
13
+ ignoreInitial: true,
14
+ })
15
+ const onChange = (eventname: string, _filename: string) => {
16
+ // Console.info(`Event ${eventname} detected. in file: ${_filename}`)
17
+ resolve(_filename)
18
+ reloadSocket(_filename)
19
+ }
20
+
21
+ watcher.on("all", debounce(onChange, 500, true))
22
+ // watcher.on('all', onChange)
23
+ process.on("SIGINT", function () {
24
+ watcher.close()
25
+ process.exit()
26
+ })
27
+ })