@learnpack/learnpack 5.0.274 → 5.0.275
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/serve.js +127 -70
- package/lib/creatorDist/assets/index-BfLyIQVh.js +10223 -10342
- package/lib/managers/config/index.js +77 -77
- package/lib/models/creator.d.ts +7 -0
- package/lib/utils/api.d.ts +1 -0
- package/lib/utils/api.js +2 -1
- package/lib/utils/creatorUtilities.js +14 -14
- package/package.json +1 -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 +522 -522
- package/src/commands/serve.ts +162 -107
- 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 +28 -28
- 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 +10223 -10342
- 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 -40
- 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.js +141 -141
- package/src/ui/app.tar.gz +0 -0
- package/src/utils/BaseCommand.ts +56 -56
- package/src/utils/api.ts +31 -30
- 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/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/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/models/creator.ts
CHANGED
@@ -1,40 +1,47 @@
|
|
1
|
-
export interface Lesson {
|
2
|
-
id: string
|
3
|
-
uid: string
|
4
|
-
title: string
|
5
|
-
type: "READ" | "CODE" | "QUIZ"
|
6
|
-
description: string
|
7
|
-
duration?: number
|
8
|
-
generated?: boolean
|
9
|
-
status?: "PENDING" | "GENERATING" | "DONE" | "ERROR"
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
}
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
export
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
}
|
1
|
+
export interface Lesson {
|
2
|
+
id: string
|
3
|
+
uid: string
|
4
|
+
title: string
|
5
|
+
type: "READ" | "CODE" | "QUIZ"
|
6
|
+
description: string
|
7
|
+
duration?: number
|
8
|
+
generated?: boolean
|
9
|
+
status?: "PENDING" | "GENERATING" | "DONE" | "ERROR"
|
10
|
+
translations?: {
|
11
|
+
[key: string]: {
|
12
|
+
completionId: number
|
13
|
+
startedAt: number
|
14
|
+
completedAt?: number
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
export interface ParsedLink {
|
20
|
+
name: string
|
21
|
+
text: string
|
22
|
+
}
|
23
|
+
|
24
|
+
export type TDifficulty = "easy" | "beginner" | "intermediate" | "hard"
|
25
|
+
|
26
|
+
export type FormState = {
|
27
|
+
description: string
|
28
|
+
duration: number
|
29
|
+
hasContentIndex: boolean
|
30
|
+
difficulty: TDifficulty
|
31
|
+
contentIndex: string
|
32
|
+
language?: string
|
33
|
+
technologies?: string[]
|
34
|
+
isCompleted: boolean
|
35
|
+
variables: string[]
|
36
|
+
currentStep: string
|
37
|
+
title: string
|
38
|
+
purpose: string
|
39
|
+
slug: string
|
40
|
+
}
|
41
|
+
|
42
|
+
export type Syllabus = {
|
43
|
+
lessons: Lesson[]
|
44
|
+
courseInfo: FormState
|
45
|
+
feedback?: string
|
46
|
+
// sources: ParsedLink[]
|
47
|
+
}
|
@@ -1,30 +1,30 @@
|
|
1
|
-
import { IFile } from "./file"
|
2
|
-
import { IConfig } from "./config"
|
3
|
-
import { ISocket } from "./socket"
|
4
|
-
|
5
|
-
export interface IExercise {
|
6
|
-
position?: number
|
7
|
-
files: Array<IFile>
|
8
|
-
slug: string
|
9
|
-
path: string
|
10
|
-
done: boolean
|
11
|
-
language?: string | null
|
12
|
-
entry?: string | null
|
13
|
-
graded?: boolean
|
14
|
-
translations?: { [key: string]: string }
|
15
|
-
title: string
|
16
|
-
getReadme?: (lang: string | null) => any
|
17
|
-
getFile?: (name: string) => string | Buffer
|
18
|
-
saveFile?: (name: string, content: string) => void
|
19
|
-
renameFolder?: (newName: string) => void
|
20
|
-
getTestReport?: () => any
|
21
|
-
test?: (sessionConfig: any, config: IConfig, socket: ISocket) => void
|
22
|
-
}
|
23
|
-
|
24
|
-
export interface IExerciseData {
|
25
|
-
lastMessages?: any
|
26
|
-
userMessage?: string
|
27
|
-
exerciseSlug: string
|
28
|
-
entryPoint?: string
|
29
|
-
files: string[]
|
30
|
-
}
|
1
|
+
import { IFile } from "./file"
|
2
|
+
import { IConfig } from "./config"
|
3
|
+
import { ISocket } from "./socket"
|
4
|
+
|
5
|
+
export interface IExercise {
|
6
|
+
position?: number
|
7
|
+
files: Array<IFile>
|
8
|
+
slug: string
|
9
|
+
path: string
|
10
|
+
done: boolean
|
11
|
+
language?: string | null
|
12
|
+
entry?: string | null
|
13
|
+
graded?: boolean
|
14
|
+
translations?: { [key: string]: string }
|
15
|
+
title: string
|
16
|
+
getReadme?: (lang: string | null) => any
|
17
|
+
getFile?: (name: string) => string | Buffer
|
18
|
+
saveFile?: (name: string, content: string) => void
|
19
|
+
renameFolder?: (newName: string) => void
|
20
|
+
getTestReport?: () => any
|
21
|
+
test?: (sessionConfig: any, config: IConfig, socket: ISocket) => void
|
22
|
+
}
|
23
|
+
|
24
|
+
export interface IExerciseData {
|
25
|
+
lastMessages?: any
|
26
|
+
userMessage?: string
|
27
|
+
exerciseSlug: string
|
28
|
+
entryPoint?: string
|
29
|
+
files: string[]
|
30
|
+
}
|
package/src/models/session.ts
CHANGED
@@ -1,39 +1,39 @@
|
|
1
|
-
import { IConfig, IConfigObj } from "./config"
|
2
|
-
|
3
|
-
export interface IPayload {
|
4
|
-
email: string
|
5
|
-
user_id: number
|
6
|
-
token: string
|
7
|
-
}
|
8
|
-
|
9
|
-
export interface IStartProps {
|
10
|
-
token: string
|
11
|
-
payload: IPayload | null
|
12
|
-
}
|
13
|
-
|
14
|
-
type TLoginResponse = {
|
15
|
-
token: string
|
16
|
-
user_id: string
|
17
|
-
email: string
|
18
|
-
}
|
19
|
-
|
20
|
-
export interface ISession {
|
21
|
-
sessionStarted: boolean
|
22
|
-
token: string | null
|
23
|
-
config: IConfig | null
|
24
|
-
currentCohort: null
|
25
|
-
initialize: () => Promise<boolean>
|
26
|
-
setRigoToken: (token: string) => Promise<boolean>
|
27
|
-
setTabHash: (hash: string) => Promise<boolean>
|
28
|
-
setSessionKey: (value: string) => Promise<boolean>
|
29
|
-
setPayload: (value: IPayload) => Promise<boolean>
|
30
|
-
getPayload: () => Promise<any>
|
31
|
-
isActive: () => boolean
|
32
|
-
get: (config?: IConfigObj) => Promise<any>
|
33
|
-
login: () => Promise<void>
|
34
|
-
loginWeb: (email: string, password: string) => Promise<TLoginResponse>
|
35
|
-
sync: () => Promise<void>
|
36
|
-
start: ({ token, payload }: IStartProps) => Promise<void>
|
37
|
-
destroy: () => Promise<void>
|
38
|
-
breakToken: () => Promise<void>
|
39
|
-
}
|
1
|
+
import { IConfig, IConfigObj } from "./config"
|
2
|
+
|
3
|
+
export interface IPayload {
|
4
|
+
email: string
|
5
|
+
user_id: number
|
6
|
+
token: string
|
7
|
+
}
|
8
|
+
|
9
|
+
export interface IStartProps {
|
10
|
+
token: string
|
11
|
+
payload: IPayload | null
|
12
|
+
}
|
13
|
+
|
14
|
+
type TLoginResponse = {
|
15
|
+
token: string
|
16
|
+
user_id: string
|
17
|
+
email: string
|
18
|
+
}
|
19
|
+
|
20
|
+
export interface ISession {
|
21
|
+
sessionStarted: boolean
|
22
|
+
token: string | null
|
23
|
+
config: IConfig | null
|
24
|
+
currentCohort: null
|
25
|
+
initialize: () => Promise<boolean>
|
26
|
+
setRigoToken: (token: string) => Promise<boolean>
|
27
|
+
setTabHash: (hash: string) => Promise<boolean>
|
28
|
+
setSessionKey: (value: string) => Promise<boolean>
|
29
|
+
setPayload: (value: IPayload) => Promise<boolean>
|
30
|
+
getPayload: () => Promise<any>
|
31
|
+
isActive: () => boolean
|
32
|
+
get: (config?: IConfigObj) => Promise<any>
|
33
|
+
login: () => Promise<void>
|
34
|
+
loginWeb: (email: string, password: string) => Promise<TLoginResponse>
|
35
|
+
sync: () => Promise<void>
|
36
|
+
start: ({ token, payload }: IStartProps) => Promise<void>
|
37
|
+
destroy: () => Promise<void>
|
38
|
+
breakToken: () => Promise<void>
|
39
|
+
}
|
package/src/models/socket.ts
CHANGED
@@ -1,61 +1,61 @@
|
|
1
|
-
import { IConfig } from "./config"
|
2
|
-
import { Server } from "socket.io"
|
3
|
-
import { DefaultEventsMap } from "socket.io/dist/typed-events"
|
4
|
-
import { TAction, ICallback } from "./action"
|
5
|
-
import { TStatus } from "./status"
|
6
|
-
|
7
|
-
export type TPossibleActions =
|
8
|
-
| "build"
|
9
|
-
| "test"
|
10
|
-
| "reset"
|
11
|
-
| "tutorial"
|
12
|
-
| "generate"
|
13
|
-
|
14
|
-
export interface ISocket {
|
15
|
-
socket: Server<
|
16
|
-
DefaultEventsMap,
|
17
|
-
DefaultEventsMap,
|
18
|
-
DefaultEventsMap,
|
19
|
-
any
|
20
|
-
> | null
|
21
|
-
config: IConfig | null
|
22
|
-
allowedActions: Array<TPossibleActions>
|
23
|
-
actionCallBacks: { [key: string]: ICallback }
|
24
|
-
possibleActions: Array<TPossibleActions>
|
25
|
-
isTestingEnvironment: boolean
|
26
|
-
addAllowed: (actions: any) => void
|
27
|
-
removeAllowed: (actions: any) => void
|
28
|
-
start: (config: IConfig, server: any, isTestingEnvironment: boolean) => void
|
29
|
-
on: (action: any, callBack: any) => void
|
30
|
-
clean: (_: string, logs: Array<any>) => void
|
31
|
-
complete: () => void
|
32
|
-
ask: (questions: Array<string>) => void
|
33
|
-
sessionRefreshed: (data: any) => void
|
34
|
-
reload: (files: Array<string> | null, exercises: Array<string>) => void
|
35
|
-
openWindow: (id: string) => void
|
36
|
-
log: (
|
37
|
-
status: TStatus,
|
38
|
-
messages?: string | Array<string>,
|
39
|
-
report?: Array<string>,
|
40
|
-
data?: any
|
41
|
-
) => void
|
42
|
-
emit: (
|
43
|
-
action: TAction,
|
44
|
-
status: TStatus | string,
|
45
|
-
logs: string | Array<string>,
|
46
|
-
inputs?: Array<string>,
|
47
|
-
report?: Array<string>,
|
48
|
-
data?: any
|
49
|
-
) => void
|
50
|
-
ready: (message: string) => void
|
51
|
-
error: (type: any, stdout: string) => void
|
52
|
-
fatal: (msg: string) => void
|
53
|
-
dialog: (message: string) => void
|
54
|
-
success: (type: any, stdout: string, lang?: string) => void
|
55
|
-
onTestingFinished: (obj: any) => void
|
56
|
-
}
|
57
|
-
|
58
|
-
export type TOpenWindowData = {
|
59
|
-
url: string
|
60
|
-
exerciseSlug: string
|
61
|
-
}
|
1
|
+
import { IConfig } from "./config"
|
2
|
+
import { Server } from "socket.io"
|
3
|
+
import { DefaultEventsMap } from "socket.io/dist/typed-events"
|
4
|
+
import { TAction, ICallback } from "./action"
|
5
|
+
import { TStatus } from "./status"
|
6
|
+
|
7
|
+
export type TPossibleActions =
|
8
|
+
| "build"
|
9
|
+
| "test"
|
10
|
+
| "reset"
|
11
|
+
| "tutorial"
|
12
|
+
| "generate"
|
13
|
+
|
14
|
+
export interface ISocket {
|
15
|
+
socket: Server<
|
16
|
+
DefaultEventsMap,
|
17
|
+
DefaultEventsMap,
|
18
|
+
DefaultEventsMap,
|
19
|
+
any
|
20
|
+
> | null
|
21
|
+
config: IConfig | null
|
22
|
+
allowedActions: Array<TPossibleActions>
|
23
|
+
actionCallBacks: { [key: string]: ICallback }
|
24
|
+
possibleActions: Array<TPossibleActions>
|
25
|
+
isTestingEnvironment: boolean
|
26
|
+
addAllowed: (actions: any) => void
|
27
|
+
removeAllowed: (actions: any) => void
|
28
|
+
start: (config: IConfig, server: any, isTestingEnvironment: boolean) => void
|
29
|
+
on: (action: any, callBack: any) => void
|
30
|
+
clean: (_: string, logs: Array<any>) => void
|
31
|
+
complete: () => void
|
32
|
+
ask: (questions: Array<string>) => void
|
33
|
+
sessionRefreshed: (data: any) => void
|
34
|
+
reload: (files: Array<string> | null, exercises: Array<string>) => void
|
35
|
+
openWindow: (id: string) => void
|
36
|
+
log: (
|
37
|
+
status: TStatus,
|
38
|
+
messages?: string | Array<string>,
|
39
|
+
report?: Array<string>,
|
40
|
+
data?: any
|
41
|
+
) => void
|
42
|
+
emit: (
|
43
|
+
action: TAction,
|
44
|
+
status: TStatus | string,
|
45
|
+
logs: string | Array<string>,
|
46
|
+
inputs?: Array<string>,
|
47
|
+
report?: Array<string>,
|
48
|
+
data?: any
|
49
|
+
) => void
|
50
|
+
ready: (message: string) => void
|
51
|
+
error: (type: any, stdout: string) => void
|
52
|
+
fatal: (msg: string) => void
|
53
|
+
dialog: (message: string) => void
|
54
|
+
success: (type: any, stdout: string, lang?: string) => void
|
55
|
+
onTestingFinished: (obj: any) => void
|
56
|
+
}
|
57
|
+
|
58
|
+
export type TOpenWindowData = {
|
59
|
+
url: string
|
60
|
+
exerciseSlug: string
|
61
|
+
}
|
package/src/models/status.ts
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
export type TStatus =
|
2
|
-
| "ready"
|
3
|
-
| "internal-error"
|
4
|
-
| "compiler-success"
|
5
|
-
| "testing-success"
|
6
|
-
| "compiling"
|
7
|
-
| "testing"
|
8
|
-
| "start_exercise"
|
9
|
-
| "initializing"
|
10
|
-
| "configuration_loaded"
|
11
|
-
| "connection_ended"
|
12
|
-
| "reset_exercise"
|
13
|
-
| "open_files"
|
14
|
-
| "open_window"
|
15
|
-
| "instructions_closed"
|
16
|
-
| "completed"
|
1
|
+
export type TStatus =
|
2
|
+
| "ready"
|
3
|
+
| "internal-error"
|
4
|
+
| "compiler-success"
|
5
|
+
| "testing-success"
|
6
|
+
| "compiling"
|
7
|
+
| "testing"
|
8
|
+
| "start_exercise"
|
9
|
+
| "initializing"
|
10
|
+
| "configuration_loaded"
|
11
|
+
| "connection_ended"
|
12
|
+
| "reset_exercise"
|
13
|
+
| "open_files"
|
14
|
+
| "open_window"
|
15
|
+
| "instructions_closed"
|
16
|
+
| "completed"
|