academe-kit 0.11.4 → 0.11.6
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/index.cjs +22 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +375 -3
- package/dist/index.esm.js +22 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/types/components/AcademeLoading/AcademeLoading.d.ts +9 -2
- package/dist/types/components/AcademeLoading/LogoA.d.ts +3 -0
- package/dist/types/components/AcademeLoading/index.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/services/SubmissionService.d.ts +29 -0
- package/dist/types/types/academe-api.d.ts +336 -0
- package/package.json +1 -1
|
@@ -27,6 +27,8 @@ export interface AcademeLoadingColors {
|
|
|
27
27
|
/** Círculo branco ("face"). */
|
|
28
28
|
white: string;
|
|
29
29
|
}
|
|
30
|
+
/** Tema visual da vinheta. `light` (default) preserva o fundo claro atual; `dark` usa o fundo escuro da marca. */
|
|
31
|
+
export type AcademeLoadingTheme = "light" | "dark";
|
|
30
32
|
export interface AcademeLoadingProps {
|
|
31
33
|
/** Lado do palco quadrado, em px. Default 320. */
|
|
32
34
|
size?: number;
|
|
@@ -43,9 +45,14 @@ export interface AcademeLoadingProps {
|
|
|
43
45
|
pulseWhileLoading?: boolean;
|
|
44
46
|
/** Chamado ao concluir (após a saída, ou após a vinheta completa). */
|
|
45
47
|
onFinish?: () => void;
|
|
46
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* Tema visual base. `light` (default) mantém o fundo claro atual; `dark` aplica
|
|
50
|
+
* a paleta escura da marca. O `colors` ainda sobrescreve qualquer token por cima.
|
|
51
|
+
*/
|
|
52
|
+
theme?: AcademeLoadingTheme;
|
|
53
|
+
/** Sobrescreve tokens de cor (merge com os defaults do tema selecionado). */
|
|
47
54
|
colors?: Partial<AcademeLoadingColors>;
|
|
48
55
|
className?: string;
|
|
49
56
|
style?: React.CSSProperties;
|
|
50
57
|
}
|
|
51
|
-
export declare function AcademeLoading({ size, duration, loading, autoPlay, pulseWhileLoading, onFinish, colors, className, style, }: AcademeLoadingProps): import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
export declare function AcademeLoading({ size, duration, loading, autoPlay, pulseWhileLoading, onFinish, theme, colors, className, style, }: AcademeLoadingProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/** Proporção (largura/altura) do asset. O AcademeLoading usa para dimensionar o
|
|
2
|
+
* container do logo igual à imagem e mantê-lo centralizado nos círculos. */
|
|
3
|
+
export declare const LOGO_A_ASPECT: number;
|
|
1
4
|
export interface LogoAProps {
|
|
2
5
|
/** Altura do logo em px (no palco corresponde a ~0.46·S). Largura é derivada
|
|
3
6
|
* da proporção original do asset (1320×1320.42). */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { AcademeLoading } from "./AcademeLoading";
|
|
2
|
-
export type { AcademeLoadingProps, AcademeLoadingColors, } from "./AcademeLoading";
|
|
2
|
+
export type { AcademeLoadingProps, AcademeLoadingColors, AcademeLoadingTheme, } from "./AcademeLoading";
|
|
3
3
|
export { LogoA } from "./LogoA";
|
|
4
4
|
export type { LogoAProps } from "./LogoA";
|
package/dist/types/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export type { CosmicStarsCanvasProps } from "./components/CosmicStarsCanvas";
|
|
|
12
12
|
export { JourneyStep, JourneyCrystalPin } from "./components/JourneyStep";
|
|
13
13
|
export type { JourneyStepProps, JourneyStepSize, JourneyStepType, JourneyCrystalPinProps, FrameKind, } from "./components/JourneyStep";
|
|
14
14
|
export { AcademeLoading, LogoA } from "./components/AcademeLoading";
|
|
15
|
-
export type { AcademeLoadingProps, AcademeLoadingColors, LogoAProps, } from "./components/AcademeLoading";
|
|
15
|
+
export type { AcademeLoadingProps, AcademeLoadingColors, AcademeLoadingTheme, LogoAProps, } from "./components/AcademeLoading";
|
|
16
16
|
export { AcademeAuthProvider, useAcademeAuth, } from "./context/SecurityProvider";
|
|
17
17
|
export { useProtectedAppColors } from "./components/ProtectedApp";
|
|
18
18
|
export type { AcademeKeycloakContextProps, SecurityProviderProps, KeycloakUser, SecurityContextType, AcademeUser, } from "./context/SecurityProvider/types";
|
|
@@ -129,6 +129,11 @@ export declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
129
129
|
institutionId: string;
|
|
130
130
|
groupId?: string;
|
|
131
131
|
description?: string;
|
|
132
|
+
items?: {
|
|
133
|
+
fileId?: string | null;
|
|
134
|
+
url?: string | null;
|
|
135
|
+
index?: number;
|
|
136
|
+
}[];
|
|
132
137
|
};
|
|
133
138
|
};
|
|
134
139
|
};
|
|
@@ -141,6 +146,30 @@ export declare function createSubmissionService(apiClient: AcademeApiClient): {
|
|
|
141
146
|
"application/json": {
|
|
142
147
|
status?: string;
|
|
143
148
|
data?: import("../types/academe-api").components["schemas"]["Submission"];
|
|
149
|
+
meta?: {
|
|
150
|
+
advance?: {
|
|
151
|
+
action?: "started" | "completed" | "finished";
|
|
152
|
+
challengeId?: string;
|
|
153
|
+
currentStep?: {
|
|
154
|
+
id?: string;
|
|
155
|
+
index?: number;
|
|
156
|
+
name?: string;
|
|
157
|
+
startedAt?: string | null;
|
|
158
|
+
completedAt?: string | null;
|
|
159
|
+
} | null;
|
|
160
|
+
nextStep?: {
|
|
161
|
+
id?: string;
|
|
162
|
+
index?: number;
|
|
163
|
+
name?: string;
|
|
164
|
+
startedAt?: string | null;
|
|
165
|
+
} | null;
|
|
166
|
+
autoCompletedSteps?: {
|
|
167
|
+
id?: string;
|
|
168
|
+
index?: number;
|
|
169
|
+
name?: string;
|
|
170
|
+
}[];
|
|
171
|
+
} | null;
|
|
172
|
+
};
|
|
144
173
|
};
|
|
145
174
|
};
|
|
146
175
|
};
|
|
@@ -2875,6 +2875,94 @@ export interface paths {
|
|
|
2875
2875
|
patch?: never;
|
|
2876
2876
|
trace?: never;
|
|
2877
2877
|
};
|
|
2878
|
+
"/challenges/{id}/participants": {
|
|
2879
|
+
parameters: {
|
|
2880
|
+
query?: never;
|
|
2881
|
+
header?: never;
|
|
2882
|
+
path?: never;
|
|
2883
|
+
cookie?: never;
|
|
2884
|
+
};
|
|
2885
|
+
/**
|
|
2886
|
+
* List the students taking part in this challenge
|
|
2887
|
+
* @description Returns the roster of students for the challenge along with each
|
|
2888
|
+
* student's status, derived from `submissions` (latest attempt) and
|
|
2889
|
+
* `user_challenge_progress` (whether any step was started).
|
|
2890
|
+
*
|
|
2891
|
+
* The roster is built from `institution_registration` rows of the given
|
|
2892
|
+
* institution, filtered by the challenge's serie. `institutionId` and
|
|
2893
|
+
* `serieId` may be supplied via query to provide the viewing context —
|
|
2894
|
+
* useful for global template challenges (`institution_id IS NULL`) shown
|
|
2895
|
+
* via fallback in the pedagogical portal. They default to the
|
|
2896
|
+
* challenge's own institution/serie when omitted.
|
|
2897
|
+
*
|
|
2898
|
+
* Status values: `novo` (not started), `andamento` (started a step, no
|
|
2899
|
+
* submission), `entregue` (submitted | ai_evaluated), `aprovado`
|
|
2900
|
+
* (approved), `rejeitado` (rejected).
|
|
2901
|
+
*/
|
|
2902
|
+
get: {
|
|
2903
|
+
parameters: {
|
|
2904
|
+
query?: {
|
|
2905
|
+
/** @description Viewing institution. Defaults to the challenge's institution. */
|
|
2906
|
+
institutionId?: string;
|
|
2907
|
+
/** @description Serie filter. Defaults to the challenge's serie. */
|
|
2908
|
+
serieId?: string;
|
|
2909
|
+
};
|
|
2910
|
+
header?: never;
|
|
2911
|
+
path: {
|
|
2912
|
+
/** @description Resource ID */
|
|
2913
|
+
id: components["parameters"]["id"];
|
|
2914
|
+
};
|
|
2915
|
+
cookie?: never;
|
|
2916
|
+
};
|
|
2917
|
+
requestBody?: never;
|
|
2918
|
+
responses: {
|
|
2919
|
+
/** @description Roster of participants with derived status */
|
|
2920
|
+
200: {
|
|
2921
|
+
headers: {
|
|
2922
|
+
[name: string]: unknown;
|
|
2923
|
+
};
|
|
2924
|
+
content: {
|
|
2925
|
+
"application/json": {
|
|
2926
|
+
/** @example success */
|
|
2927
|
+
status?: string;
|
|
2928
|
+
data?: {
|
|
2929
|
+
totalStudents?: number;
|
|
2930
|
+
classrooms?: {
|
|
2931
|
+
/** Format: uuid */
|
|
2932
|
+
id?: string;
|
|
2933
|
+
name?: string;
|
|
2934
|
+
count?: number;
|
|
2935
|
+
}[];
|
|
2936
|
+
participants?: {
|
|
2937
|
+
/** Format: uuid */
|
|
2938
|
+
userId?: string;
|
|
2939
|
+
name?: string;
|
|
2940
|
+
email?: string | null;
|
|
2941
|
+
avatarUrl?: string | null;
|
|
2942
|
+
/** Format: uuid */
|
|
2943
|
+
classroomId?: string | null;
|
|
2944
|
+
classroomName?: string | null;
|
|
2945
|
+
/** @enum {string} */
|
|
2946
|
+
status?: "novo" | "andamento" | "entregue" | "aprovado" | "rejeitado";
|
|
2947
|
+
/** Format: uuid */
|
|
2948
|
+
submissionId?: string | null;
|
|
2949
|
+
}[];
|
|
2950
|
+
};
|
|
2951
|
+
};
|
|
2952
|
+
};
|
|
2953
|
+
};
|
|
2954
|
+
401: components["responses"]["Unauthorized"];
|
|
2955
|
+
404: components["responses"]["NotFound"];
|
|
2956
|
+
};
|
|
2957
|
+
};
|
|
2958
|
+
put?: never;
|
|
2959
|
+
post?: never;
|
|
2960
|
+
delete?: never;
|
|
2961
|
+
options?: never;
|
|
2962
|
+
head?: never;
|
|
2963
|
+
patch?: never;
|
|
2964
|
+
trace?: never;
|
|
2965
|
+
};
|
|
2878
2966
|
"/classrooms": {
|
|
2879
2967
|
parameters: {
|
|
2880
2968
|
query?: never;
|
|
@@ -11822,6 +11910,12 @@ export interface paths {
|
|
|
11822
11910
|
* - Cannot create after status=approved
|
|
11823
11911
|
* - Cannot exceed challenge.maxSubmissionsAttempts
|
|
11824
11912
|
* - attempt_number is computed server-side with a row lock (FOR UPDATE)
|
|
11913
|
+
*
|
|
11914
|
+
* When `items` is provided, the submission and its files/links are persisted
|
|
11915
|
+
* in the SAME transaction (atomic) and AI evaluation is dispatched after commit.
|
|
11916
|
+
* Each item must have exactly ONE of fileId or url, and must match the
|
|
11917
|
+
* challenge.submissionType (file types require fileId; links require url).
|
|
11918
|
+
* This is the preferred path for clients (no separate POST /submissions/{id}/files).
|
|
11825
11919
|
*/
|
|
11826
11920
|
post: {
|
|
11827
11921
|
parameters: {
|
|
@@ -11846,6 +11940,17 @@ export interface paths {
|
|
|
11846
11940
|
*/
|
|
11847
11941
|
groupId?: string;
|
|
11848
11942
|
description?: string;
|
|
11943
|
+
/**
|
|
11944
|
+
* @description Submission delivery. When present, files/links are stored atomically
|
|
11945
|
+
* with the submission and AI evaluation is dispatched after commit.
|
|
11946
|
+
*/
|
|
11947
|
+
items?: {
|
|
11948
|
+
/** Format: uuid */
|
|
11949
|
+
fileId?: string | null;
|
|
11950
|
+
/** Format: uri */
|
|
11951
|
+
url?: string | null;
|
|
11952
|
+
index?: number;
|
|
11953
|
+
}[];
|
|
11849
11954
|
};
|
|
11850
11955
|
};
|
|
11851
11956
|
};
|
|
@@ -11860,6 +11965,45 @@ export interface paths {
|
|
|
11860
11965
|
/** @example success */
|
|
11861
11966
|
status?: string;
|
|
11862
11967
|
data?: components["schemas"]["Submission"];
|
|
11968
|
+
/**
|
|
11969
|
+
* @description Journey side-effects of the submission. On the FIRST attempt the
|
|
11970
|
+
* publication step is completed and the user advances; `advance`
|
|
11971
|
+
* carries the resulting tick so the client can animate the journey.
|
|
11972
|
+
* `advance` is null on re-submissions (attempt > 1) or if the advance
|
|
11973
|
+
* step failed (non-fatal — the submission is still created).
|
|
11974
|
+
*/
|
|
11975
|
+
meta?: {
|
|
11976
|
+
advance?: {
|
|
11977
|
+
/** @enum {string} */
|
|
11978
|
+
action?: "started" | "completed" | "finished";
|
|
11979
|
+
/** Format: uuid */
|
|
11980
|
+
challengeId?: string;
|
|
11981
|
+
currentStep?: {
|
|
11982
|
+
/** Format: uuid */
|
|
11983
|
+
id?: string;
|
|
11984
|
+
index?: number;
|
|
11985
|
+
name?: string;
|
|
11986
|
+
/** Format: date-time */
|
|
11987
|
+
startedAt?: string | null;
|
|
11988
|
+
/** Format: date-time */
|
|
11989
|
+
completedAt?: string | null;
|
|
11990
|
+
} | null;
|
|
11991
|
+
nextStep?: {
|
|
11992
|
+
/** Format: uuid */
|
|
11993
|
+
id?: string;
|
|
11994
|
+
index?: number;
|
|
11995
|
+
name?: string;
|
|
11996
|
+
/** Format: date-time */
|
|
11997
|
+
startedAt?: string | null;
|
|
11998
|
+
} | null;
|
|
11999
|
+
autoCompletedSteps?: {
|
|
12000
|
+
/** Format: uuid */
|
|
12001
|
+
id?: string;
|
|
12002
|
+
index?: number;
|
|
12003
|
+
name?: string;
|
|
12004
|
+
}[];
|
|
12005
|
+
} | null;
|
|
12006
|
+
};
|
|
11863
12007
|
};
|
|
11864
12008
|
};
|
|
11865
12009
|
};
|
|
@@ -11923,6 +12067,79 @@ export interface paths {
|
|
|
11923
12067
|
patch?: never;
|
|
11924
12068
|
trace?: never;
|
|
11925
12069
|
};
|
|
12070
|
+
"/submissions/{id}/classroom-rank": {
|
|
12071
|
+
parameters: {
|
|
12072
|
+
query?: never;
|
|
12073
|
+
header?: never;
|
|
12074
|
+
path?: never;
|
|
12075
|
+
cookie?: never;
|
|
12076
|
+
};
|
|
12077
|
+
/**
|
|
12078
|
+
* Ordem de entrega do aluno na turma para o desafio desta submissão
|
|
12079
|
+
* @description Retorna a posição do aluno entre os colegas de turma (institution_classroom
|
|
12080
|
+
* via membership) a entregar o desafio, ordenando pela PRIMEIRA entrega de cada
|
|
12081
|
+
* aluno (MIN(submitted_at)). Usado pelo app do aluno como incentivo a entregar
|
|
12082
|
+
* cedo ("Você foi o Nº de X da turma a entregar"). Quando o aluno não tem turma
|
|
12083
|
+
* na instituição, retorna order=0 e classSize=0 e o cliente esconde o card.
|
|
12084
|
+
*/
|
|
12085
|
+
get: {
|
|
12086
|
+
parameters: {
|
|
12087
|
+
query?: never;
|
|
12088
|
+
header?: never;
|
|
12089
|
+
path: {
|
|
12090
|
+
/** @description Resource ID */
|
|
12091
|
+
id: components["parameters"]["id"];
|
|
12092
|
+
};
|
|
12093
|
+
cookie?: never;
|
|
12094
|
+
};
|
|
12095
|
+
requestBody?: never;
|
|
12096
|
+
responses: {
|
|
12097
|
+
/** @description Posição na turma */
|
|
12098
|
+
200: {
|
|
12099
|
+
headers: {
|
|
12100
|
+
[name: string]: unknown;
|
|
12101
|
+
};
|
|
12102
|
+
content: {
|
|
12103
|
+
"application/json": {
|
|
12104
|
+
/** @example success */
|
|
12105
|
+
status?: string;
|
|
12106
|
+
data?: {
|
|
12107
|
+
/**
|
|
12108
|
+
* @description Posição do aluno (1-based) entre os que entregaram; 0 quando sem turma
|
|
12109
|
+
* @example 3
|
|
12110
|
+
*/
|
|
12111
|
+
order?: number;
|
|
12112
|
+
/**
|
|
12113
|
+
* @description Total de alunos da turma (independente de terem entregado)
|
|
12114
|
+
* @example 28
|
|
12115
|
+
*/
|
|
12116
|
+
classSize?: number;
|
|
12117
|
+
/**
|
|
12118
|
+
* @description Quantos alunos da turma já entregaram o desafio
|
|
12119
|
+
* @example 12
|
|
12120
|
+
*/
|
|
12121
|
+
submittedCount?: number;
|
|
12122
|
+
/**
|
|
12123
|
+
* @description true quando order está entre 1 e 3
|
|
12124
|
+
* @example true
|
|
12125
|
+
*/
|
|
12126
|
+
earlyBird?: boolean;
|
|
12127
|
+
};
|
|
12128
|
+
};
|
|
12129
|
+
};
|
|
12130
|
+
};
|
|
12131
|
+
401: components["responses"]["Unauthorized"];
|
|
12132
|
+
404: components["responses"]["NotFound"];
|
|
12133
|
+
};
|
|
12134
|
+
};
|
|
12135
|
+
put?: never;
|
|
12136
|
+
post?: never;
|
|
12137
|
+
delete?: never;
|
|
12138
|
+
options?: never;
|
|
12139
|
+
head?: never;
|
|
12140
|
+
patch?: never;
|
|
12141
|
+
trace?: never;
|
|
12142
|
+
};
|
|
11926
12143
|
"/submissions/{id}/files": {
|
|
11927
12144
|
parameters: {
|
|
11928
12145
|
query?: never;
|
|
@@ -12504,6 +12721,12 @@ export interface paths {
|
|
|
12504
12721
|
* Útil para pré-visualização administrativa ou quando o aluno pertence a múltiplas séries.
|
|
12505
12722
|
*/
|
|
12506
12723
|
serieId?: string;
|
|
12724
|
+
/**
|
|
12725
|
+
* @description Escola atual (contexto de instituição do app). Opcional — se omitido, usa a 1ª
|
|
12726
|
+
* matrícula. A jornada é por escola: filtra os challenges e resolve a turma/série
|
|
12727
|
+
* default a partir da membership do usuário NESTA instituição.
|
|
12728
|
+
*/
|
|
12729
|
+
institutionId?: string;
|
|
12507
12730
|
/**
|
|
12508
12731
|
* @description [Admin] Quando presente, retorna a jornada do usuário-alvo em vez da do
|
|
12509
12732
|
* autenticado. Usado pelo backoffice para visualizar a jornada de um aluno.
|
|
@@ -13401,6 +13624,97 @@ export interface paths {
|
|
|
13401
13624
|
patch?: never;
|
|
13402
13625
|
trace?: never;
|
|
13403
13626
|
};
|
|
13627
|
+
"/users/me/classrooms": {
|
|
13628
|
+
parameters: {
|
|
13629
|
+
query?: never;
|
|
13630
|
+
header?: never;
|
|
13631
|
+
path?: never;
|
|
13632
|
+
cookie?: never;
|
|
13633
|
+
};
|
|
13634
|
+
/**
|
|
13635
|
+
* Turmas e séries do usuário autenticado
|
|
13636
|
+
* @description Contexto de matrícula do aluno: TODAS as suas turmas (com série, turno e
|
|
13637
|
+
* instituição), a escola ATUAL e a lista DEDUPLICADA de séries dessa escola.
|
|
13638
|
+
*
|
|
13639
|
+
* Fonte única para o app: `classrooms` alimenta a listagem de turmas no
|
|
13640
|
+
* perfil; `currentInstitutionId` é a escola atual (o app mostra uma escola
|
|
13641
|
+
* por vez); `series` traz APENAS as séries da escola atual (deduplicada e
|
|
13642
|
+
* ordenada por nível/valor) — alimenta o seletor da jornada, que também é
|
|
13643
|
+
* por escola. O botão só aparece com 2+ séries na escola atual.
|
|
13644
|
+
*/
|
|
13645
|
+
get: {
|
|
13646
|
+
parameters: {
|
|
13647
|
+
query?: never;
|
|
13648
|
+
header?: never;
|
|
13649
|
+
path?: never;
|
|
13650
|
+
cookie?: never;
|
|
13651
|
+
};
|
|
13652
|
+
requestBody?: never;
|
|
13653
|
+
responses: {
|
|
13654
|
+
/** @description Turmas + séries acessíveis */
|
|
13655
|
+
200: {
|
|
13656
|
+
headers: {
|
|
13657
|
+
[name: string]: unknown;
|
|
13658
|
+
};
|
|
13659
|
+
content: {
|
|
13660
|
+
"application/json": {
|
|
13661
|
+
/** @example success */
|
|
13662
|
+
status?: string;
|
|
13663
|
+
data?: {
|
|
13664
|
+
/**
|
|
13665
|
+
* Format: uuid
|
|
13666
|
+
* @description Escola atual (a da matrícula). As séries são desta escola.
|
|
13667
|
+
*/
|
|
13668
|
+
currentInstitutionId?: string | null;
|
|
13669
|
+
classrooms?: {
|
|
13670
|
+
/** Format: uuid */
|
|
13671
|
+
institutionClassroomId?: string;
|
|
13672
|
+
/** Format: uuid */
|
|
13673
|
+
classroomId?: string;
|
|
13674
|
+
/** @example 6º A */
|
|
13675
|
+
classroomName?: string;
|
|
13676
|
+
/** @example manhã */
|
|
13677
|
+
shiftName?: string | null;
|
|
13678
|
+
/** Format: uuid */
|
|
13679
|
+
institutionId?: string;
|
|
13680
|
+
/** @example Escola Modelo */
|
|
13681
|
+
institutionName?: string | null;
|
|
13682
|
+
serie?: {
|
|
13683
|
+
/** Format: uuid */
|
|
13684
|
+
serieId?: string;
|
|
13685
|
+
/** @example 6 */
|
|
13686
|
+
serieValue?: number;
|
|
13687
|
+
/** @example 6º ANO */
|
|
13688
|
+
serieLabel?: string;
|
|
13689
|
+
/** @enum {string} */
|
|
13690
|
+
level?: "fundamental" | "medio";
|
|
13691
|
+
} | null;
|
|
13692
|
+
}[];
|
|
13693
|
+
series?: {
|
|
13694
|
+
/** Format: uuid */
|
|
13695
|
+
serieId?: string;
|
|
13696
|
+
/** @example 6 */
|
|
13697
|
+
serieValue?: number;
|
|
13698
|
+
/** @example 6º ANO */
|
|
13699
|
+
serieLabel?: string;
|
|
13700
|
+
/** @enum {string} */
|
|
13701
|
+
level?: "fundamental" | "medio";
|
|
13702
|
+
}[];
|
|
13703
|
+
};
|
|
13704
|
+
};
|
|
13705
|
+
};
|
|
13706
|
+
};
|
|
13707
|
+
401: components["responses"]["Unauthorized"];
|
|
13708
|
+
};
|
|
13709
|
+
};
|
|
13710
|
+
put?: never;
|
|
13711
|
+
post?: never;
|
|
13712
|
+
delete?: never;
|
|
13713
|
+
options?: never;
|
|
13714
|
+
head?: never;
|
|
13715
|
+
patch?: never;
|
|
13716
|
+
trace?: never;
|
|
13717
|
+
};
|
|
13404
13718
|
"/users/me/push-tokens": {
|
|
13405
13719
|
parameters: {
|
|
13406
13720
|
query?: never;
|
|
@@ -15013,6 +15327,8 @@ export interface components {
|
|
|
15013
15327
|
certificateTemplate?: components["schemas"]["CertificateTemplate"];
|
|
15014
15328
|
/** @description Course information related to the certificate (extracted from Quiz or CertificateTemplate) */
|
|
15015
15329
|
course?: components["schemas"]["CourseSimplified"];
|
|
15330
|
+
/** @description Course module information related to the certificate (resolved from the quiz the student took). Null when the certificate came from a template course. */
|
|
15331
|
+
module?: components["schemas"]["ModuleSimplified"];
|
|
15016
15332
|
};
|
|
15017
15333
|
/** @description Simplified course information included in certificate responses */
|
|
15018
15334
|
CourseSimplified: {
|
|
@@ -15032,6 +15348,26 @@ export interface components {
|
|
|
15032
15348
|
*/
|
|
15033
15349
|
description?: string | null;
|
|
15034
15350
|
};
|
|
15351
|
+
/** @description Simplified course module information included in certificate responses */
|
|
15352
|
+
ModuleSimplified: {
|
|
15353
|
+
/**
|
|
15354
|
+
* Format: uuid
|
|
15355
|
+
* @description Course module ID
|
|
15356
|
+
*/
|
|
15357
|
+
id?: string;
|
|
15358
|
+
/**
|
|
15359
|
+
* @description Course module title
|
|
15360
|
+
* @example Variables and Data Types
|
|
15361
|
+
*/
|
|
15362
|
+
title?: string;
|
|
15363
|
+
/** @description Course module description */
|
|
15364
|
+
description?: string | null;
|
|
15365
|
+
/**
|
|
15366
|
+
* @description Course module workload in hours
|
|
15367
|
+
* @example 40
|
|
15368
|
+
*/
|
|
15369
|
+
duration?: number | null;
|
|
15370
|
+
};
|
|
15035
15371
|
/** @description Simplified quiz information included in course and module responses */
|
|
15036
15372
|
QuizSimplified: {
|
|
15037
15373
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "academe-kit",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Official React SDK for Academe ecosystem - Authentication, protected routes, API services, and UI components for educational management applications",
|
|
6
6
|
"main": "dist/index.cjs",
|