@learnpack/learnpack 5.0.275 → 5.0.276

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 (71) hide show
  1. package/README.md +409 -409
  2. package/lib/commands/audit.js +15 -15
  3. package/lib/commands/breakToken.js +19 -19
  4. package/lib/commands/clean.js +3 -3
  5. package/lib/commands/init.js +41 -41
  6. package/lib/commands/logout.js +3 -3
  7. package/lib/commands/publish.js +5 -10
  8. package/lib/commands/serve.js +3 -2
  9. package/lib/creatorDist/assets/index-BfLyIQVh.js +10343 -10224
  10. package/lib/managers/config/index.js +77 -77
  11. package/lib/utils/api.d.ts +1 -1
  12. package/lib/utils/api.js +12 -9
  13. package/lib/utils/creatorUtilities.js +14 -14
  14. package/package.json +1 -1
  15. package/src/commands/audit.ts +487 -487
  16. package/src/commands/breakToken.ts +67 -67
  17. package/src/commands/clean.ts +30 -30
  18. package/src/commands/init.ts +650 -650
  19. package/src/commands/logout.ts +38 -38
  20. package/src/commands/publish.ts +20 -25
  21. package/src/commands/serve.ts +8 -3
  22. package/src/commands/start.ts +333 -333
  23. package/src/commands/translate.ts +123 -123
  24. package/src/creator/README.md +54 -54
  25. package/src/creator/eslint.config.js +28 -28
  26. package/src/creator/src/components/syllabus/ContentIndex.tsx +312 -312
  27. package/src/creator/src/i18n.ts +28 -28
  28. package/src/creator/src/index.css +217 -217
  29. package/src/creator/src/locales/en.json +126 -126
  30. package/src/creator/src/locales/es.json +126 -126
  31. package/src/creator/src/utils/configTypes.ts +122 -122
  32. package/src/creator/src/utils/constants.ts +13 -13
  33. package/src/creator/src/utils/creatorUtils.ts +46 -46
  34. package/src/creator/src/utils/eventBus.ts +2 -2
  35. package/src/creator/src/utils/lib.ts +468 -468
  36. package/src/creator/src/utils/socket.ts +61 -61
  37. package/src/creator/src/utils/store.ts +222 -222
  38. package/src/creator/src/vite-env.d.ts +1 -1
  39. package/src/creator/vite.config.ts +13 -13
  40. package/src/creatorDist/assets/index-BfLyIQVh.js +10343 -10224
  41. package/src/managers/config/defaults.ts +49 -49
  42. package/src/managers/config/exercise.ts +364 -364
  43. package/src/managers/config/index.ts +775 -775
  44. package/src/managers/file.ts +236 -236
  45. package/src/managers/server/routes.ts +554 -554
  46. package/src/managers/session.ts +182 -182
  47. package/src/managers/telemetry.ts +188 -188
  48. package/src/models/action.ts +13 -13
  49. package/src/models/config-manager.ts +28 -28
  50. package/src/models/config.ts +106 -106
  51. package/src/models/creator.ts +47 -47
  52. package/src/models/exercise-obj.ts +30 -30
  53. package/src/models/session.ts +39 -39
  54. package/src/models/socket.ts +61 -61
  55. package/src/models/status.ts +16 -16
  56. package/src/ui/_app/app.css +1 -1
  57. package/src/ui/_app/app.js +366 -363
  58. package/src/ui/app.tar.gz +0 -0
  59. package/src/utils/BaseCommand.ts +56 -56
  60. package/src/utils/api.ts +53 -39
  61. package/src/utils/audit.ts +392 -392
  62. package/src/utils/checkNotInstalled.ts +267 -267
  63. package/src/utils/configBuilder.ts +82 -82
  64. package/src/utils/convertCreds.js +34 -34
  65. package/src/utils/creatorUtilities.ts +504 -504
  66. package/src/utils/incrementVersion.js +74 -74
  67. package/src/utils/misc.ts +58 -58
  68. package/src/utils/rigoActions.ts +500 -500
  69. package/src/utils/sidebarGenerator.ts +195 -195
  70. package/src/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  71. package/src/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
@@ -1,38 +1,38 @@
1
- import SessionCommand from "../utils/SessionCommand"
2
- import SessionManager from "../managers/session"
3
- import Console from "../utils/console"
4
-
5
- class LogoutCommand extends SessionCommand {
6
- static description = `Describe the command here
7
- ...
8
- Extra documentation goes here
9
- `
10
-
11
- static flags: any = {
12
- // name: flags.string({char: 'n', description: 'name to print'}),
13
- }
14
-
15
- static args = [
16
- {
17
- name: "package", // name of arg to show in help and reference with args[name]
18
- required: false, // make the arg required with `required: true`
19
- description:
20
- "The unique string that identifies this package on learnpack", // help description
21
- hidden: false, // hide this arg from help
22
- },
23
- ]
24
-
25
- async init() {
26
- const { flags } = this.parse(LogoutCommand)
27
- // await this.initSession(flags)
28
- Console.debug("Logout command")
29
- }
30
-
31
- async run() {
32
- // const {flags, args} = this.parse(LogoutCommand)
33
-
34
- SessionManager.destroy()
35
- }
36
- }
37
-
38
- export default LogoutCommand
1
+ import SessionCommand from "../utils/SessionCommand"
2
+ import SessionManager from "../managers/session"
3
+ import Console from "../utils/console"
4
+
5
+ class LogoutCommand extends SessionCommand {
6
+ static description = `Describe the command here
7
+ ...
8
+ Extra documentation goes here
9
+ `
10
+
11
+ static flags: any = {
12
+ // name: flags.string({char: 'n', description: 'name to print'}),
13
+ }
14
+
15
+ static args = [
16
+ {
17
+ name: "package", // name of arg to show in help and reference with args[name]
18
+ required: false, // make the arg required with `required: true`
19
+ description:
20
+ "The unique string that identifies this package on learnpack", // help description
21
+ hidden: false, // hide this arg from help
22
+ },
23
+ ]
24
+
25
+ async init() {
26
+ const { flags } = this.parse(LogoutCommand)
27
+ // await this.initSession(flags)
28
+ Console.debug("Logout command")
29
+ }
30
+
31
+ async run() {
32
+ // const {flags, args} = this.parse(LogoutCommand)
33
+
34
+ SessionManager.destroy()
35
+ }
36
+ }
37
+
38
+ export default LogoutCommand
@@ -8,7 +8,7 @@ import * as fs from "fs"
8
8
  import * as path from "path"
