@learnpack/learnpack 5.0.309 → 5.0.311

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 (88) 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/logout.js +3 -3
  6. package/lib/commands/publish.js +16 -6
  7. package/lib/commands/serve.js +16 -16
  8. package/lib/creatorDist/assets/{index-B37w_ZhT.js → index-BI7U47zy.js} +13186 -13013
  9. package/lib/creatorDist/index.html +1 -1
  10. package/lib/managers/config/index.js +77 -77
  11. package/lib/utils/creatorUtilities.js +14 -14
  12. package/lib/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  13. package/lib/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
  14. package/lib/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -110
  15. package/lib/utils/templates/scorm/config/index.html +209 -209
  16. package/lib/utils/templates/scorm/ims_xml.xsd +1 -1
  17. package/lib/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -345
  18. package/lib/utils/templates/scorm/imsmanifest.xml +38 -38
  19. package/lib/utils/templates/scorm/imsmd_rootv1p2p1.xsd +573 -573
  20. package/package.json +1 -1
  21. package/src/commands/audit.ts +487 -487
  22. package/src/commands/breakToken.ts +67 -67
  23. package/src/commands/clean.ts +30 -30
  24. package/src/commands/logout.ts +38 -38
  25. package/src/commands/publish.ts +39 -23
  26. package/src/commands/serve.ts +3179 -3179
  27. package/src/commands/start.ts +333 -333
  28. package/src/commands/translate.ts +123 -123
  29. package/src/creator/README.md +54 -54
  30. package/src/creator/package-lock.json +6621 -6621
  31. package/src/creator/package.json +55 -55
  32. package/src/creator/src/App.tsx +611 -608
  33. package/src/creator/src/components/FileUploader.tsx +340 -302
  34. package/src/creator/src/components/Icon.tsx +18 -18
  35. package/src/creator/src/components/LessonItem.tsx +152 -152
  36. package/src/creator/src/components/Login.tsx +259 -259
  37. package/src/creator/src/components/ParamsChecker.tsx +25 -25
  38. package/src/creator/src/components/Uploader.tsx +3 -6
  39. package/src/creator/src/components/syllabus/ContentIndex.tsx +323 -323
  40. package/src/creator/src/components/syllabus/SyllabusEditor.tsx +341 -337
  41. package/src/creator/src/i18n.ts +28 -28
  42. package/src/creator/src/locales/en.json +139 -138
  43. package/src/creator/src/locales/es.json +139 -138
  44. package/src/creator/src/utils/configTypes.ts +122 -122
  45. package/src/creator/src/utils/constants.ts +13 -13
  46. package/src/creator/src/utils/creatorUtils.ts +46 -46
  47. package/src/creator/src/utils/eventBus.ts +2 -2
  48. package/src/creator/src/utils/rigo.ts +1 -1
  49. package/src/creator/src/utils/socket.ts +61 -61
  50. package/src/creator/src/utils/store.ts +222 -222
  51. package/src/creator/src/vite-env.d.ts +1 -1
  52. package/src/creator/vite.config.ts +13 -13
  53. package/src/creatorDist/assets/{index-B37w_ZhT.js → index-BI7U47zy.js} +13186 -13013
  54. package/src/creatorDist/index.html +1 -1
  55. package/src/managers/config/defaults.ts +49 -49
  56. package/src/managers/config/exercise.ts +364 -364
  57. package/src/managers/config/index.ts +775 -775
  58. package/src/managers/file.ts +236 -236
  59. package/src/managers/server/routes.ts +554 -554
  60. package/src/managers/telemetry.ts +188 -188
  61. package/src/models/action.ts +13 -13
  62. package/src/models/config-manager.ts +28 -28
  63. package/src/models/config.ts +106 -106
  64. package/src/models/exercise-obj.ts +30 -30
  65. package/src/models/session.ts +39 -39
  66. package/src/models/socket.ts +61 -61
  67. package/src/models/status.ts +16 -16
  68. package/src/ui/_app/app.css +1 -1
  69. package/src/ui/_app/app.js +477 -407
  70. package/src/ui/app.tar.gz +0 -0
  71. package/src/utils/BaseCommand.ts +56 -56
  72. package/src/utils/api.ts +665 -665
  73. package/src/utils/audit.ts +392 -392
  74. package/src/utils/checkNotInstalled.ts +267 -267
  75. package/src/utils/convertCreds.js +34 -34
  76. package/src/utils/creatorUtilities.ts +504 -504
  77. package/src/utils/export/README.md +178 -178
  78. package/src/utils/incrementVersion.js +74 -74
  79. package/src/utils/misc.ts +58 -58
  80. package/src/utils/sidebarGenerator.ts +195 -195
  81. package/src/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
  82. package/src/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
  83. package/src/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -110
  84. package/src/utils/templates/scorm/config/index.html +209 -209
  85. package/src/utils/templates/scorm/ims_xml.xsd +1 -1
  86. package/src/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -345
  87. package/src/utils/templates/scorm/imsmanifest.xml +38 -38
  88. package/src/utils/templates/scorm/imsmd_rootv1p2p1.xsd +573 -573
