@anantagnanam/lms 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +77 -2
- package/astro/client.ts +433 -0
- package/astro/components/CertificateCard.astro +83 -0
- package/astro/components/CourseCard.astro +61 -0
- package/astro/components/CourseCatalog.astro +96 -0
- package/astro/components/CourseOverview.astro +286 -0
- package/astro/components/LearnerDashboard.astro +121 -0
- package/astro/components/LearningShell.astro +28 -0
- package/astro/components/LessonPlayer.astro +323 -0
- package/astro/components/MediaPlayer.astro +60 -0
- package/astro/components/index.ts +7 -0
- package/astro/layouts/AcademyLayout.astro +84 -0
- package/astro/pages/certificate.astro +57 -0
- package/astro/pages/cohort.astro +102 -0
- package/astro/pages/course.astro +80 -0
- package/astro/pages/dashboard.astro +34 -0
- package/astro/pages/index.astro +40 -0
- package/astro/pages/lesson.astro +100 -0
- package/astro/pages/teach.astro +15 -0
- package/astro/styles.css +1288 -0
- package/dist/admin.d.ts +32 -0
- package/dist/admin.js +2762 -0
- package/dist/admin.js.map +1 -0
- package/dist/astro.d.ts +11 -0
- package/dist/astro.js +49 -0
- package/dist/astro.js.map +1 -0
- package/dist/commerce.d.ts +72 -0
- package/dist/commerce.js +0 -0
- package/dist/config-BX3beTpM.js +15 -0
- package/dist/config-BX3beTpM.js.map +1 -0
- package/dist/constants-C0kT94tc.js +139 -0
- package/dist/constants-C0kT94tc.js.map +1 -0
- package/dist/csv-DKq_4OWU.js +55 -0
- package/dist/csv-DKq_4OWU.js.map +1 -0
- package/dist/errors-ChzJS9al.js +16 -0
- package/dist/errors-ChzJS9al.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime.d.ts +681 -0
- package/dist/runtime.js +2060 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schemas.d.ts +584 -0
- package/dist/schemas.js +315 -0
- package/dist/schemas.js.map +1 -0
- package/dist/server.d.ts +30 -0
- package/dist/server.js +54 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +284 -0
- package/dist/types.js +0 -0
- package/package.json +83 -4
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
//#region src/constants.ts
|
|
2
|
+
const PLUGIN_ID = "anantagnanam-lms";
|
|
3
|
+
const PLUGIN_VERSION = "0.1.0";
|
|
4
|
+
const API_BASE = `/_emdash/api/plugins/${PLUGIN_ID}`;
|
|
5
|
+
const MAX_DOCUMENT_BYTES = 95e4;
|
|
6
|
+
const storage = {
|
|
7
|
+
courses: {
|
|
8
|
+
indexes: [
|
|
9
|
+
"status",
|
|
10
|
+
"title",
|
|
11
|
+
"searchTitle",
|
|
12
|
+
"category",
|
|
13
|
+
"level",
|
|
14
|
+
"language",
|
|
15
|
+
"updatedAt",
|
|
16
|
+
"createdBy"
|
|
17
|
+
],
|
|
18
|
+
uniqueIndexes: ["slug"]
|
|
19
|
+
},
|
|
20
|
+
enrollments: { indexes: [
|
|
21
|
+
"userId",
|
|
22
|
+
"courseId",
|
|
23
|
+
"status",
|
|
24
|
+
"accessStatus",
|
|
25
|
+
"accessSource",
|
|
26
|
+
"enrolledAt",
|
|
27
|
+
"completedAt",
|
|
28
|
+
"lastActivityAt",
|
|
29
|
+
"cohortId",
|
|
30
|
+
["courseId", "status"],
|
|
31
|
+
["userId", "status"]
|
|
32
|
+
] },
|
|
33
|
+
certificates: { indexes: ["userId", "courseId"] },
|
|
34
|
+
discussions: { indexes: [
|
|
35
|
+
"courseId",
|
|
36
|
+
"lessonId",
|
|
37
|
+
"authorId",
|
|
38
|
+
"status",
|
|
39
|
+
"createdAt",
|
|
40
|
+
"parentId",
|
|
41
|
+
["courseId", "createdAt"]
|
|
42
|
+
] },
|
|
43
|
+
reviews: { indexes: [
|
|
44
|
+
"courseId",
|
|
45
|
+
"userId",
|
|
46
|
+
"status",
|
|
47
|
+
"createdAt"
|
|
48
|
+
] },
|
|
49
|
+
cohorts: { indexes: [
|
|
50
|
+
"title",
|
|
51
|
+
"createdAt",
|
|
52
|
+
"createdBy"
|
|
53
|
+
] },
|
|
54
|
+
cohort_enrollments: { indexes: [
|
|
55
|
+
"cohortId",
|
|
56
|
+
"userId",
|
|
57
|
+
"status",
|
|
58
|
+
"requestedAt"
|
|
59
|
+
] },
|
|
60
|
+
notifications: { indexes: [
|
|
61
|
+
"userId",
|
|
62
|
+
"read",
|
|
63
|
+
"createdAt",
|
|
64
|
+
"emailStatus",
|
|
65
|
+
"claimedAt"
|
|
66
|
+
] },
|
|
67
|
+
audit: { indexes: [
|
|
68
|
+
"actorId",
|
|
69
|
+
"action",
|
|
70
|
+
"resourceId",
|
|
71
|
+
"createdAt"
|
|
72
|
+
] }
|
|
73
|
+
};
|
|
74
|
+
const adminPages = [
|
|
75
|
+
{
|
|
76
|
+
path: "/",
|
|
77
|
+
label: "Learning overview",
|
|
78
|
+
icon: "graduation-cap",
|
|
79
|
+
group: "Learning"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
path: "/courses",
|
|
83
|
+
label: "Courses",
|
|
84
|
+
icon: "books",
|
|
85
|
+
group: "Learning"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
path: "/learners",
|
|
89
|
+
label: "Enrollments",
|
|
90
|
+
icon: "users",
|
|
91
|
+
group: "Learning"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
path: "/assignments",
|
|
95
|
+
label: "Assignments",
|
|
96
|
+
icon: "exam",
|
|
97
|
+
group: "Learning"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
path: "/community",
|
|
101
|
+
label: "Community",
|
|
102
|
+
icon: "chats",
|
|
103
|
+
group: "Learning"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
path: "/cohorts",
|
|
107
|
+
label: "Cohorts",
|
|
108
|
+
icon: "users-three",
|
|
109
|
+
group: "Learning"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
path: "/reports",
|
|
113
|
+
label: "Reports",
|
|
114
|
+
icon: "chart-bar",
|
|
115
|
+
group: "Learning"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
path: "/notifications",
|
|
119
|
+
label: "Notifications",
|
|
120
|
+
icon: "bell",
|
|
121
|
+
group: "Learning"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
path: "/audit",
|
|
125
|
+
label: "Audit history",
|
|
126
|
+
icon: "clock-counter-clockwise",
|
|
127
|
+
group: "Learning"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
path: "/settings",
|
|
131
|
+
label: "LMS settings",
|
|
132
|
+
icon: "gear",
|
|
133
|
+
group: "Learning"
|
|
134
|
+
}
|
|
135
|
+
];
|
|
136
|
+
|
|
137
|
+
//#endregion
|
|
138
|
+
export { adminPages as a, PLUGIN_VERSION as i, MAX_DOCUMENT_BYTES as n, storage as o, PLUGIN_ID as r, API_BASE as t };
|
|
139
|
+
//# sourceMappingURL=constants-C0kT94tc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-C0kT94tc.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["export const PLUGIN_ID = \"anantagnanam-lms\";\nexport const PLUGIN_VERSION = \"0.1.0\";\nexport const API_BASE = `/_emdash/api/plugins/${PLUGIN_ID}`;\nexport const MAX_DOCUMENT_BYTES = 950_000;\n\nimport type { PluginStorageConfig } from \"emdash\";\n\nexport const storage = {\n courses: {\n indexes: [\n \"status\",\n \"title\",\n \"searchTitle\",\n \"category\",\n \"level\",\n \"language\",\n \"updatedAt\",\n \"createdBy\",\n ],\n uniqueIndexes: [\"slug\"],\n },\n enrollments: {\n indexes: [\n \"userId\",\n \"courseId\",\n \"status\",\n \"accessStatus\",\n \"accessSource\",\n \"enrolledAt\",\n \"completedAt\",\n \"lastActivityAt\",\n \"cohortId\",\n [\"courseId\", \"status\"],\n [\"userId\", \"status\"],\n ],\n },\n certificates: { indexes: [\"userId\", \"courseId\"] },\n discussions: {\n indexes: [\n \"courseId\",\n \"lessonId\",\n \"authorId\",\n \"status\",\n \"createdAt\",\n \"parentId\",\n [\"courseId\", \"createdAt\"],\n ],\n },\n reviews: { indexes: [\"courseId\", \"userId\", \"status\", \"createdAt\"] },\n cohorts: { indexes: [\"title\", \"createdAt\", \"createdBy\"] },\n cohort_enrollments: { indexes: [\"cohortId\", \"userId\", \"status\", \"requestedAt\"] },\n notifications: { indexes: [\"userId\", \"read\", \"createdAt\", \"emailStatus\", \"claimedAt\"] },\n audit: { indexes: [\"actorId\", \"action\", \"resourceId\", \"createdAt\"] },\n} satisfies PluginStorageConfig;\n\nexport const adminPages = [\n { path: \"/\", label: \"Learning overview\", icon: \"graduation-cap\", group: \"Learning\" },\n { path: \"/courses\", label: \"Courses\", icon: \"books\", group: \"Learning\" },\n { path: \"/learners\", label: \"Enrollments\", icon: \"users\", group: \"Learning\" },\n { path: \"/assignments\", label: \"Assignments\", icon: \"exam\", group: \"Learning\" },\n { path: \"/community\", label: \"Community\", icon: \"chats\", group: \"Learning\" },\n { path: \"/cohorts\", label: \"Cohorts\", icon: \"users-three\", group: \"Learning\" },\n { path: \"/reports\", label: \"Reports\", icon: \"chart-bar\", group: \"Learning\" },\n { path: \"/notifications\", label: \"Notifications\", icon: \"bell\", group: \"Learning\" },\n { path: \"/audit\", label: \"Audit history\", icon: \"clock-counter-clockwise\", group: \"Learning\" },\n { path: \"/settings\", label: \"LMS settings\", icon: \"gear\", group: \"Learning\" },\n];\n"],"mappings":";AAAA,MAAa,YAAY;AACzB,MAAa,iBAAiB;AAC9B,MAAa,WAAW,wBAAwB;AAChD,MAAa,qBAAqB;AAIlC,MAAa,UAAU;CACrB,SAAS;EACP,SAAS;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACD,eAAe,CAAC,OAAO;EACxB;CACD,aAAa,EACX,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,YAAY,SAAS;EACtB,CAAC,UAAU,SAAS;EACrB,EACF;CACD,cAAc,EAAE,SAAS,CAAC,UAAU,WAAW,EAAE;CACjD,aAAa,EACX,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA,CAAC,YAAY,YAAY;EAC1B,EACF;CACD,SAAS,EAAE,SAAS;EAAC;EAAY;EAAU;EAAU;EAAY,EAAE;CACnE,SAAS,EAAE,SAAS;EAAC;EAAS;EAAa;EAAY,EAAE;CACzD,oBAAoB,EAAE,SAAS;EAAC;EAAY;EAAU;EAAU;EAAc,EAAE;CAChF,eAAe,EAAE,SAAS;EAAC;EAAU;EAAQ;EAAa;EAAe;EAAY,EAAE;CACvF,OAAO,EAAE,SAAS;EAAC;EAAW;EAAU;EAAc;EAAY,EAAE;CACrE;AAED,MAAa,aAAa;CACxB;EAAE,MAAM;EAAK,OAAO;EAAqB,MAAM;EAAkB,OAAO;EAAY;CACpF;EAAE,MAAM;EAAY,OAAO;EAAW,MAAM;EAAS,OAAO;EAAY;CACxE;EAAE,MAAM;EAAa,OAAO;EAAe,MAAM;EAAS,OAAO;EAAY;CAC7E;EAAE,MAAM;EAAgB,OAAO;EAAe,MAAM;EAAQ,OAAO;EAAY;CAC/E;EAAE,MAAM;EAAc,OAAO;EAAa,MAAM;EAAS,OAAO;EAAY;CAC5E;EAAE,MAAM;EAAY,OAAO;EAAW,MAAM;EAAe,OAAO;EAAY;CAC9E;EAAE,MAAM;EAAY,OAAO;EAAW,MAAM;EAAa,OAAO;EAAY;CAC5E;EAAE,MAAM;EAAkB,OAAO;EAAiB,MAAM;EAAQ,OAAO;EAAY;CACnF;EAAE,MAAM;EAAU,OAAO;EAAiB,MAAM;EAA2B,OAAO;EAAY;CAC9F;EAAE,MAAM;EAAa,OAAO;EAAgB,MAAM;EAAQ,OAAO;EAAY;CAC9E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
//#region src/csv.ts
|
|
2
|
+
function csvLine(values) {
|
|
3
|
+
return values.map((value) => {
|
|
4
|
+
const text = String(value ?? "");
|
|
5
|
+
return `"${(/^[=+\-@]/.test(text.trimStart()) || /^[\t\r\n]/.test(text) ? "'" + text : text).replaceAll("\"", "\"\"")}"`;
|
|
6
|
+
}).join(",");
|
|
7
|
+
}
|
|
8
|
+
const enrollmentCsvHeader = csvLine([
|
|
9
|
+
"Learner",
|
|
10
|
+
"Email",
|
|
11
|
+
"Course",
|
|
12
|
+
"Status",
|
|
13
|
+
"Access decision",
|
|
14
|
+
"Effective access",
|
|
15
|
+
"Access source",
|
|
16
|
+
"Progress %",
|
|
17
|
+
"Enrolled",
|
|
18
|
+
"Completed",
|
|
19
|
+
"Last activity",
|
|
20
|
+
"Access starts",
|
|
21
|
+
"Access expires",
|
|
22
|
+
"Order ID",
|
|
23
|
+
"Offer ID",
|
|
24
|
+
"Payment status",
|
|
25
|
+
"Amount minor",
|
|
26
|
+
"Currency",
|
|
27
|
+
"Provider"
|
|
28
|
+
]);
|
|
29
|
+
function enrollmentCsvLines(rows) {
|
|
30
|
+
return rows.map((row) => csvLine([
|
|
31
|
+
row.learnerName,
|
|
32
|
+
row.learnerEmail,
|
|
33
|
+
row.courseTitle,
|
|
34
|
+
row.status,
|
|
35
|
+
row.accessStatus,
|
|
36
|
+
row.effectiveAccess,
|
|
37
|
+
row.accessSource,
|
|
38
|
+
row.progressSummary?.percent ?? 0,
|
|
39
|
+
row.enrolledAt,
|
|
40
|
+
row.completedAt,
|
|
41
|
+
row.lastActivityAt,
|
|
42
|
+
row.accessStartsAt,
|
|
43
|
+
row.accessExpiresAt,
|
|
44
|
+
row.acquisition.orderId,
|
|
45
|
+
row.acquisition.offerId,
|
|
46
|
+
row.acquisition.paymentStatus,
|
|
47
|
+
row.acquisition.amountMinor,
|
|
48
|
+
row.acquisition.currency,
|
|
49
|
+
row.acquisition.providerId
|
|
50
|
+
]));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
export { enrollmentCsvLines as n, enrollmentCsvHeader as t };
|
|
55
|
+
//# sourceMappingURL=csv-DKq_4OWU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv-DKq_4OWU.js","names":[],"sources":["../src/csv.ts"],"sourcesContent":["import type { PublicEnrollment } from \"./types.js\";\n\ntype EnrollmentCsvRow = Pick<\n PublicEnrollment,\n | \"learnerName\"\n | \"status\"\n | \"accessStatus\"\n | \"effectiveAccess\"\n | \"accessSource\"\n | \"enrolledAt\"\n | \"completedAt\"\n | \"lastActivityAt\"\n | \"accessStartsAt\"\n | \"accessExpiresAt\"\n | \"acquisition\"\n> & { learnerEmail: string; courseTitle: string; progressSummary: { percent: number } | null };\n\nfunction csvLine(values: unknown[]): string {\n return values\n .map((value) => {\n const text = String(value ?? \"\");\n const safe = /^[=+\\-@]/.test(text.trimStart()) || /^[\\t\\r\\n]/.test(text) ? \"'\" + text : text;\n return `\"${safe.replaceAll('\"', '\"\"')}\"`;\n })\n .join(\",\");\n}\n\nexport const enrollmentCsvHeader = csvLine([\n \"Learner\",\n \"Email\",\n \"Course\",\n \"Status\",\n \"Access decision\",\n \"Effective access\",\n \"Access source\",\n \"Progress %\",\n \"Enrolled\",\n \"Completed\",\n \"Last activity\",\n \"Access starts\",\n \"Access expires\",\n \"Order ID\",\n \"Offer ID\",\n \"Payment status\",\n \"Amount minor\",\n \"Currency\",\n \"Provider\",\n]);\n\nexport function enrollmentCsvLines(rows: EnrollmentCsvRow[]): string[] {\n return rows.map((row) =>\n csvLine([\n row.learnerName,\n row.learnerEmail,\n row.courseTitle,\n row.status,\n row.accessStatus,\n row.effectiveAccess,\n row.accessSource,\n row.progressSummary?.percent ?? 0,\n row.enrolledAt,\n row.completedAt,\n row.lastActivityAt,\n row.accessStartsAt,\n row.accessExpiresAt,\n row.acquisition.orderId,\n row.acquisition.offerId,\n row.acquisition.paymentStatus,\n row.acquisition.amountMinor,\n row.acquisition.currency,\n row.acquisition.providerId,\n ]),\n );\n}\n"],"mappings":";AAiBA,SAAS,QAAQ,QAA2B;AAC1C,QAAO,OACJ,KAAK,UAAU;EACd,MAAM,OAAO,OAAO,SAAS,GAAG;AAEhC,SAAO,KADM,WAAW,KAAK,KAAK,WAAW,CAAC,IAAI,YAAY,KAAK,KAAK,GAAG,MAAM,OAAO,MACxE,WAAW,MAAK,OAAK,CAAC;GACtC,CACD,KAAK,IAAI;;AAGd,MAAa,sBAAsB,QAAQ;CACzC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAgB,mBAAmB,MAAoC;AACrE,QAAO,KAAK,KAAK,QACf,QAAQ;EACN,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI,iBAAiB,WAAW;EAChC,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI,YAAY;EAChB,IAAI,YAAY;EAChB,IAAI,YAAY;EAChB,IAAI,YAAY;EAChB,IAAI,YAAY;EAChB,IAAI,YAAY;EACjB,CAAC,CACH"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/errors.ts
|
|
2
|
+
var LmsError = class extends Error {
|
|
3
|
+
constructor(code, message, status = 400) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.code = code;
|
|
6
|
+
this.status = status;
|
|
7
|
+
this.name = "PluginRouteError";
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
function invariant(condition, code, message, status = 400) {
|
|
11
|
+
if (!condition) throw new LmsError(code, message, status);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//#endregion
|
|
15
|
+
export { invariant as n, LmsError as t };
|
|
16
|
+
//# sourceMappingURL=errors-ChzJS9al.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors-ChzJS9al.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["export class LmsError extends Error {\n constructor(\n readonly code: string,\n message: string,\n readonly status = 400,\n ) {\n super(message);\n this.name = \"PluginRouteError\";\n }\n}\n\nexport function invariant(\n condition: unknown,\n code: string,\n message: string,\n status = 400,\n): asserts condition {\n if (!condition) throw new LmsError(code, message, status);\n}\n"],"mappings":";AAAA,IAAa,WAAb,cAA8B,MAAM;CAClC,YACE,AAAS,MACT,SACA,AAAS,SAAS,KAClB;AACA,QAAM,QAAQ;EAJL;EAEA;AAGT,OAAK,OAAO;;;AAIhB,SAAgB,UACd,WACA,MACA,SACA,SAAS,KACU;AACnB,KAAI,CAAC,UAAW,OAAM,IAAI,SAAS,MAAM,SAAS,OAAO"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LmsOptions } from "./types.js";
|
|
2
|
+
import { PluginDescriptor } from "emdash";
|
|
3
|
+
|
|
4
|
+
//#region src/constants.d.ts
|
|
5
|
+
declare const PLUGIN_ID = "anantagnanam-lms";
|
|
6
|
+
declare const PLUGIN_VERSION = "0.1.0";
|
|
7
|
+
declare const API_BASE = "/_emdash/api/plugins/anantagnanam-lms";
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/index.d.ts
|
|
10
|
+
declare function anantagnanamLmsPlugin(options?: LmsOptions): PluginDescriptor<LmsOptions>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { API_BASE, type LmsOptions, PLUGIN_ID, PLUGIN_VERSION, anantagnanamLmsPlugin, anantagnanamLmsPlugin as default };
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { a as adminPages, i as PLUGIN_VERSION, r as PLUGIN_ID, t as API_BASE } from "./constants-C0kT94tc.js";
|
|
2
|
+
import { t as normalizeLmsOptions } from "./config-BX3beTpM.js";
|
|
3
|
+
|
|
4
|
+
//#region src/index.ts
|
|
5
|
+
function anantagnanamLmsPlugin(options = {}) {
|
|
6
|
+
return {
|
|
7
|
+
id: PLUGIN_ID,
|
|
8
|
+
version: PLUGIN_VERSION,
|
|
9
|
+
format: "native",
|
|
10
|
+
entrypoint: "@anantagnanam/lms/runtime",
|
|
11
|
+
adminEntry: "@anantagnanam/lms/admin",
|
|
12
|
+
adminPages,
|
|
13
|
+
options: normalizeLmsOptions(options)
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { API_BASE, PLUGIN_ID, PLUGIN_VERSION, anantagnanamLmsPlugin, anantagnanamLmsPlugin as default };
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { PluginDescriptor } from \"emdash\";\nimport { PLUGIN_ID, PLUGIN_VERSION, adminPages } from \"./constants.js\";\nimport type { LmsOptions } from \"./types.js\";\nimport { normalizeLmsOptions } from \"./config.js\";\n\nexport function anantagnanamLmsPlugin(options: LmsOptions = {}): PluginDescriptor<LmsOptions> {\n return {\n id: PLUGIN_ID,\n version: PLUGIN_VERSION,\n format: \"native\",\n entrypoint: \"@anantagnanam/lms/runtime\",\n adminEntry: \"@anantagnanam/lms/admin\",\n adminPages,\n options: normalizeLmsOptions(options),\n };\n}\n\nexport { PLUGIN_ID, PLUGIN_VERSION, API_BASE } from \"./constants.js\";\nexport type { LmsOptions } from \"./types.js\";\nexport default anantagnanamLmsPlugin;\n"],"mappings":";;;;AAKA,SAAgB,sBAAsB,UAAsB,EAAE,EAAgC;AAC5F,QAAO;EACL,IAAI;EACJ,SAAS;EACT,QAAQ;EACR,YAAY;EACZ,YAAY;EACZ;EACA,SAAS,oBAAoB,QAAQ;EACtC"}
|