9
9
  import * as archiver from "archiver"
10
10
  import axios from "axios"
11
- import FormData = require("form-data")
11
+ import FormData = require("form-data");
12
12
  import Console from "../utils/console"
13
13
  import {
14
14
  decompress,
@@ -31,17 +31,7 @@ export const handleAssetCreation = async (
31
31
  b64IndexReadme: string,
32
32
  all_translations: string[] = []
33
33
  ) => {
34
- const categories: Record<string, number> = {
35
- en: 9,
36
- us: 9,
37
- es: 10,
38
- }
39
-
40
- let category = categories[selectedLang]
41
-
42
- if (!category) {
43
- category = 91
44
- }
34
+ const category = "uncategorized"
45
35
 
46
36
  try {
47
37
  const user = await api.validateToken(sessionPayload.token)
@@ -81,6 +71,7 @@ export const handleAssetCreation = async (
81
71
  const asset = await api.updateAsset(sessionPayload.token, slug, {
82
72
  learnpack_deploy_url: learnpackDeployUrl,
83
73
  title: learnJson.title[selectedLang],
74
+ category: category,
84
75
  description: learnJson.description[selectedLang],
85
76
  all_translations,
86
77
  })
@@ -124,19 +115,19 @@ const runAudit = (strict: boolean) => {
124
115
  }
125
116
 
126
117
  type Academy = {
127
- id: number
128
- name: string
129
- slug?: string
130
- timezone?: string
131
- }
118
+ id: number;
119
+ name: string;
120
+ slug?: string;
121
+ timezone?: string;
122
+ };
132
123
 
133
124
  type Category = {
134
- id: number
135
- slug: string
136
- title: string
137
- lang: string
138
- academy: Academy
139
- }
125
+ id: number;
126
+ slug: string;
127
+ title: string;
128
+ lang: string;
129
+ academy: Academy;
130
+ };
140
131
 
141
132
  function getCategoriesByAcademy(
142
133
  categories: Category[],
@@ -299,7 +290,9 @@ class BuildCommand extends SessionCommand {
299
290
 
300
291
  if (configObject) {
301
292
  const { config } = configObject
302
- const appAlreadyExists = checkIfDirectoryExists(`${config?.dirPath}/_app`)
293
+ const appAlreadyExists = checkIfDirectoryExists(
294
+ `${config?.dirPath}/_app`
295
+ )
303
296
 
304
297
  if (!appAlreadyExists) {
305
298
  // download app and decompress
@@ -329,7 +322,9 @@ class BuildCommand extends SessionCommand {
329
322
  if (fs.existsSync(assetsDir)) {
330
323
  this.copyDirectory(assetsDir, path.join(buildDir, ".learn", "assets"))
331
324
  } else {
332
- fs.mkdirSync(path.join(buildDir, ".learn", "assets"), { recursive: true })
325
+ fs.mkdirSync(path.join(buildDir, ".learn", "assets"), {
326
+ recursive: true,
327
+ })
333
328
  }
334
329
 
335
330
  // Copy .learn/_app directory files to the same level as config.json
@@ -45,7 +45,10 @@ import {
45
45
  import axios from "axios"
46
46
  import * as FormData from "form-data"
47
47
  import api, { RIGOBOT_HOST, RIGOBOT_REALTIME_HOST } from "../utils/api"
48
- import { createUploadMiddleware, minutesToISO8601Duration } from "../utils/misc"
48
+ import {
49
+ createUploadMiddleware,
50
+ minutesToISO8601Duration,
51
+ } from "../utils/misc"
49
52
  import { buildConfig, ConfigResponse } from "../utils/configBuilder"
50
53
  import { checkReadability, slugify } from "../utils/creatorUtilities"
51
54
  import { checkAndFixSidebarPure } from "../utils/sidebarGenerator"
@@ -1829,7 +1832,7 @@ export default class ServeCommand extends SessionCommand {
1829
1832
  const resFromRigo = await axios.get(
1830
1833
  `${RIGOBOT_REALTIME_HOST}/actions/youtube-transcript/${videoId}`
1831
1834
  )
1832
- console.log("RES FROM RIGO", resFromRigo.data)
1835
+
1833
1836
  const transcript = resFromRigo.data.transcript
1834
1837
 
1835
1838
  // let meta: any = null
@@ -1869,7 +1872,9 @@ export default class ServeCommand extends SessionCommand {
1869
1872
  })
1870
1873
  } catch (error: any) {
1871
1874
  console.error("❌ /actions/fetch error:", error.message || error)
1872
- res.status(500).json({ error: error.message || "Failed to fetch link" })
1875
+ res
1876
+ .status(500)
1877
+ .json({ error: error.message || "Failed to fetch link" })
1873
1878
  }
1874
1879
  })
1875
1880
  app.delete("/packages/:slug", async (req, res) => {