@@ -1,67 +1,67 @@
1
- import { flags } from "@oclif/command"
2
- import BaseCommand from "../utils/BaseCommand"
3
-
4
- import Console from "../utils/console"
5
-
6
- import {
7
- extractParagraphs,
8
- splitIntoSyllables,
9
- extractWords,
10
- countSentences,
11
- fleschKincaidGrade,
12
- } from "../utils/creatorUtilities"
13
-
14
- const exampleMd = `# How to Install Node.js
15
-
16
- Node.js lets you run JavaScript outside a web browser.
17
-
18
- ## Step 1: Download Node.js
19
-
20
- Get the Node.js installer from the [official site](https://nodejs.org/en/download/).
21
-
22
- ## Step 2: Install Node.js
23
-
24
- Open the installer and follow the steps to finish.
25
-
26
- ## Step 3: Verify the Installation
27
-
28
- Open a terminal and type:
29
-
30
- \`\`\`bash
31
- node -v
32
- \`\`\`
33
- `
34
-
35
- class BreakTokenCommand extends BaseCommand {
36
- static description = "Break the token"
37
-
38
- static flags = {
39
- ...BaseCommand.flags,
40
- grading: flags.help({ char: "h" }),
41
- }
42
-
43
- async run() {
44
- const { flags } = this.parse(BreakTokenCommand)
45
-
46
- // await SessionManager.breakToken()
47
- const paragraphs = extractParagraphs(exampleMd)
48
- for (const paragraph of paragraphs) {
49
- const syllables = splitIntoSyllables(paragraph)
50
- const words = extractWords(paragraph)
51
- const sentences = countSentences(paragraph)
52
- const fkgl = fleschKincaidGrade(paragraph)
53
- Console.info(paragraph)
54
- Console.info(`Number of syllables: ${syllables.length}`)
55
- Console.info(syllables)
56
- Console.info(`Number of words: ${words.length}`)
57
- Console.info(words)
58
- Console.info(`Number of sentences: ${sentences}`)
59
- Console.info(`FKGL: ${fkgl}`)
60
- Console.info("---")
61
- }
62
-
63
- process.exit(0)
64
- }
65
- }
66
-
67
- export default BreakTokenCommand
1
+ import { flags } from "@oclif/command"
2
+ import BaseCommand from "../utils/BaseCommand"
3
+
4
+ import Console from "../utils/console"
5
+
6
+ import {
7
+ extractParagraphs,
8
+ splitIntoSyllables,
9
+ extractWords,
10
+ countSentences,
11
+ fleschKincaidGrade,
12
+ } from "../utils/creatorUtilities"
13
+
14
+ const exampleMd = `# How to Install Node.js
15
+
16
+ Node.js lets you run JavaScript outside a web browser.
17
+
18
+ ## Step 1: Download Node.js
19
+
20
+ Get the Node.js installer from the [official site](https://nodejs.org/en/download/).
21
+
22
+ ## Step 2: Install Node.js
23
+
24
+ Open the installer and follow the steps to finish.
25
+
26
+ ## Step 3: Verify the Installation
27
+
28
+ Open a terminal and type:
29
+
30
+ \`\`\`bash
31
+ node -v
32
+ \`\`\`
33
+ `
34
+
35
+ class BreakTokenCommand extends BaseCommand {
36
+ static description = "Break the token"
37
+
38
+ static flags = {
39
+ ...BaseCommand.flags,
40
+ grading: flags.help({ char: "h" }),
41
+ }
42
+
43
+ async run() {
44
+ const { flags } = this.parse(BreakTokenCommand)
45
+
46
+ // await SessionManager.breakToken()
47
+ const paragraphs = extractParagraphs(exampleMd)
48
+ for (const paragraph of paragraphs) {
49
+ const syllables = splitIntoSyllables(paragraph)
50
+ const words = extractWords(paragraph)
51
+ const sentences = countSentences(paragraph)
52
+ const fkgl = fleschKincaidGrade(paragraph)
53
+ Console.info(paragraph)
54
+ Console.info(`Number of syllables: ${syllables.length}`)
55
+ Console.info(syllables)
56
+ Console.info(`Number of words: ${words.length}`)
57
+ Console.info(words)
58
+ Console.info(`Number of sentences: ${sentences}`)
59
+ Console.info(`FKGL: ${fkgl}`)
60
+ Console.info("---")
61
+ }
62
+
63
+ process.exit(0)
64
+ }
65
+ }
66
+
67
+ export default BreakTokenCommand
@@ -1,30 +1,30 @@
1
- // import {flags} from '@oclif/command'
2
- import Console from "../utils/console"
3
- import SessionCommand from "../utils/SessionCommand"
4
-
5
- class CleanCommand extends SessionCommand {
6
- static description = `Clean the configuration object
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
- async init() {
16
- const { flags } = this.parse(CleanCommand)
17
- await this.initSession(flags)
18
- }
19
-
20
- async run() {
21
- const { flags } = this.parse(CleanCommand)
22
-
23
- this.configManager?.buildIndex()
24
- await this.configManager?.clean()
25
-
26
- Console.success("Package cleaned successfully, ready to publish")
27
- }
28
- }
29
-
30
- export default CleanCommand
1
+ // import {flags} from '@oclif/command'
2
+ import Console from "../utils/console"
3
+ import SessionCommand from "../utils/SessionCommand"
4
+
5
+ class CleanCommand extends SessionCommand {
6
+ static description = `Clean the configuration object
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
+ async init() {
16
+ const { flags } = this.parse(CleanCommand)
17
+ await this.initSession(flags)
18
+ }
19
+
20
+ async run() {
21
+ const { flags } = this.parse(CleanCommand)
22
+
23
+ this.configManager?.buildIndex()
24
+ await this.configManager?.clean()
25
+
26
+ Console.success("Package cleaned successfully, ready to publish")
27
+ }
28
+ }
29
+
30
+ export default CleanCommand
@@ -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,
@@ -60,9 +60,18 @@ export const handleAssetCreation = async (
60
60
  readme_raw: b64IndexReadme,
61
61
  all_translations,
62
62
  })
