@learnpack/learnpack 5.0.275 → 5.0.277
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.
- package/README.md +409 -409
- package/lib/commands/audit.js +15 -15
- package/lib/commands/breakToken.js +19 -19
- package/lib/commands/clean.js +3 -3
- package/lib/commands/init.js +41 -41
- package/lib/commands/logout.js +3 -3
- package/lib/commands/publish.js +5 -10
- package/lib/commands/serve.js +55 -2
- package/lib/creatorDist/assets/index-BfLyIQVh.js +10343 -10224
- package/lib/managers/config/index.js +77 -77
- package/lib/utils/api.d.ts +1 -1
- package/lib/utils/api.js +12 -9
- package/lib/utils/creatorUtilities.js +14 -14
- package/lib/utils/export/epub.d.ts +2 -0
- package/lib/utils/export/epub.js +298 -0
- package/lib/utils/export/index.d.ts +3 -0
- package/lib/utils/export/index.js +7 -0
- package/lib/utils/export/scorm.d.ts +2 -0
- package/lib/utils/export/scorm.js +84 -0
- package/lib/utils/export/shared.d.ts +4 -0
- package/lib/utils/export/shared.js +61 -0
- package/lib/utils/export/types.d.ts +15 -0
- package/lib/utils/export/types.js +2 -0
- package/package.json +2 -1
- package/src/commands/audit.ts +487 -487
- package/src/commands/breakToken.ts +67 -67
- package/src/commands/clean.ts +30 -30
- package/src/commands/init.ts +650 -650
- package/src/commands/logout.ts +38 -38
- package/src/commands/publish.ts +20 -25
- package/src/commands/serve.ts +69 -4
- package/src/commands/start.ts +333 -333
- package/src/commands/translate.ts +123 -123
- package/src/creator/README.md +54 -54
- package/src/creator/eslint.config.js +7 -7
- package/src/creator/src/components/syllabus/ContentIndex.tsx +312 -312
- package/src/creator/src/i18n.ts +28 -28
- package/src/creator/src/index.css +217 -217
- package/src/creator/src/locales/en.json +126 -126
- package/src/creator/src/locales/es.json +126 -126
- package/src/creator/src/utils/configTypes.ts +122 -122
- package/src/creator/src/utils/constants.ts +13 -13
- package/src/creator/src/utils/creatorUtils.ts +46 -46
- package/src/creator/src/utils/eventBus.ts +2 -2
- package/src/creator/src/utils/lib.ts +468 -468
- package/src/creator/src/utils/socket.ts +61 -61
- package/src/creator/src/utils/store.ts +222 -222
- package/src/creator/src/vite-env.d.ts +1 -1
- package/src/creator/vite.config.ts +13 -13
- package/src/creatorDist/assets/index-BfLyIQVh.js +10343 -10224
- package/src/managers/config/defaults.ts +49 -49
- package/src/managers/config/exercise.ts +364 -364
- package/src/managers/config/index.ts +775 -775
- package/src/managers/file.ts +236 -236
- package/src/managers/server/routes.ts +554 -554
- package/src/managers/session.ts +182 -182
- package/src/managers/telemetry.ts +188 -188
- package/src/models/action.ts +13 -13
- package/src/models/config-manager.ts +28 -28
- package/src/models/config.ts +106 -106
- package/src/models/creator.ts +47 -47
- package/src/models/exercise-obj.ts +30 -30
- package/src/models/session.ts +39 -39
- package/src/models/socket.ts +61 -61
- package/src/models/status.ts +16 -16
- package/src/ui/_app/app.css +1 -1
- package/src/ui/_app/app.js +400 -397
- package/src/ui/app.tar.gz +0 -0
- package/src/utils/BaseCommand.ts +56 -56
- package/src/utils/api.ts +53 -39
- package/src/utils/audit.ts +392 -392
- package/src/utils/checkNotInstalled.ts +267 -267
- package/src/utils/configBuilder.ts +82 -82
- package/src/utils/convertCreds.js +34 -34
- package/src/utils/creatorUtilities.ts +504 -504
- package/src/utils/export/README.md +178 -0
- package/src/utils/export/epub.ts +400 -0
- package/src/utils/export/index.ts +3 -0
- package/src/utils/export/scorm.ts +121 -0
- package/src/utils/export/shared.ts +61 -0
- package/src/utils/export/types.ts +17 -0
- package/src/utils/incrementVersion.js +74 -74
- package/src/utils/misc.ts +58 -58
- package/src/utils/rigoActions.ts +500 -500
- package/src/utils/sidebarGenerator.ts +195 -195
- package/src/utils/templates/epub/epub.css +133 -0
- package/src/utils/templates/isolated/exercises/01-hello-world/README.es.md +26 -26
- package/src/utils/templates/isolated/exercises/01-hello-world/README.md +26 -26
- package/src/utils/templates/scorm/adlcp_rootv1p2.xsd +110 -0
- package/src/utils/templates/scorm/config/api.js +175 -0
- package/src/utils/templates/scorm/config/index.html +210 -0
- package/src/utils/templates/scorm/ims_xml.xsd +1 -0
- package/src/utils/templates/scorm/imscp_rootv1p1p2.xsd +345 -0
- package/src/utils/templates/scorm/imsmanifest.xml +38 -0
- package/src/utils/templates/scorm/imsmd_rootv1p2p1.xsd +573 -0
@@ -0,0 +1,4 @@
|
|
1
|
+
export declare function copyDir(src: string, dest: string): void;
|
2
|
+
export declare function downloadS3Folder(bucket: any, prefix: string, localPath: string): Promise<void>;
|
3
|
+
export declare function getFilesList(folder: string, base: string): string[];
|
4
|
+
export declare function getCourseMetadata(bucket: any, courseSlug: string): Promise<any>;
|
@@ -0,0 +1,61 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.copyDir = copyDir;
|
4
|
+
exports.downloadS3Folder = downloadS3Folder;
|
5
|
+
exports.getFilesList = getFilesList;
|
6
|
+
exports.getCourseMetadata = getCourseMetadata;
|
7
|
+
const path = require("path");
|
8
|
+
const fs = require("fs");
|
9
|
+
const mkdirp = require("mkdirp");
|
10
|
+
// Utility function to copy directory recursively
|
11
|
+
function copyDir(src, dest) {
|
12
|
+
if (!fs.existsSync(dest))
|
13
|
+
mkdirp.sync(dest);
|
14
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
15
|
+
const srcPath = path.join(src, entry.name);
|
16
|
+
const destPath = path.join(dest, entry.name);
|
17
|
+
if (entry.isDirectory()) {
|
18
|
+
copyDir(srcPath, destPath);
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
fs.copyFileSync(srcPath, destPath);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
// Download all files from a GCS Bucket prefix to a local folder
|
26
|
+
async function downloadS3Folder(bucket, prefix, localPath) {
|
27
|
+
const [files] = await bucket.getFiles({ prefix });
|
28
|
+
for (const file of files) {
|
29
|
+
const relPath = file.name.replace(prefix, "");
|
30
|
+
if (!relPath)
|
31
|
+
continue;
|
32
|
+
const outPath = path.join(localPath, relPath);
|
33
|
+
mkdirp.sync(path.dirname(outPath));
|
34
|
+
// esling-disable-next-line
|
35
|
+
const [buf] = await file.download();
|
36
|
+
fs.writeFileSync(outPath, buf);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
// Generate file list for manifest, given a folder
|
40
|
+
function getFilesList(folder, base) {
|
41
|
+
let list = [];
|
42
|
+
const files = fs.readdirSync(folder, { withFileTypes: true });
|
43
|
+
for (const file of files) {
|
44
|
+
const filePath = path.join(folder, file.name);
|
45
|
+
if (file.isDirectory()) {
|
46
|
+
// esling-disable-next-line
|
47
|
+
list = list.concat(getFilesList(filePath, path.join(base, file.name)));
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
list.push(`<file href="${path.join(base, file.name).replace(/\\/g, "/")}" />`);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
return list;
|
54
|
+
}
|
55
|
+
// Read course metadata from learn.json
|
56
|
+
async function getCourseMetadata(bucket, courseSlug) {
|
57
|
+
const [learnBuf] = await bucket
|
58
|
+
.file(`courses/${courseSlug}/learn.json`)
|
59
|
+
.download();
|
60
|
+
return JSON.parse(learnBuf.toString());
|
61
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export type ExportFormat = "scorm" | "epub";
|
2
|
+
export interface ExportOptions {
|
3
|
+
courseSlug: string;
|
4
|
+
format: ExportFormat;
|
5
|
+
bucket: any;
|
6
|
+
outDir: string;
|
7
|
+
language?: string;
|
8
|
+
}
|
9
|
+
export interface CourseMetadata {
|
10
|
+
title: string;
|
11
|
+
description?: string;
|
12
|
+
language?: string;
|
13
|
+
technologies?: string[];
|
14
|
+
difficulty?: string;
|
15
|
+
}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@learnpack/learnpack",
|
3
3
|
"description": "Seamlessly build, sell and/or take interactive & auto-graded tutorials, start learning now or build a new tutorial to your audience.",
|
4
|
-
"version": "5.0.
|
4
|
+
"version": "5.0.277",
|
5
5
|
"author": "Alejandro Sanchez @alesanchezr",
|
6
6
|
"contributors": [
|
7
7
|
{
|
@@ -66,6 +66,7 @@
|
|
66
66
|
"targz": "^1.0.1",
|
67
67
|
"text-readability": "^1.1.0",
|
68
68
|
"tslib": "^1",
|
69
|
+
"uuid": "^11.1.0",
|
69
70
|
"validator": "^13.1.1",
|
70
71
|
"xxhashjs": "^0.2.2",
|
71
72
|
"youtube-transcript": "^1.2.1",
|