@tostudy-ai/cli 0.18.5 → 0.18.7
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/dist/cli.js +25 -14
- package/dist/cli.js.map +2 -2
- package/dist/main.js +185 -147
- package/dist/main.js.map +4 -4
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -40,7 +40,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
40
40
|
mod
|
|
41
41
|
));
|
|
42
42
|
|
|
43
|
-
//
|
|
43
|
+
// ../../node_modules/@parisgroup-ai/logger/dist/sanitize-CP9aWCdx.mjs
|
|
44
44
|
function isSensitiveKey(key) {
|
|
45
45
|
if (matchesSensitiveField(key)) return true;
|
|
46
46
|
return matchesPluralOfSensitiveField(key);
|
|
@@ -148,8 +148,8 @@ function sanitizeEntryData(obj, additionalSensitiveKeys, includeStack, redactMas
|
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
150
|
var SENSITIVE_FIELDS;
|
|
151
|
-
var
|
|
152
|
-
"
|
|
151
|
+
var init_sanitize_CP9aWCdx = __esm({
|
|
152
|
+
"../../node_modules/@parisgroup-ai/logger/dist/sanitize-CP9aWCdx.mjs"() {
|
|
153
153
|
SENSITIVE_FIELDS = [
|
|
154
154
|
"password",
|
|
155
155
|
"senha",
|
|
@@ -208,9 +208,9 @@ var init_sanitize_Cu_Xsxno = __esm({
|
|
|
208
208
|
}
|
|
209
209
|
});
|
|
210
210
|
|
|
211
|
-
//
|
|
211
|
+
// ../../node_modules/picocolors/picocolors.js
|
|
212
212
|
var require_picocolors = __commonJS({
|
|
213
|
-
"
|
|
213
|
+
"../../node_modules/picocolors/picocolors.js"(exports, module) {
|
|
214
214
|
var p = process || {};
|
|
215
215
|
var argv = p.argv || [];
|
|
216
216
|
var env = p.env || {};
|
|
@@ -280,7 +280,7 @@ var require_picocolors = __commonJS({
|
|
|
280
280
|
}
|
|
281
281
|
});
|
|
282
282
|
|
|
283
|
-
//
|
|
283
|
+
// ../../node_modules/@parisgroup-ai/logger/dist/logger.base-B6ycMyex.mjs
|
|
284
284
|
function formatJson(entry) {
|
|
285
285
|
const { timestamp, level, message, service, environment, context, data, error: error49 } = entry;
|
|
286
286
|
const output3 = {
|
|
@@ -376,17 +376,19 @@ function extractErrorInfo(error49, includeStack, visited = /* @__PURE__ */ new W
|
|
|
376
376
|
if (includeStack && error49.stack) info.stack = error49.stack;
|
|
377
377
|
if ("code" in error49 && typeof error49.code === "string") info.code = error49.code;
|
|
378
378
|
visited.add(error49);
|
|
379
|
-
if (error49.cause instanceof Error)
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
379
|
+
if (error49.cause instanceof Error) {
|
|
380
|
+
if (visited.has(error49.cause)) info.cause = {
|
|
381
|
+
name: error49.cause.name,
|
|
382
|
+
message: "[Circular]"
|
|
383
|
+
};
|
|
384
|
+
else info.cause = extractErrorInfo(error49.cause, includeStack, visited);
|
|
385
|
+
}
|
|
384
386
|
return info;
|
|
385
387
|
}
|
|
386
388
|
var import_picocolors, LOG_LEVELS, LEVEL_COLORS, LEVEL_WIDTH, BaseLogger;
|
|
387
|
-
var
|
|
388
|
-
"
|
|
389
|
-
|
|
389
|
+
var init_logger_base_B6ycMyex = __esm({
|
|
390
|
+
"../../node_modules/@parisgroup-ai/logger/dist/logger.base-B6ycMyex.mjs"() {
|
|
391
|
+
init_sanitize_CP9aWCdx();
|
|
390
392
|
import_picocolors = __toESM(require_picocolors(), 1);
|
|
391
393
|
LOG_LEVELS = {
|
|
392
394
|
trace: 0,
|
|
@@ -593,7 +595,7 @@ var init_logger_base_DkCKo9Cu = __esm({
|
|
|
593
595
|
}
|
|
594
596
|
});
|
|
595
597
|
|
|
596
|
-
//
|
|
598
|
+
// ../../node_modules/@parisgroup-ai/logger/dist/index.mjs
|
|
597
599
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
598
600
|
import { appendFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
599
601
|
import { join } from "node:path";
|
|
@@ -706,9 +708,9 @@ function createLogger(module, options) {
|
|
|
706
708
|
}
|
|
707
709
|
var asyncLocalStorage, ConsoleTransport, FileTransport, HttpTransport, SINGLETON_KEY$1, SEVERITY, OtlpLogsTransport, SINGLETON_KEY, Logger, logger;
|
|
708
710
|
var init_dist = __esm({
|
|
709
|
-
"
|
|
710
|
-
|
|
711
|
-
|
|
711
|
+
"../../node_modules/@parisgroup-ai/logger/dist/index.mjs"() {
|
|
712
|
+
init_logger_base_B6ycMyex();
|
|
713
|
+
init_sanitize_CP9aWCdx();
|
|
712
714
|
asyncLocalStorage = new AsyncLocalStorage();
|
|
713
715
|
ConsoleTransport = class {
|
|
714
716
|
log(entry, formatted) {
|
|
@@ -743,7 +745,10 @@ var init_dist = __esm({
|
|
|
743
745
|
});
|
|
744
746
|
}
|
|
745
747
|
flush() {
|
|
746
|
-
for (const { file: file2, content } of this.buffer)
|
|
748
|
+
for (const { file: file2, content } of this.buffer) {
|
|
749
|
+
const filepath = join(this.dir, file2);
|
|
750
|
+
appendFileSync(filepath, content);
|
|
751
|
+
}
|
|
747
752
|
this.buffer = [];
|
|
748
753
|
}
|
|
749
754
|
};
|
|
@@ -1035,6 +1040,8 @@ var init_errors_pt_br = __esm({
|
|
|
1035
1040
|
suggestNoOverlap: "Sem coincid\xEAncia com o perfil.",
|
|
1036
1041
|
suggestEmptyProfile: "Perfil vazio. Mostrando cursos gratuitos em aberto.",
|
|
1037
1042
|
suggestReason: "Motivo:",
|
|
1043
|
+
suggestReasonMatch: "combina com o seu perfil em",
|
|
1044
|
+
suggestReasonAnd: "e",
|
|
1038
1045
|
suggestPaidHeader: "Pagos. A matr\xEDcula fica no navegador e nada \xE9 debitado por aqui:",
|
|
1039
1046
|
enrollmentNotEntitled: "\u{1F6AB} Sua matr\xEDcula neste curso n\xE3o est\xE1 mais ativa (reembolso, cancelamento ou preview expirado).\nPara voltar a estudar, adquira o curso novamente em https://tostudy.ai.\n",
|
|
1040
1047
|
creator: {
|
|
@@ -1144,6 +1151,8 @@ var init_errors_en_us = __esm({
|
|
|
1144
1151
|
suggestNoOverlap: "No word in the profile matched.",
|
|
1145
1152
|
suggestEmptyProfile: "Profile is empty. Showing open free courses.",
|
|
1146
1153
|
suggestReason: "Why:",
|
|
1154
|
+
suggestReasonMatch: "matches your profile on",
|
|
1155
|
+
suggestReasonAnd: "and",
|
|
1147
1156
|
suggestPaidHeader: "Paid. Enrollment stays in the browser and nothing is charged here:",
|
|
1148
1157
|
enrollmentNotEntitled: "\u{1F6AB} Your enrollment in this course is no longer active (refund, cancellation, or expired preview).\nTo study again, purchase the course at https://tostudy.ai.\n",
|
|
1149
1158
|
creator: {
|
|
@@ -1500,17 +1509,17 @@ var init_session_store = __esm({
|
|
|
1500
1509
|
}
|
|
1501
1510
|
});
|
|
1502
1511
|
|
|
1503
|
-
//
|
|
1512
|
+
// ../../packages/tostudy-core/src/slug.ts
|
|
1504
1513
|
function slugify(text2, maxLength = 60) {
|
|
1505
1514
|
return text2.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, maxLength).replace(/-+$/, "");
|
|
1506
1515
|
}
|
|
1507
1516
|
var init_slug = __esm({
|
|
1508
|
-
"
|
|
1517
|
+
"../../packages/tostudy-core/src/slug.ts"() {
|
|
1509
1518
|
"use strict";
|
|
1510
1519
|
}
|
|
1511
1520
|
});
|
|
1512
1521
|
|
|
1513
|
-
//
|
|
1522
|
+
// ../../packages/tostudy-core/src/lessons/workspace-tokens.ts
|
|
1514
1523
|
function resolveWorkspaceTokensInText(text2, paths) {
|
|
1515
1524
|
return text2.replace(WORKSPACE_TOKEN, () => paths.workspace).replace(VAULT_TOKEN, () => paths.vault);
|
|
1516
1525
|
}
|
|
@@ -1537,7 +1546,7 @@ function resolveWorkspaceTokens(value, paths) {
|
|
|
1537
1546
|
}
|
|
1538
1547
|
var WORKSPACE_TOKEN, VAULT_TOKEN;
|
|
1539
1548
|
var init_workspace_tokens = __esm({
|
|
1540
|
-
"
|
|
1549
|
+
"../../packages/tostudy-core/src/lessons/workspace-tokens.ts"() {
|
|
1541
1550
|
"use strict";
|
|
1542
1551
|
init_slug();
|
|
1543
1552
|
WORKSPACE_TOKEN = /\$WORKSPACE(?![A-Za-z0-9_])/g;
|
|
@@ -1615,7 +1624,8 @@ function formatCourseList(courses) {
|
|
|
1615
1624
|
return [
|
|
1616
1625
|
"Nenhum curso encontrado.",
|
|
1617
1626
|
"",
|
|
1618
|
-
"\u2192
|
|
1627
|
+
"\u2192 tostudy suggest cursos que voc\xEA pode come\xE7ar agora",
|
|
1628
|
+
"\u2192 tostudy enroll <id> matricula sem sair do terminal"
|
|
1619
1629
|
].join("\n");
|
|
1620
1630
|
}
|
|
1621
1631
|
const lines = ["Seus cursos:", ""];
|
|
@@ -2746,6 +2756,7 @@ async function readWorkspaceState(workspacePath) {
|
|
|
2746
2756
|
};
|
|
2747
2757
|
if (typeof raw2.currentLessonId === "string") state.currentLessonId = raw2.currentLessonId;
|
|
2748
2758
|
if (typeof raw2.currentModuleId === "string") state.currentModuleId = raw2.currentModuleId;
|
|
2759
|
+
if (typeof raw2.retryLessonId === "string") state.retryLessonId = raw2.retryLessonId;
|
|
2749
2760
|
if (Array.isArray(raw2.courseTags)) state.courseTags = raw2.courseTags;
|
|
2750
2761
|
if (raw2.courseLevel === "beginner" || raw2.courseLevel === "intermediate" || raw2.courseLevel === "advanced" || raw2.courseLevel === null) {
|
|
2751
2762
|
state.courseLevel = raw2.courseLevel;
|
|
@@ -3172,25 +3183,25 @@ import { Command } from "commander";
|
|
|
3172
3183
|
import { execFile as execFile2 } from "node:child_process";
|
|
3173
3184
|
import { randomBytes } from "node:crypto";
|
|
3174
3185
|
|
|
3175
|
-
//
|
|
3186
|
+
// ../../packages/tostudy-core/src/courses/list-courses.ts
|
|
3176
3187
|
async function listCourses(input2, deps) {
|
|
3177
3188
|
deps.logger.info("tostudy-core: listCourses", { userId: input2.userId });
|
|
3178
3189
|
return deps.data.courses.list(input2.userId);
|
|
3179
3190
|
}
|
|
3180
3191
|
|
|
3181
|
-
//
|
|
3192
|
+
// ../../packages/tostudy-core/src/courses/select-course.ts
|
|
3182
3193
|
async function selectCourse(input2, deps) {
|
|
3183
3194
|
deps.logger.info("tostudy-core: selectCourse", input2);
|
|
3184
3195
|
return deps.data.courses.select(input2.userId, input2.courseId);
|
|
3185
3196
|
}
|
|
3186
3197
|
|
|
3187
|
-
//
|
|
3198
|
+
// ../../packages/tostudy-core/src/courses/get-progress.ts
|
|
3188
3199
|
async function getProgress(input2, deps) {
|
|
3189
3200
|
deps.logger.info("tostudy-core: getProgress", input2);
|
|
3190
3201
|
return deps.data.courses.getProgress(input2.enrollmentId);
|
|
3191
3202
|
}
|
|
3192
3203
|
|
|
3193
|
-
//
|
|
3204
|
+
// ../../packages/tostudy-core/src/adapters/http.ts
|
|
3194
3205
|
var CliApiError = class extends Error {
|
|
3195
3206
|
constructor(message, status, code) {
|
|
3196
3207
|
super(message);
|
|
@@ -3446,6 +3457,13 @@ function assertTrustedApiUrl(apiUrl) {
|
|
|
3446
3457
|
`API URL n\xE3o confi\xE1vel: ${apiUrl}. Use https://tostudy.ai (ou um subdom\xEDnio) ou localhost.`
|
|
3447
3458
|
);
|
|
3448
3459
|
}
|
|
3460
|
+
function browserCommand(platform2, url2) {
|
|
3461
|
+
if (platform2 === "darwin") return { cmd: "open", args: [url2] };
|
|
3462
|
+
if (platform2 === "win32") {
|
|
3463
|
+
return { cmd: "rundll32", args: ["url.dll,FileProtocolHandler", url2] };
|
|
3464
|
+
}
|
|
3465
|
+
return { cmd: "xdg-open", args: [url2] };
|
|
3466
|
+
}
|
|
3449
3467
|
function buildAuthorizeUrl(apiUrl, port, state, creator) {
|
|
3450
3468
|
const base = `${apiUrl}/api/cli/auth/authorize?port=${port}&state=${state}`;
|
|
3451
3469
|
return creator ? `${base}&scope=creator` : base;
|
|
@@ -3553,8 +3571,8 @@ var loginCommand = new Command("login").description("Autentica no ToStudy via br
|
|
|
3553
3571
|
const state = randomBytes(32).toString("hex");
|
|
3554
3572
|
const serverPromise = startCallbackServer(PORT, state);
|
|
3555
3573
|
const authUrl = buildAuthorizeUrl(apiUrl, PORT, state, opts.creator === true);
|
|
3556
|
-
const
|
|
3557
|
-
execFile2(
|
|
3574
|
+
const { cmd, args } = browserCommand(process.platform, authUrl);
|
|
3575
|
+
execFile2(cmd, args, (err) => {
|
|
3558
3576
|
if (err) {
|
|
3559
3577
|
console.log(` N\xE3o foi poss\xEDvel abrir o browser automaticamente.`);
|
|
3560
3578
|
console.log(` Abra manualmente: ${authUrl}
|
|
@@ -3638,7 +3656,7 @@ var loginCommand = new Command("login").description("Autentica no ToStudy via br
|
|
|
3638
3656
|
\u2713 ${courses.length} curso(s) matriculado(s)`);
|
|
3639
3657
|
} else {
|
|
3640
3658
|
console.log(`
|
|
3641
|
-
\u2192 Nenhum curso matriculado.
|
|
3659
|
+
\u2192 Nenhum curso matriculado. Rode: tostudy suggest`);
|
|
3642
3660
|
}
|
|
3643
3661
|
} catch {
|
|
3644
3662
|
}
|
|
@@ -3742,9 +3760,14 @@ async function runMcpSetup(session, token, spawnImpl = spawn) {
|
|
|
3742
3760
|
var defaultDeps = {
|
|
3743
3761
|
log: (message = "") => {
|
|
3744
3762
|
console.log(message);
|
|
3745
|
-
}
|
|
3763
|
+
},
|
|
3764
|
+
setupMcp: () => runSetupMcpSubcommand()
|
|
3746
3765
|
};
|
|
3747
|
-
async function runSetup(
|
|
3766
|
+
async function runSetup(opts, deps = defaultDeps) {
|
|
3767
|
+
if (opts.mcp) {
|
|
3768
|
+
await deps.setupMcp();
|
|
3769
|
+
return;
|
|
3770
|
+
}
|
|
3748
3771
|
const errors = getErrors();
|
|
3749
3772
|
deps.log(errors.setupRetiredNotice);
|
|
3750
3773
|
deps.log(errors.setupRetiredNext);
|
|
@@ -3810,7 +3833,7 @@ init_workspace_state();
|
|
|
3810
3833
|
init_formatter();
|
|
3811
3834
|
|
|
3812
3835
|
// src/version.ts
|
|
3813
|
-
var CLI_VERSION = true ? "0.18.
|
|
3836
|
+
var CLI_VERSION = true ? "0.18.7" : "0.7.1";
|
|
3814
3837
|
|
|
3815
3838
|
// src/update-checker.ts
|
|
3816
3839
|
init_config_dir();
|
|
@@ -4342,18 +4365,40 @@ var STOP_WORDS = /* @__PURE__ */ new Set([
|
|
|
4342
4365
|
"do",
|
|
4343
4366
|
"das",
|
|
4344
4367
|
"dos",
|
|
4368
|
+
"por",
|
|
4369
|
+
"pro",
|
|
4370
|
+
"pra",
|
|
4345
4371
|
"para",
|
|
4346
4372
|
"com",
|
|
4373
|
+
"sem",
|
|
4347
4374
|
"uma",
|
|
4348
4375
|
"um",
|
|
4376
|
+
"nao",
|
|
4377
|
+
"n\xE3o",
|
|
4378
|
+
"que",
|
|
4379
|
+
"mais",
|
|
4380
|
+
"como",
|
|
4381
|
+
"isso",
|
|
4382
|
+
"este",
|
|
4383
|
+
"esta",
|
|
4384
|
+
"tem",
|
|
4349
4385
|
"the",
|
|
4350
4386
|
"and",
|
|
4351
4387
|
"for",
|
|
4352
4388
|
"you",
|
|
4389
|
+
"your",
|
|
4390
|
+
"with",
|
|
4353
4391
|
"seu",
|
|
4354
4392
|
"sua",
|
|
4393
|
+
"seus",
|
|
4394
|
+
"suas",
|
|
4395
|
+
"meu",
|
|
4396
|
+
"minha",
|
|
4355
4397
|
"curso",
|
|
4356
|
-
"
|
|
4398
|
+
"cursos",
|
|
4399
|
+
"course",
|
|
4400
|
+
"tags",
|
|
4401
|
+
"tag"
|
|
4357
4402
|
]);
|
|
4358
4403
|
var TOKEN_SPLIT = /[^\p{L}\p{N}]+/u;
|
|
4359
4404
|
var MAX_RESULTS = 3;
|
|
@@ -4395,7 +4440,7 @@ function rankSuggestions(courses, query) {
|
|
|
4395
4440
|
}));
|
|
4396
4441
|
}
|
|
4397
4442
|
const textTokens = tokensOf(text2, true);
|
|
4398
|
-
const levelTokens = level === null ? [] : tokensOf(level,
|
|
4443
|
+
const levelTokens = level === null ? [] : tokensOf(level, true);
|
|
4399
4444
|
const scored = courses.map((course) => {
|
|
4400
4445
|
const stack = haystack(course);
|
|
4401
4446
|
const outsideLevel = haystackWithoutLevel(course);
|
|
@@ -4538,10 +4583,14 @@ function suggestionQuery(brief, profile, workspaceTokens) {
|
|
|
4538
4583
|
level: profile?.learnerLevel ?? null
|
|
4539
4584
|
};
|
|
4540
4585
|
}
|
|
4586
|
+
function listaDeTemas(tokens, copy) {
|
|
4587
|
+
if (tokens.length === 1) return tokens[0];
|
|
4588
|
+
return `${tokens.slice(0, -1).join(", ")} ${copy.suggestReasonAnd} ${tokens.at(-1)}`;
|
|
4589
|
+
}
|
|
4541
4590
|
function reasonText(reason, copy) {
|
|
4542
4591
|
if (reason === "empty-profile") return copy.suggestEmptyProfile;
|
|
4543
4592
|
if (reason === "no-overlap") return copy.suggestNoOverlap;
|
|
4544
|
-
return reason
|
|
4593
|
+
return `${copy.suggestReasonMatch} ${listaDeTemas(reason.split(","), copy)}`;
|
|
4545
4594
|
}
|
|
4546
4595
|
function formatBlock(ranked, lineFor) {
|
|
4547
4596
|
const copy = getErrors();
|
|
@@ -5223,37 +5272,37 @@ var progressCommand = new Command9("progress").description("Show your progress i
|
|
|
5223
5272
|
init_dist();
|
|
5224
5273
|
import { Command as Command10 } from "commander";
|
|
5225
5274
|
|
|
5226
|
-
//
|
|
5275
|
+
// ../../packages/tostudy-core/src/lessons/next-lesson.ts
|
|
5227
5276
|
async function nextLesson(input2, deps) {
|
|
5228
5277
|
deps.logger.info("tostudy-core: nextLesson", { enrollmentId: input2.enrollmentId });
|
|
5229
5278
|
return deps.data.lessons.next(input2.enrollmentId, input2.userConfirmation);
|
|
5230
5279
|
}
|
|
5231
5280
|
|
|
5232
|
-
//
|
|
5281
|
+
// ../../packages/tostudy-core/src/lessons/get-content.ts
|
|
5233
5282
|
async function getContent(input2, deps) {
|
|
5234
5283
|
deps.logger.info("tostudy-core: getContent", { lessonId: input2.lessonId });
|
|
5235
5284
|
return deps.data.lessons.getContent(input2.lessonId, input2.enrollmentId);
|
|
5236
5285
|
}
|
|
5237
5286
|
|
|
5238
|
-
//
|
|
5287
|
+
// ../../packages/tostudy-core/src/lessons/get-hint.ts
|
|
5239
5288
|
async function getHint(input2, deps) {
|
|
5240
5289
|
deps.logger.info("tostudy-core: getHint", { userId: input2.userId });
|
|
5241
5290
|
return deps.data.lessons.getHint(input2.userId, input2.enrollmentId);
|
|
5242
5291
|
}
|
|
5243
5292
|
|
|
5244
|
-
//
|
|
5293
|
+
// ../../packages/tostudy-core/src/lessons/start-module.ts
|
|
5245
5294
|
async function startModule(input2, deps) {
|
|
5246
5295
|
deps.logger.info("tostudy-core: startModule", { enrollmentId: input2.enrollmentId });
|
|
5247
5296
|
return deps.data.lessons.startModule(input2.enrollmentId);
|
|
5248
5297
|
}
|
|
5249
5298
|
|
|
5250
|
-
//
|
|
5299
|
+
// ../../packages/tostudy-core/src/lessons/start-next-module.ts
|
|
5251
5300
|
async function startNextModule(input2, deps) {
|
|
5252
5301
|
deps.logger.info("tostudy-core: startNextModule", { enrollmentId: input2.enrollmentId });
|
|
5253
5302
|
return deps.data.lessons.startNextModule(input2.enrollmentId);
|
|
5254
5303
|
}
|
|
5255
5304
|
|
|
5256
|
-
//
|
|
5305
|
+
// ../../packages/tostudy-core/src/lessons/index.ts
|
|
5257
5306
|
init_workspace_tokens();
|
|
5258
5307
|
|
|
5259
5308
|
// src/commands/start.ts
|
|
@@ -5710,7 +5759,7 @@ import fs12 from "node:fs";
|
|
|
5710
5759
|
import path15 from "node:path";
|
|
5711
5760
|
import { Command as Command16 } from "commander";
|
|
5712
5761
|
|
|
5713
|
-
//
|
|
5762
|
+
// ../../packages/tostudy-core/src/exercises/validate-solution.ts
|
|
5714
5763
|
async function validateSolution(input2, deps) {
|
|
5715
5764
|
deps.logger.info("tostudy-core: validateSolution", { lessonId: input2.lessonId });
|
|
5716
5765
|
if (input2.metadata !== void 0) {
|
|
@@ -5730,7 +5779,7 @@ async function validateSolution(input2, deps) {
|
|
|
5730
5779
|
);
|
|
5731
5780
|
}
|
|
5732
5781
|
|
|
5733
|
-
//
|
|
5782
|
+
// ../../node_modules/zod/v4/classic/external.js
|
|
5734
5783
|
var external_exports = {};
|
|
5735
5784
|
__export(external_exports, {
|
|
5736
5785
|
$brand: () => $brand,
|
|
@@ -5971,7 +6020,7 @@ __export(external_exports, {
|
|
|
5971
6020
|
xor: () => xor
|
|
5972
6021
|
});
|
|
5973
6022
|
|
|
5974
|
-
//
|
|
6023
|
+
// ../../node_modules/zod/v4/core/index.js
|
|
5975
6024
|
var core_exports2 = {};
|
|
5976
6025
|
__export(core_exports2, {
|
|
5977
6026
|
$ZodAny: () => $ZodAny,
|
|
@@ -6249,7 +6298,7 @@ __export(core_exports2, {
|
|
|
6249
6298
|
version: () => version
|
|
6250
6299
|
});
|
|
6251
6300
|
|
|
6252
|
-
//
|
|
6301
|
+
// ../../node_modules/zod/v4/core/core.js
|
|
6253
6302
|
var NEVER = Object.freeze({
|
|
6254
6303
|
status: "aborted"
|
|
6255
6304
|
});
|
|
@@ -6324,7 +6373,7 @@ function config(newConfig) {
|
|
|
6324
6373
|
return globalConfig;
|
|
6325
6374
|
}
|
|
6326
6375
|
|
|
6327
|
-
//
|
|
6376
|
+
// ../../node_modules/zod/v4/core/util.js
|
|
6328
6377
|
var util_exports = {};
|
|
6329
6378
|
__export(util_exports, {
|
|
6330
6379
|
BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
|
|
@@ -7003,7 +7052,7 @@ var Class = class {
|
|
|
7003
7052
|
}
|
|
7004
7053
|
};
|
|
7005
7054
|
|
|
7006
|
-
//
|
|
7055
|
+
// ../../node_modules/zod/v4/core/errors.js
|
|
7007
7056
|
var initializer = (inst, def) => {
|
|
7008
7057
|
inst.name = "$ZodError";
|
|
7009
7058
|
Object.defineProperty(inst, "_zod", {
|
|
@@ -7139,7 +7188,7 @@ function prettifyError(error49) {
|
|
|
7139
7188
|
return lines.join("\n");
|
|
7140
7189
|
}
|
|
7141
7190
|
|
|
7142
|
-
//
|
|
7191
|
+
// ../../node_modules/zod/v4/core/parse.js
|
|
7143
7192
|
var _parse = (_Err) => (schema, value, _ctx, _params) => {
|
|
7144
7193
|
const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
|
|
7145
7194
|
const result = schema._zod.run({ value, issues: [] }, ctx);
|
|
@@ -7227,7 +7276,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
|
7227
7276
|
};
|
|
7228
7277
|
var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
|
|
7229
7278
|
|
|
7230
|
-
//
|
|
7279
|
+
// ../../node_modules/zod/v4/core/regexes.js
|
|
7231
7280
|
var regexes_exports = {};
|
|
7232
7281
|
__export(regexes_exports, {
|
|
7233
7282
|
base64: () => base64,
|
|
@@ -7384,7 +7433,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
|
|
|
7384
7433
|
var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
|
|
7385
7434
|
var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
|
|
7386
7435
|
|
|
7387
|
-
//
|
|
7436
|
+
// ../../node_modules/zod/v4/core/checks.js
|
|
7388
7437
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
7389
7438
|
var _a2;
|
|
7390
7439
|
inst._zod ?? (inst._zod = {});
|
|
@@ -7932,7 +7981,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
|
|
|
7932
7981
|
};
|
|
7933
7982
|
});
|
|
7934
7983
|
|
|
7935
|
-
//
|
|
7984
|
+
// ../../node_modules/zod/v4/core/doc.js
|
|
7936
7985
|
var Doc = class {
|
|
7937
7986
|
constructor(args = []) {
|
|
7938
7987
|
this.content = [];
|
|
@@ -7968,14 +8017,14 @@ var Doc = class {
|
|
|
7968
8017
|
}
|
|
7969
8018
|
};
|
|
7970
8019
|
|
|
7971
|
-
//
|
|
8020
|
+
// ../../node_modules/zod/v4/core/versions.js
|
|
7972
8021
|
var version = {
|
|
7973
8022
|
major: 4,
|
|
7974
8023
|
minor: 3,
|
|
7975
8024
|
patch: 6
|
|
7976
8025
|
};
|
|
7977
8026
|
|
|
7978
|
-
//
|
|
8027
|
+
// ../../node_modules/zod/v4/core/schemas.js
|
|
7979
8028
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
7980
8029
|
var _a2;
|
|
7981
8030
|
inst ?? (inst = {});
|
|
@@ -9946,7 +9995,7 @@ function handleRefineResult(result, payload, input2, inst) {
|
|
|
9946
9995
|
}
|
|
9947
9996
|
}
|
|
9948
9997
|
|
|
9949
|
-
//
|
|
9998
|
+
// ../../node_modules/zod/v4/locales/index.js
|
|
9950
9999
|
var locales_exports = {};
|
|
9951
10000
|
__export(locales_exports, {
|
|
9952
10001
|
ar: () => ar_default,
|
|
@@ -10000,7 +10049,7 @@ __export(locales_exports, {
|
|
|
10000
10049
|
zhTW: () => zh_TW_default
|
|
10001
10050
|
});
|
|
10002
10051
|
|
|
10003
|
-
//
|
|
10052
|
+
// ../../node_modules/zod/v4/locales/ar.js
|
|
10004
10053
|
var error2 = () => {
|
|
10005
10054
|
const Sizable = {
|
|
10006
10055
|
string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
|
|
@@ -10107,7 +10156,7 @@ function ar_default() {
|
|
|
10107
10156
|
};
|
|
10108
10157
|
}
|
|
10109
10158
|
|
|
10110
|
-
//
|
|
10159
|
+
// ../../node_modules/zod/v4/locales/az.js
|
|
10111
10160
|
var error3 = () => {
|
|
10112
10161
|
const Sizable = {
|
|
10113
10162
|
string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
|
|
@@ -10213,7 +10262,7 @@ function az_default() {
|
|
|
10213
10262
|
};
|
|
10214
10263
|
}
|
|
10215
10264
|
|
|
10216
|
-
//
|
|
10265
|
+
// ../../node_modules/zod/v4/locales/be.js
|
|
10217
10266
|
function getBelarusianPlural(count, one, few, many) {
|
|
10218
10267
|
const absCount = Math.abs(count);
|
|
10219
10268
|
const lastDigit = absCount % 10;
|
|
@@ -10370,7 +10419,7 @@ function be_default() {
|
|
|
10370
10419
|
};
|
|
10371
10420
|
}
|
|
10372
10421
|
|
|
10373
|
-
//
|
|
10422
|
+
// ../../node_modules/zod/v4/locales/bg.js
|
|
10374
10423
|
var error5 = () => {
|
|
10375
10424
|
const Sizable = {
|
|
10376
10425
|
string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" },
|
|
@@ -10491,7 +10540,7 @@ function bg_default() {
|
|
|
10491
10540
|
};
|
|
10492
10541
|
}
|
|
10493
10542
|
|
|
10494
|
-
//
|
|
10543
|
+
// ../../node_modules/zod/v4/locales/ca.js
|
|
10495
10544
|
var error6 = () => {
|
|
10496
10545
|
const Sizable = {
|
|
10497
10546
|
string: { unit: "car\xE0cters", verb: "contenir" },
|
|
@@ -10600,7 +10649,7 @@ function ca_default() {
|
|
|
10600
10649
|
};
|
|
10601
10650
|
}
|
|
10602
10651
|
|
|
10603
|
-
//
|
|
10652
|
+
// ../../node_modules/zod/v4/locales/cs.js
|
|
10604
10653
|
var error7 = () => {
|
|
10605
10654
|
const Sizable = {
|
|
10606
10655
|
string: { unit: "znak\u016F", verb: "m\xEDt" },
|
|
@@ -10712,7 +10761,7 @@ function cs_default() {
|
|
|
10712
10761
|
};
|
|
10713
10762
|
}
|
|
10714
10763
|
|
|
10715
|
-
//
|
|
10764
|
+
// ../../node_modules/zod/v4/locales/da.js
|
|
10716
10765
|
var error8 = () => {
|
|
10717
10766
|
const Sizable = {
|
|
10718
10767
|
string: { unit: "tegn", verb: "havde" },
|
|
@@ -10828,7 +10877,7 @@ function da_default() {
|
|
|
10828
10877
|
};
|
|
10829
10878
|
}
|
|
10830
10879
|
|
|
10831
|
-
//
|
|
10880
|
+
// ../../node_modules/zod/v4/locales/de.js
|
|
10832
10881
|
var error9 = () => {
|
|
10833
10882
|
const Sizable = {
|
|
10834
10883
|
string: { unit: "Zeichen", verb: "zu haben" },
|
|
@@ -10937,7 +10986,7 @@ function de_default() {
|
|
|
10937
10986
|
};
|
|
10938
10987
|
}
|
|
10939
10988
|
|
|
10940
|
-
//
|
|
10989
|
+
// ../../node_modules/zod/v4/locales/en.js
|
|
10941
10990
|
var error10 = () => {
|
|
10942
10991
|
const Sizable = {
|
|
10943
10992
|
string: { unit: "characters", verb: "to have" },
|
|
@@ -11046,7 +11095,7 @@ function en_default() {
|
|
|
11046
11095
|
};
|
|
11047
11096
|
}
|
|
11048
11097
|
|
|
11049
|
-
//
|
|
11098
|
+
// ../../node_modules/zod/v4/locales/eo.js
|
|
11050
11099
|
var error11 = () => {
|
|
11051
11100
|
const Sizable = {
|
|
11052
11101
|
string: { unit: "karaktrojn", verb: "havi" },
|
|
@@ -11156,7 +11205,7 @@ function eo_default() {
|
|
|
11156
11205
|
};
|
|
11157
11206
|
}
|
|
11158
11207
|
|
|
11159
|
-
//
|
|
11208
|
+
// ../../node_modules/zod/v4/locales/es.js
|
|
11160
11209
|
var error12 = () => {
|
|
11161
11210
|
const Sizable = {
|
|
11162
11211
|
string: { unit: "caracteres", verb: "tener" },
|
|
@@ -11289,7 +11338,7 @@ function es_default() {
|
|
|
11289
11338
|
};
|
|
11290
11339
|
}
|
|
11291
11340
|
|
|
11292
|
-
//
|
|
11341
|
+
// ../../node_modules/zod/v4/locales/fa.js
|
|
11293
11342
|
var error13 = () => {
|
|
11294
11343
|
const Sizable = {
|
|
11295
11344
|
string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
|
|
@@ -11404,7 +11453,7 @@ function fa_default() {
|
|
|
11404
11453
|
};
|
|
11405
11454
|
}
|
|
11406
11455
|
|
|
11407
|
-
//
|
|
11456
|
+
// ../../node_modules/zod/v4/locales/fi.js
|
|
11408
11457
|
var error14 = () => {
|
|
11409
11458
|
const Sizable = {
|
|
11410
11459
|
string: { unit: "merkki\xE4", subject: "merkkijonon" },
|
|
@@ -11517,7 +11566,7 @@ function fi_default() {
|
|
|
11517
11566
|
};
|
|
11518
11567
|
}
|
|
11519
11568
|
|
|
11520
|
-
//
|
|
11569
|
+
// ../../node_modules/zod/v4/locales/fr.js
|
|
11521
11570
|
var error15 = () => {
|
|
11522
11571
|
const Sizable = {
|
|
11523
11572
|
string: { unit: "caract\xE8res", verb: "avoir" },
|
|
@@ -11626,7 +11675,7 @@ function fr_default() {
|
|
|
11626
11675
|
};
|
|
11627
11676
|
}
|
|
11628
11677
|
|
|
11629
|
-
//
|
|
11678
|
+
// ../../node_modules/zod/v4/locales/fr-CA.js
|
|
11630
11679
|
var error16 = () => {
|
|
11631
11680
|
const Sizable = {
|
|
11632
11681
|
string: { unit: "caract\xE8res", verb: "avoir" },
|
|
@@ -11734,7 +11783,7 @@ function fr_CA_default() {
|
|
|
11734
11783
|
};
|
|
11735
11784
|
}
|
|
11736
11785
|
|
|
11737
|
-
//
|
|
11786
|
+
// ../../node_modules/zod/v4/locales/he.js
|
|
11738
11787
|
var error17 = () => {
|
|
11739
11788
|
const TypeNames = {
|
|
11740
11789
|
string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" },
|
|
@@ -11929,7 +11978,7 @@ function he_default() {
|
|
|
11929
11978
|
};
|
|
11930
11979
|
}
|
|
11931
11980
|
|
|
11932
|
-
//
|
|
11981
|
+
// ../../node_modules/zod/v4/locales/hu.js
|
|
11933
11982
|
var error18 = () => {
|
|
11934
11983
|
const Sizable = {
|
|
11935
11984
|
string: { unit: "karakter", verb: "legyen" },
|
|
@@ -12038,7 +12087,7 @@ function hu_default() {
|
|
|
12038
12087
|
};
|
|
12039
12088
|
}
|
|
12040
12089
|
|
|
12041
|
-
//
|
|
12090
|
+
// ../../node_modules/zod/v4/locales/hy.js
|
|
12042
12091
|
function getArmenianPlural(count, one, many) {
|
|
12043
12092
|
return Math.abs(count) === 1 ? one : many;
|
|
12044
12093
|
}
|
|
@@ -12186,7 +12235,7 @@ function hy_default() {
|
|
|
12186
12235
|
};
|
|
12187
12236
|
}
|
|
12188
12237
|
|
|
12189
|
-
//
|
|
12238
|
+
// ../../node_modules/zod/v4/locales/id.js
|
|
12190
12239
|
var error20 = () => {
|
|
12191
12240
|
const Sizable = {
|
|
12192
12241
|
string: { unit: "karakter", verb: "memiliki" },
|
|
@@ -12293,7 +12342,7 @@ function id_default() {
|
|
|
12293
12342
|
};
|
|
12294
12343
|
}
|
|
12295
12344
|
|
|
12296
|
-
//
|
|
12345
|
+
// ../../node_modules/zod/v4/locales/is.js
|
|
12297
12346
|
var error21 = () => {
|
|
12298
12347
|
const Sizable = {
|
|
12299
12348
|
string: { unit: "stafi", verb: "a\xF0 hafa" },
|
|
@@ -12403,7 +12452,7 @@ function is_default() {
|
|
|
12403
12452
|
};
|
|
12404
12453
|
}
|
|
12405
12454
|
|
|
12406
|
-
//
|
|
12455
|
+
// ../../node_modules/zod/v4/locales/it.js
|
|
12407
12456
|
var error22 = () => {
|
|
12408
12457
|
const Sizable = {
|
|
12409
12458
|
string: { unit: "caratteri", verb: "avere" },
|
|
@@ -12512,7 +12561,7 @@ function it_default() {
|
|
|
12512
12561
|
};
|
|
12513
12562
|
}
|
|
12514
12563
|
|
|
12515
|
-
//
|
|
12564
|
+
// ../../node_modules/zod/v4/locales/ja.js
|
|
12516
12565
|
var error23 = () => {
|
|
12517
12566
|
const Sizable = {
|
|
12518
12567
|
string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
|
|
@@ -12620,7 +12669,7 @@ function ja_default() {
|
|
|
12620
12669
|
};
|
|
12621
12670
|
}
|
|
12622
12671
|
|
|
12623
|
-
//
|
|
12672
|
+
// ../../node_modules/zod/v4/locales/ka.js
|
|
12624
12673
|
var error24 = () => {
|
|
12625
12674
|
const Sizable = {
|
|
12626
12675
|
string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
|
|
@@ -12733,7 +12782,7 @@ function ka_default() {
|
|
|
12733
12782
|
};
|
|
12734
12783
|
}
|
|
12735
12784
|
|
|
12736
|
-
//
|
|
12785
|
+
// ../../node_modules/zod/v4/locales/km.js
|
|
12737
12786
|
var error25 = () => {
|
|
12738
12787
|
const Sizable = {
|
|
12739
12788
|
string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
|
|
@@ -12844,12 +12893,12 @@ function km_default() {
|
|
|
12844
12893
|
};
|
|
12845
12894
|
}
|
|
12846
12895
|
|
|
12847
|
-
//
|
|
12896
|
+
// ../../node_modules/zod/v4/locales/kh.js
|
|
12848
12897
|
function kh_default() {
|
|
12849
12898
|
return km_default();
|
|
12850
12899
|
}
|
|
12851
12900
|
|
|
12852
|
-
//
|
|
12901
|
+
// ../../node_modules/zod/v4/locales/ko.js
|
|
12853
12902
|
var error26 = () => {
|
|
12854
12903
|
const Sizable = {
|
|
12855
12904
|
string: { unit: "\uBB38\uC790", verb: "to have" },
|
|
@@ -12961,7 +13010,7 @@ function ko_default() {
|
|
|
12961
13010
|
};
|
|
12962
13011
|
}
|
|
12963
13012
|
|
|
12964
|
-
//
|
|
13013
|
+
// ../../node_modules/zod/v4/locales/lt.js
|
|
12965
13014
|
var capitalizeFirstCharacter = (text2) => {
|
|
12966
13015
|
return text2.charAt(0).toUpperCase() + text2.slice(1);
|
|
12967
13016
|
};
|
|
@@ -13165,7 +13214,7 @@ function lt_default() {
|
|
|
13165
13214
|
};
|
|
13166
13215
|
}
|
|
13167
13216
|
|
|
13168
|
-
//
|
|
13217
|
+
// ../../node_modules/zod/v4/locales/mk.js
|
|
13169
13218
|
var error28 = () => {
|
|
13170
13219
|
const Sizable = {
|
|
13171
13220
|
string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
|
|
@@ -13275,7 +13324,7 @@ function mk_default() {
|
|
|
13275
13324
|
};
|
|
13276
13325
|
}
|
|
13277
13326
|
|
|
13278
|
-
//
|
|
13327
|
+
// ../../node_modules/zod/v4/locales/ms.js
|
|
13279
13328
|
var error29 = () => {
|
|
13280
13329
|
const Sizable = {
|
|
13281
13330
|
string: { unit: "aksara", verb: "mempunyai" },
|
|
@@ -13383,7 +13432,7 @@ function ms_default() {
|
|
|
13383
13432
|
};
|
|
13384
13433
|
}
|
|
13385
13434
|
|
|
13386
|
-
//
|
|
13435
|
+
// ../../node_modules/zod/v4/locales/nl.js
|
|
13387
13436
|
var error30 = () => {
|
|
13388
13437
|
const Sizable = {
|
|
13389
13438
|
string: { unit: "tekens", verb: "heeft" },
|
|
@@ -13494,7 +13543,7 @@ function nl_default() {
|
|
|
13494
13543
|
};
|
|
13495
13544
|
}
|
|
13496
13545
|
|
|
13497
|
-
//
|
|
13546
|
+
// ../../node_modules/zod/v4/locales/no.js
|
|
13498
13547
|
var error31 = () => {
|
|
13499
13548
|
const Sizable = {
|
|
13500
13549
|
string: { unit: "tegn", verb: "\xE5 ha" },
|
|
@@ -13603,7 +13652,7 @@ function no_default() {
|
|
|
13603
13652
|
};
|
|
13604
13653
|
}
|
|
13605
13654
|
|
|
13606
|
-
//
|
|
13655
|
+
// ../../node_modules/zod/v4/locales/ota.js
|
|
13607
13656
|
var error32 = () => {
|
|
13608
13657
|
const Sizable = {
|
|
13609
13658
|
string: { unit: "harf", verb: "olmal\u0131d\u0131r" },
|
|
@@ -13713,7 +13762,7 @@ function ota_default() {
|
|
|
13713
13762
|
};
|
|
13714
13763
|
}
|
|
13715
13764
|
|
|
13716
|
-
//
|
|
13765
|
+
// ../../node_modules/zod/v4/locales/ps.js
|
|
13717
13766
|
var error33 = () => {
|
|
13718
13767
|
const Sizable = {
|
|
13719
13768
|
string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" },
|
|
@@ -13828,7 +13877,7 @@ function ps_default() {
|
|
|
13828
13877
|
};
|
|
13829
13878
|
}
|
|
13830
13879
|
|
|
13831
|
-
//
|
|
13880
|
+
// ../../node_modules/zod/v4/locales/pl.js
|
|
13832
13881
|
var error34 = () => {
|
|
13833
13882
|
const Sizable = {
|
|
13834
13883
|
string: { unit: "znak\xF3w", verb: "mie\u0107" },
|
|
@@ -13938,7 +13987,7 @@ function pl_default() {
|
|
|
13938
13987
|
};
|
|
13939
13988
|
}
|
|
13940
13989
|
|
|
13941
|
-
//
|
|
13990
|
+
// ../../node_modules/zod/v4/locales/pt.js
|
|
13942
13991
|
var error35 = () => {
|
|
13943
13992
|
const Sizable = {
|
|
13944
13993
|
string: { unit: "caracteres", verb: "ter" },
|
|
@@ -14047,7 +14096,7 @@ function pt_default() {
|
|
|
14047
14096
|
};
|
|
14048
14097
|
}
|
|
14049
14098
|
|
|
14050
|
-
//
|
|
14099
|
+
// ../../node_modules/zod/v4/locales/ru.js
|
|
14051
14100
|
function getRussianPlural(count, one, few, many) {
|
|
14052
14101
|
const absCount = Math.abs(count);
|
|
14053
14102
|
const lastDigit = absCount % 10;
|
|
@@ -14204,7 +14253,7 @@ function ru_default() {
|
|
|
14204
14253
|
};
|
|
14205
14254
|
}
|
|
14206
14255
|
|
|
14207
|
-
//
|
|
14256
|
+
// ../../node_modules/zod/v4/locales/sl.js
|
|
14208
14257
|
var error37 = () => {
|
|
14209
14258
|
const Sizable = {
|
|
14210
14259
|
string: { unit: "znakov", verb: "imeti" },
|
|
@@ -14314,7 +14363,7 @@ function sl_default() {
|
|
|
14314
14363
|
};
|
|
14315
14364
|
}
|
|
14316
14365
|
|
|
14317
|
-
//
|
|
14366
|
+
// ../../node_modules/zod/v4/locales/sv.js
|
|
14318
14367
|
var error38 = () => {
|
|
14319
14368
|
const Sizable = {
|
|
14320
14369
|
string: { unit: "tecken", verb: "att ha" },
|
|
@@ -14425,7 +14474,7 @@ function sv_default() {
|
|
|
14425
14474
|
};
|
|
14426
14475
|
}
|
|
14427
14476
|
|
|
14428
|
-
//
|
|
14477
|
+
// ../../node_modules/zod/v4/locales/ta.js
|
|
14429
14478
|
var error39 = () => {
|
|
14430
14479
|
const Sizable = {
|
|
14431
14480
|
string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" },
|
|
@@ -14536,7 +14585,7 @@ function ta_default() {
|
|
|
14536
14585
|
};
|
|
14537
14586
|
}
|
|
14538
14587
|
|
|
14539
|
-
//
|
|
14588
|
+
// ../../node_modules/zod/v4/locales/th.js
|
|
14540
14589
|
var error40 = () => {
|
|
14541
14590
|
const Sizable = {
|
|
14542
14591
|
string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
|
|
@@ -14647,7 +14696,7 @@ function th_default() {
|
|
|
14647
14696
|
};
|
|
14648
14697
|
}
|
|
14649
14698
|
|
|
14650
|
-
//
|
|
14699
|
+
// ../../node_modules/zod/v4/locales/tr.js
|
|
14651
14700
|
var error41 = () => {
|
|
14652
14701
|
const Sizable = {
|
|
14653
14702
|
string: { unit: "karakter", verb: "olmal\u0131" },
|
|
@@ -14753,7 +14802,7 @@ function tr_default() {
|
|
|
14753
14802
|
};
|
|
14754
14803
|
}
|
|
14755
14804
|
|
|
14756
|
-
//
|
|
14805
|
+
// ../../node_modules/zod/v4/locales/uk.js
|
|
14757
14806
|
var error42 = () => {
|
|
14758
14807
|
const Sizable = {
|
|
14759
14808
|
string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
|
|
@@ -14862,12 +14911,12 @@ function uk_default() {
|
|
|
14862
14911
|
};
|
|
14863
14912
|
}
|
|
14864
14913
|
|
|
14865
|
-
//
|
|
14914
|
+
// ../../node_modules/zod/v4/locales/ua.js
|
|
14866
14915
|
function ua_default() {
|
|
14867
14916
|
return uk_default();
|
|
14868
14917
|
}
|
|
14869
14918
|
|
|
14870
|
-
//
|
|
14919
|
+
// ../../node_modules/zod/v4/locales/ur.js
|
|
14871
14920
|
var error43 = () => {
|
|
14872
14921
|
const Sizable = {
|
|
14873
14922
|
string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
|
|
@@ -14978,7 +15027,7 @@ function ur_default() {
|
|
|
14978
15027
|
};
|
|
14979
15028
|
}
|
|
14980
15029
|
|
|
14981
|
-
//
|
|
15030
|
+
// ../../node_modules/zod/v4/locales/uz.js
|
|
14982
15031
|
var error44 = () => {
|
|
14983
15032
|
const Sizable = {
|
|
14984
15033
|
string: { unit: "belgi", verb: "bo\u2018lishi kerak" },
|
|
@@ -15088,7 +15137,7 @@ function uz_default() {
|
|
|
15088
15137
|
};
|
|
15089
15138
|
}
|
|
15090
15139
|
|
|
15091
|
-
//
|
|
15140
|
+
// ../../node_modules/zod/v4/locales/vi.js
|
|
15092
15141
|
var error45 = () => {
|
|
15093
15142
|
const Sizable = {
|
|
15094
15143
|
string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" },
|
|
@@ -15197,7 +15246,7 @@ function vi_default() {
|
|
|
15197
15246
|
};
|
|
15198
15247
|
}
|
|
15199
15248
|
|
|
15200
|
-
//
|
|
15249
|
+
// ../../node_modules/zod/v4/locales/zh-CN.js
|
|
15201
15250
|
var error46 = () => {
|
|
15202
15251
|
const Sizable = {
|
|
15203
15252
|
string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" },
|
|
@@ -15307,7 +15356,7 @@ function zh_CN_default() {
|
|
|
15307
15356
|
};
|
|
15308
15357
|
}
|
|
15309
15358
|
|
|
15310
|
-
//
|
|
15359
|
+
// ../../node_modules/zod/v4/locales/zh-TW.js
|
|
15311
15360
|
var error47 = () => {
|
|
15312
15361
|
const Sizable = {
|
|
15313
15362
|
string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" },
|
|
@@ -15415,7 +15464,7 @@ function zh_TW_default() {
|
|
|
15415
15464
|
};
|
|
15416
15465
|
}
|
|
15417
15466
|
|
|
15418
|
-
//
|
|
15467
|
+
// ../../node_modules/zod/v4/locales/yo.js
|
|
15419
15468
|
var error48 = () => {
|
|
15420
15469
|
const Sizable = {
|
|
15421
15470
|
string: { unit: "\xE0mi", verb: "n\xED" },
|
|
@@ -15523,7 +15572,7 @@ function yo_default() {
|
|
|
15523
15572
|
};
|
|
15524
15573
|
}
|
|
15525
15574
|
|
|
15526
|
-
//
|
|
15575
|
+
// ../../node_modules/zod/v4/core/registries.js
|
|
15527
15576
|
var _a;
|
|
15528
15577
|
var $output = /* @__PURE__ */ Symbol("ZodOutput");
|
|
15529
15578
|
var $input = /* @__PURE__ */ Symbol("ZodInput");
|
|
@@ -15573,7 +15622,7 @@ function registry() {
|
|
|
15573
15622
|
(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
|
|
15574
15623
|
var globalRegistry = globalThis.__zod_globalRegistry;
|
|
15575
15624
|
|
|
15576
|
-
//
|
|
15625
|
+
// ../../node_modules/zod/v4/core/api.js
|
|
15577
15626
|
// @__NO_SIDE_EFFECTS__
|
|
15578
15627
|
function _string(Class2, params) {
|
|
15579
15628
|
return new Class2({
|
|
@@ -16612,7 +16661,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
|
|
|
16612
16661
|
return inst;
|
|
16613
16662
|
}
|
|
16614
16663
|
|
|
16615
|
-
//
|
|
16664
|
+
// ../../node_modules/zod/v4/core/to-json-schema.js
|
|
16616
16665
|
function initializeContext(params) {
|
|
16617
16666
|
let target = params?.target ?? "draft-2020-12";
|
|
16618
16667
|
if (target === "draft-4")
|
|
@@ -16964,7 +17013,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
|
|
|
16964
17013
|
return finalize(ctx, schema);
|
|
16965
17014
|
};
|
|
16966
17015
|
|
|
16967
|
-
//
|
|
17016
|
+
// ../../node_modules/zod/v4/core/json-schema-processors.js
|
|
16968
17017
|
var formatMap = {
|
|
16969
17018
|
guid: "uuid",
|
|
16970
17019
|
url: "uri",
|
|
@@ -17515,7 +17564,7 @@ function toJSONSchema(input2, params) {
|
|
|
17515
17564
|
return finalize(ctx, input2);
|
|
17516
17565
|
}
|
|
17517
17566
|
|
|
17518
|
-
//
|
|
17567
|
+
// ../../node_modules/zod/v4/core/json-schema-generator.js
|
|
17519
17568
|
var JSONSchemaGenerator = class {
|
|
17520
17569
|
/** @deprecated Access via ctx instead */
|
|
17521
17570
|
get metadataRegistry() {
|
|
@@ -17590,10 +17639,10 @@ var JSONSchemaGenerator = class {
|
|
|
17590
17639
|
}
|
|
17591
17640
|
};
|
|
17592
17641
|
|
|
17593
|
-
//
|
|
17642
|
+
// ../../node_modules/zod/v4/core/json-schema.js
|
|
17594
17643
|
var json_schema_exports = {};
|
|
17595
17644
|
|
|
17596
|
-
//
|
|
17645
|
+
// ../../node_modules/zod/v4/classic/schemas.js
|
|
17597
17646
|
var schemas_exports2 = {};
|
|
17598
17647
|
__export(schemas_exports2, {
|
|
17599
17648
|
ZodAny: () => ZodAny,
|
|
@@ -17762,7 +17811,7 @@ __export(schemas_exports2, {
|
|
|
17762
17811
|
xor: () => xor
|
|
17763
17812
|
});
|
|
17764
17813
|
|
|
17765
|
-
//
|
|
17814
|
+
// ../../node_modules/zod/v4/classic/checks.js
|
|
17766
17815
|
var checks_exports2 = {};
|
|
17767
17816
|
__export(checks_exports2, {
|
|
17768
17817
|
endsWith: () => _endsWith,
|
|
@@ -17796,7 +17845,7 @@ __export(checks_exports2, {
|
|
|
17796
17845
|
uppercase: () => _uppercase
|
|
17797
17846
|
});
|
|
17798
17847
|
|
|
17799
|
-
//
|
|
17848
|
+
// ../../node_modules/zod/v4/classic/iso.js
|
|
17800
17849
|
var iso_exports = {};
|
|
17801
17850
|
__export(iso_exports, {
|
|
17802
17851
|
ZodISODate: () => ZodISODate,
|
|
@@ -17837,7 +17886,7 @@ function duration2(params) {
|
|
|
17837
17886
|
return _isoDuration(ZodISODuration, params);
|
|
17838
17887
|
}
|
|
17839
17888
|
|
|
17840
|
-
//
|
|
17889
|
+
// ../../node_modules/zod/v4/classic/errors.js
|
|
17841
17890
|
var initializer2 = (inst, issues) => {
|
|
17842
17891
|
$ZodError.init(inst, issues);
|
|
17843
17892
|
inst.name = "ZodError";
|
|
@@ -17877,7 +17926,7 @@ var ZodRealError = $constructor("ZodError", initializer2, {
|
|
|
17877
17926
|
Parent: Error
|
|
17878
17927
|
});
|
|
17879
17928
|
|
|
17880
|
-
//
|
|
17929
|
+
// ../../node_modules/zod/v4/classic/parse.js
|
|
17881
17930
|
var parse2 = /* @__PURE__ */ _parse(ZodRealError);
|
|
17882
17931
|
var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
17883
17932
|
var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
@@ -17891,7 +17940,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
|
|
|
17891
17940
|
var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
17892
17941
|
var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
17893
17942
|
|
|
17894
|
-
//
|
|
17943
|
+
// ../../node_modules/zod/v4/classic/schemas.js
|
|
17895
17944
|
var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
|
|
17896
17945
|
$ZodType.init(inst, def);
|
|
17897
17946
|
Object.assign(inst["~standard"], {
|
|
@@ -18970,7 +19019,7 @@ function preprocess(fn, schema) {
|
|
|
18970
19019
|
return pipe(transform(fn), schema);
|
|
18971
19020
|
}
|
|
18972
19021
|
|
|
18973
|
-
//
|
|
19022
|
+
// ../../node_modules/zod/v4/classic/compat.js
|
|
18974
19023
|
var ZodIssueCode = {
|
|
18975
19024
|
invalid_type: "invalid_type",
|
|
18976
19025
|
too_big: "too_big",
|
|
@@ -18996,7 +19045,7 @@ var ZodFirstPartyTypeKind;
|
|
|
18996
19045
|
/* @__PURE__ */ (function(ZodFirstPartyTypeKind2) {
|
|
18997
19046
|
})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
|
|
18998
19047
|
|
|
18999
|
-
//
|
|
19048
|
+
// ../../node_modules/zod/v4/classic/from-json-schema.js
|
|
19000
19049
|
var z = {
|
|
19001
19050
|
...schemas_exports2,
|
|
19002
19051
|
...checks_exports2,
|
|
@@ -19470,7 +19519,7 @@ function fromJSONSchema(schema, params) {
|
|
|
19470
19519
|
return convertSchema(schema, ctx);
|
|
19471
19520
|
}
|
|
19472
19521
|
|
|
19473
|
-
//
|
|
19522
|
+
// ../../node_modules/zod/v4/classic/coerce.js
|
|
19474
19523
|
var coerce_exports = {};
|
|
19475
19524
|
__export(coerce_exports, {
|
|
19476
19525
|
bigint: () => bigint3,
|
|
@@ -19495,10 +19544,10 @@ function date4(params) {
|
|
|
19495
19544
|
return _coercedDate(ZodDate, params);
|
|
19496
19545
|
}
|
|
19497
19546
|
|
|
19498
|
-
//
|
|
19547
|
+
// ../../node_modules/zod/v4/classic/external.js
|
|
19499
19548
|
config(en_default());
|
|
19500
19549
|
|
|
19501
|
-
//
|
|
19550
|
+
// ../../packages/validators/src/business-constants.ts
|
|
19502
19551
|
var MONETARY_BOUNDS = {
|
|
19503
19552
|
/** Maximum price in cents (999,999.99 in currency units) */
|
|
19504
19553
|
maxPriceCents: 99999999,
|
|
@@ -19531,7 +19580,7 @@ var SESSION_POLICY = {
|
|
|
19531
19580
|
var MAX_RESCHEDULES = SESSION_POLICY.maxReschedules;
|
|
19532
19581
|
var PLATFORM_CURRENCIES = ["USD", "BRL", "EUR", "GBP", "ARS", "MXN", "CAD"];
|
|
19533
19582
|
|
|
19534
|
-
//
|
|
19583
|
+
// ../../packages/validators/src/mentorship.ts
|
|
19535
19584
|
var serviceTypeValues = ["one_on_one", "group", "workshop"];
|
|
19536
19585
|
var sessionStatusValues = [
|
|
19537
19586
|
"scheduled",
|
|
@@ -19631,7 +19680,7 @@ var updateSessionStatusSchema = external_exports.object({
|
|
|
19631
19680
|
notes: external_exports.string().max(5e3, "Notes must be at most 5000 characters").optional().nullable()
|
|
19632
19681
|
});
|
|
19633
19682
|
|
|
19634
|
-
//
|
|
19683
|
+
// ../../packages/tostudy-core/src/exercises/enrollment-levels.ts
|
|
19635
19684
|
async function getEnrollmentLevels(input2, deps) {
|
|
19636
19685
|
deps.logger.info("tostudy-core: getEnrollmentLevels", { enrollmentId: input2.enrollmentId });
|
|
19637
19686
|
return deps.data.exercises.getEnrollmentLevels(input2.enrollmentId);
|
|
@@ -20484,7 +20533,7 @@ var initCommand = new Command19("init").description("Generate tutor instructions
|
|
|
20484
20533
|
init_dist();
|
|
20485
20534
|
import { Command as Command20 } from "commander";
|
|
20486
20535
|
|
|
20487
|
-
//
|
|
20536
|
+
// ../../packages/tostudy-core/src/workspace/setup-workspace.ts
|
|
20488
20537
|
import fs13 from "node:fs/promises";
|
|
20489
20538
|
import path16 from "node:path";
|
|
20490
20539
|
var WORKSPACE_DIRS = ["exercises", "generated", "notes", "diagrams", "vault"];
|
|
@@ -20532,11 +20581,11 @@ async function setupWorkspace(input2) {
|
|
|
20532
20581
|
return { workspacePath, directories: WORKSPACE_DIRS, configPath };
|
|
20533
20582
|
}
|
|
20534
20583
|
|
|
20535
|
-
//
|
|
20584
|
+
// ../../packages/tostudy-core/src/workspace/extract-exercise.ts
|
|
20536
20585
|
import fs14 from "node:fs/promises";
|
|
20537
20586
|
import path17 from "node:path";
|
|
20538
20587
|
|
|
20539
|
-
//
|
|
20588
|
+
// ../../packages/tostudy-core/src/workspace/templates.ts
|
|
20540
20589
|
var VITE_VERSION = "^6.0.0";
|
|
20541
20590
|
var REACT_VERSION = "^19.0.0";
|
|
20542
20591
|
var TEMPLATES = {
|
|
@@ -20619,7 +20668,7 @@ function getScaffoldTemplate(template) {
|
|
|
20619
20668
|
return TEMPLATES[template] ?? null;
|
|
20620
20669
|
}
|
|
20621
20670
|
|
|
20622
|
-
//
|
|
20671
|
+
// ../../packages/tostudy-core/src/workspace/extract-exercise.ts
|
|
20623
20672
|
init_workspace_tokens();
|
|
20624
20673
|
function padOrder(n) {
|
|
20625
20674
|
return String(n).padStart(2, "0");
|
|
@@ -20758,10 +20807,10 @@ function generateReadme(lessonData, tier) {
|
|
|
20758
20807
|
return sections.join("\n");
|
|
20759
20808
|
}
|
|
20760
20809
|
|
|
20761
|
-
//
|
|
20810
|
+
// ../../packages/tostudy-core/src/workspace/export-artifact.ts
|
|
20762
20811
|
init_slug();
|
|
20763
20812
|
|
|
20764
|
-
//
|
|
20813
|
+
// ../../packages/tostudy-core/src/workspace/lesson-exercise-data.ts
|
|
20765
20814
|
init_slug();
|
|
20766
20815
|
|
|
20767
20816
|
// src/commands/workspace.ts
|
|
@@ -21097,18 +21146,18 @@ var openCommand = new Command22("open").description("Abrir workspace do curso na
|
|
|
21097
21146
|
init_dist();
|
|
21098
21147
|
import { Command as Command23 } from "commander";
|
|
21099
21148
|
|
|
21100
|
-
//
|
|
21149
|
+
// ../../packages/tostudy-core/src/vault/generate-vault-files.ts
|
|
21101
21150
|
init_slug();
|
|
21102
21151
|
|
|
21103
|
-
//
|
|
21152
|
+
// ../../packages/tostudy-core/src/vault/write-vault.ts
|
|
21104
21153
|
import fs17 from "node:fs/promises";
|
|
21105
21154
|
import path21 from "node:path";
|
|
21106
21155
|
|
|
21107
|
-
//
|
|
21156
|
+
// ../../packages/tostudy-core/src/vault/types.ts
|
|
21108
21157
|
var VAULT_MARKER_FILENAME = ".ana-vault.json";
|
|
21109
21158
|
var VAULT_MARKER_VERSION = 1;
|
|
21110
21159
|
|
|
21111
|
-
//
|
|
21160
|
+
// ../../packages/tostudy-core/src/vault/write-vault.ts
|
|
21112
21161
|
async function writeVaultFiles(files, outputPath, courseId, courseSlug2) {
|
|
21113
21162
|
for (const file2 of files) {
|
|
21114
21163
|
const fullPath = path21.join(outputPath, file2.relativePath);
|
|
@@ -21316,7 +21365,7 @@ import os13 from "node:os";
|
|
|
21316
21365
|
import path26 from "node:path";
|
|
21317
21366
|
import { Command as Command25 } from "commander";
|
|
21318
21367
|
|
|
21319
|
-
//
|
|
21368
|
+
// ../../packages/validators/src/authored-course.ts
|
|
21320
21369
|
import { createHash } from "node:crypto";
|
|
21321
21370
|
var AUTHORED_LIMITS = {
|
|
21322
21371
|
maxModules: 15,
|
|
@@ -22261,18 +22310,7 @@ import { execFile as execFile4 } from "node:child_process";
|
|
|
22261
22310
|
import { platform } from "node:process";
|
|
22262
22311
|
var BRIEF_URL = "https://tostudy.ai/student/settings/learner-brief";
|
|
22263
22312
|
function openUrl(url2, options = {}) {
|
|
22264
|
-
|
|
22265
|
-
let args;
|
|
22266
|
-
if (platform === "darwin") {
|
|
22267
|
-
cmd = "open";
|
|
22268
|
-
args = [url2];
|
|
22269
|
-
} else if (platform === "win32") {
|
|
22270
|
-
cmd = "cmd";
|
|
22271
|
-
args = ["/c", "start", "", url2];
|
|
22272
|
-
} else {
|
|
22273
|
-
cmd = "xdg-open";
|
|
22274
|
-
args = [url2];
|
|
22275
|
-
}
|
|
22313
|
+
const { cmd, args } = browserCommand(platform, url2);
|
|
22276
22314
|
execFile4(cmd, args, (err) => {
|
|
22277
22315
|
if (err && !options.silent) {
|
|
22278
22316
|
output(`N\xE3o consegui abrir o navegador. Acesse manualmente: ${url2}`, {
|