63
- await api.updateRigoPackage(sessionPayload.token, learnJson.slug, {
64
- asset_id: asset.id,
65
- })
63
+ try {
64
+ await api.updateRigoPackage(
65
+ sessionPayload.rigobotToken.trim(),
66
+ learnJson.slug,
67
+ {
68
+ asset_id: asset.id,
69
+ }
70
+ )
71
+ } catch (error) {
72
+ Console.error("Error updating Rigo package:", error)
73
+ }
74
+
66
75
  Console.info("Asset created with id", asset.id)
67
76
  return asset
68
77
  }
@@ -75,13 +84,18 @@ export const handleAssetCreation = async (
75
84
  description: learnJson.description[selectedLang],
76
85
  all_translations,
77
86
  })
78
- await api.updateRigoPackage(
79
- sessionPayload.rigobotToken.trim(),
80
- learnJson.slug,
81
- {
82
- asset_id: asset.id,
83
- }
84
- )
87
+ try {
88
+ await api.updateRigoPackage(
89
+ sessionPayload.rigobotToken.trim(),
90
+ learnJson.slug,
91
+ {
92
+ asset_id: asset.id,
93
+ }
94
+ )
95
+ } catch (error) {
96
+ Console.error("Error updating Rigo package:", error)
97
+ }
98
+
85
99
  Console.info("Asset updated with id", asset.id)
86
100
  return asset
87
101
  } catch (error) {
@@ -117,19 +131,19 @@ const runAudit = (strict: boolean) => {
117
131
  }
118
132
 
119
133
  type Academy = {
120
- id: number
121
- name: string
122
- slug?: string
123
- timezone?: string
124
- }
134
+ id: number;
135
+ name: string;
136
+ slug?: string;
137
+ timezone?: string;
138
+ };
125
139
 
126
140
  type Category = {
127
- id: number
128
- slug: string
129
- title: string
130
- lang: string
131
- academy: Academy
132
- }
141
+ id: number;
142
+ slug: string;
143
+ title: string;
144
+ lang: string;
145
+ academy: Academy;
146
+ };
133
147
 
134
148
  function getCategoriesByAcademy(
135
149
  categories: Category[],
@@ -292,7 +306,9 @@ class BuildCommand extends SessionCommand {
292
306
 
293
307
  if (configObject) {
294
308
  const { config } = configObject
295
- const appAlreadyExists = checkIfDirectoryExists(`${config?.dirPath}/_app`)
309
+ const appAlreadyExists = checkIfDirectoryExists(
310
+ `${config?.dirPath}/_app`
311
+ )
296
312
 
297
313
  if (!appAlreadyExists) {
298
314
  // download app and decompress