types-nora-api 0.0.209 → 0.0.212
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/classes.d.ts +96 -218
- package/dist/classes.js +103 -41
- package/package.json +1 -1
package/dist/classes.d.ts
CHANGED
|
@@ -776,247 +776,125 @@ type SalaDeJogoDto = {
|
|
|
776
776
|
mestre: SalaDeJogo_Mestre;
|
|
777
777
|
participantes: readonly SalaDeJogo_Participante[];
|
|
778
778
|
};
|
|
779
|
-
type
|
|
780
|
-
readonly href: string;
|
|
781
|
-
readonly acesso?: AcessoPagina;
|
|
782
|
-
};
|
|
783
|
-
type ExtractParamsFromHref<S extends string, Acc extends Record<string, any> = {}> = S extends `${infer _A}[[...${infer P}]]${infer Rest}` ? ExtractParamsFromHref<Rest, Acc & {
|
|
779
|
+
type ExtrairParamsDoTemplate<S extends string, Acc extends Record<string, unknown> = {}> = S extends `${infer _A}[[...${infer P}]]${infer Rest}` ? ExtrairParamsDoTemplate<Rest, Acc & {
|
|
784
780
|
[K in P]?: string[];
|
|
785
|
-
}> : S extends `${infer _A}[...${infer P}]${infer Rest}` ?
|
|
781
|
+
}> : S extends `${infer _A}[...${infer P}]${infer Rest}` ? ExtrairParamsDoTemplate<Rest, Acc & {
|
|
786
782
|
[K in P]: string[];
|
|
787
|
-
}> : S extends `${infer _A}[${infer P}]${infer Rest}` ?
|
|
783
|
+
}> : S extends `${infer _A}[${infer P}]${infer Rest}` ? ExtrairParamsDoTemplate<Rest, Acc & {
|
|
788
784
|
[K in P]: string;
|
|
789
785
|
}> : Acc;
|
|
790
|
-
type
|
|
791
|
-
type
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
786
|
+
type PaginaParamsDoTemplate<T extends string> = ExtrairParamsDoTemplate<T>;
|
|
787
|
+
type TemplateComParams = `${string}[[...${string}]]${string}` | `${string}[...${string}]${string}` | `${string}[${string}]${string}`;
|
|
788
|
+
type PaginaInfo = {
|
|
789
|
+
readonly label: string;
|
|
790
|
+
readonly comCabecalho?: true;
|
|
791
|
+
readonly acesso?: AcessoPagina;
|
|
792
|
+
};
|
|
793
|
+
type PaginaEstatica<T extends string> = PaginaInfo & {
|
|
794
|
+
readonly template: T;
|
|
795
|
+
readonly href: T;
|
|
796
|
+
};
|
|
797
|
+
type PaginaDinamica<T extends TemplateComParams> = PaginaInfo & {
|
|
798
|
+
readonly template: T;
|
|
799
|
+
readonly href: (params: PaginaParamsDoTemplate<T>) => string;
|
|
796
800
|
};
|
|
801
|
+
type Pagina<T extends string = string> = T extends TemplateComParams ? PaginaDinamica<Extract<T, TemplateComParams>> : PaginaEstatica<T>;
|
|
802
|
+
type PaginaParams<P extends {
|
|
803
|
+
template: string;
|
|
804
|
+
}> = PaginaParamsDoTemplate<P['template']>;
|
|
805
|
+
declare function montarHref(template: string, params: Record<string, unknown>): string;
|
|
806
|
+
declare function pagina<const T extends string>(template: T extends TemplateComParams ? never : T, info: Omit<PaginaInfo, 'acesso'> & {
|
|
807
|
+
acesso?: AcessoPagina;
|
|
808
|
+
} & {
|
|
809
|
+
label: string;
|
|
810
|
+
}): PaginaEstatica<T>;
|
|
811
|
+
declare function paginaDinamica<const T extends TemplateComParams>(template: T, info: Omit<PaginaInfo, 'acesso'> & {
|
|
812
|
+
acesso?: AcessoPagina;
|
|
813
|
+
} & {
|
|
814
|
+
label: string;
|
|
815
|
+
}): PaginaDinamica<T>;
|
|
797
816
|
declare const PAGINAS: {
|
|
798
|
-
readonly home:
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
readonly
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
readonly
|
|
805
|
-
readonly href: "/aventura/[id]";
|
|
806
|
-
};
|
|
807
|
-
readonly aventuras: {
|
|
808
|
-
readonly href: "/aventuras";
|
|
809
|
-
};
|
|
810
|
-
readonly cadastrar: {
|
|
811
|
-
readonly href: "/cadastrar";
|
|
812
|
-
};
|
|
813
|
-
readonly definicoes: {
|
|
814
|
-
readonly href: "/definicoes/[[...slug]]";
|
|
815
|
-
};
|
|
816
|
-
readonly dicas: {
|
|
817
|
-
readonly href: "/dicas/[[...slug]]";
|
|
818
|
-
};
|
|
817
|
+
readonly home: PaginaEstatica<"/">;
|
|
818
|
+
readonly acessar: PaginaEstatica<"/acessar">;
|
|
819
|
+
readonly cadastrar: PaginaEstatica<"/cadastrar">;
|
|
820
|
+
readonly aventura: PaginaDinamica<"/aventura/[id]">;
|
|
821
|
+
readonly aventuras: PaginaEstatica<"/aventuras">;
|
|
822
|
+
readonly definicoes: PaginaDinamica<"/definicoes/[[...slug]]">;
|
|
823
|
+
readonly dicas: PaginaDinamica<"/dicas/[[...slug]]">;
|
|
819
824
|
readonly jogo: {
|
|
820
|
-
readonly
|
|
821
|
-
readonly acesso: {
|
|
822
|
-
readonly autenticado: true;
|
|
823
|
-
};
|
|
824
|
-
readonly jogador: {
|
|
825
|
-
readonly href: "/jogo/jogador";
|
|
826
|
-
readonly acesso: {
|
|
827
|
-
readonly autenticado: true;
|
|
828
|
-
};
|
|
829
|
-
};
|
|
825
|
+
readonly jogador: PaginaEstatica<"/jogo/jogador">;
|
|
830
826
|
readonly mestre: {
|
|
831
|
-
readonly sessoesMestre:
|
|
832
|
-
readonly href: "/jogo/mestre/sessoes-mestre";
|
|
833
|
-
readonly acesso: {
|
|
834
|
-
readonly autenticado: true;
|
|
835
|
-
};
|
|
836
|
-
};
|
|
827
|
+
readonly sessoesMestre: PaginaEstatica<"/jogo/mestre/sessoes-mestre">;
|
|
837
828
|
};
|
|
838
829
|
readonly admin: {
|
|
839
|
-
readonly gerenciarSalas:
|
|
840
|
-
readonly href: "/jogo/admin/gerenciar-salas";
|
|
841
|
-
readonly acesso: {
|
|
842
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
843
|
-
};
|
|
844
|
-
};
|
|
845
|
-
};
|
|
846
|
-
readonly emJogo: {
|
|
847
|
-
readonly href: "/jogo/em-jogo";
|
|
848
|
-
readonly acesso: {
|
|
849
|
-
readonly autenticado: true;
|
|
850
|
-
};
|
|
830
|
+
readonly gerenciarSalas: PaginaEstatica<"/jogo/admin/gerenciar-salas">;
|
|
851
831
|
};
|
|
832
|
+
readonly emJogo: PaginaEstatica<"/jogo/em-jogo">;
|
|
833
|
+
readonly label: string;
|
|
834
|
+
readonly comCabecalho?: true;
|
|
835
|
+
readonly acesso?: AcessoPagina;
|
|
836
|
+
readonly template: "/jogo";
|
|
837
|
+
readonly href: "/jogo";
|
|
852
838
|
};
|
|
853
|
-
readonly linhaDoTempo:
|
|
854
|
-
|
|
855
|
-
};
|
|
856
|
-
readonly minhaPagina: {
|
|
857
|
-
readonly href: "/minha-pagina";
|
|
858
|
-
};
|
|
839
|
+
readonly linhaDoTempo: PaginaEstatica<"/linha-do-tempo">;
|
|
840
|
+
readonly minhaPagina: PaginaEstatica<"/minha-pagina">;
|
|
859
841
|
readonly minhasPaginas: {
|
|
860
842
|
readonly admin: {
|
|
843
|
+
readonly aventura: PaginaDinamica<"/minhas-paginas/admin/aventura/[id]">;
|
|
844
|
+
readonly aventuras: PaginaEstatica<"/minhas-paginas/admin/aventuras">;
|
|
845
|
+
readonly dashboardWs: PaginaEstatica<"/minhas-paginas/admin/dashboard-ws">;
|
|
846
|
+
readonly sessao: PaginaDinamica<"/minhas-paginas/admin/sessao/[id]">;
|
|
847
|
+
readonly uploads: PaginaEstatica<"/minhas-paginas/admin/uploads">;
|
|
848
|
+
readonly variaveisAmbiente: PaginaEstatica<"/minhas-paginas/admin/variaveis-ambiente">;
|
|
849
|
+
readonly label: string;
|
|
850
|
+
readonly comCabecalho?: true;
|
|
851
|
+
readonly acesso?: AcessoPagina;
|
|
852
|
+
readonly template: "/minhas-paginas/admin";
|
|
861
853
|
readonly href: "/minhas-paginas/admin";
|
|
862
|
-
readonly acesso: {
|
|
863
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
864
|
-
};
|
|
865
|
-
readonly aventura: {
|
|
866
|
-
readonly href: "/minhas-paginas/admin/aventura/[id]";
|
|
867
|
-
readonly acesso: {
|
|
868
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
869
|
-
};
|
|
870
|
-
};
|
|
871
|
-
readonly aventuras: {
|
|
872
|
-
readonly href: "/minhas-paginas/admin/aventuras";
|
|
873
|
-
readonly acesso: {
|
|
874
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
875
|
-
};
|
|
876
|
-
};
|
|
877
|
-
readonly dashboardWs: {
|
|
878
|
-
readonly href: "/minhas-paginas/admin/dashboard-ws";
|
|
879
|
-
readonly acesso: {
|
|
880
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
881
|
-
};
|
|
882
|
-
};
|
|
883
|
-
readonly sessao: {
|
|
884
|
-
readonly href: "/minhas-paginas/admin/sessao/[id]";
|
|
885
|
-
readonly acesso: {
|
|
886
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
887
|
-
};
|
|
888
|
-
};
|
|
889
|
-
readonly uploads: {
|
|
890
|
-
readonly href: "/minhas-paginas/admin/uploads";
|
|
891
|
-
readonly acesso: {
|
|
892
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
893
|
-
};
|
|
894
|
-
};
|
|
895
|
-
readonly variaveisAmbiente: {
|
|
896
|
-
readonly href: "/minhas-paginas/admin/variaveis-ambiente";
|
|
897
|
-
readonly acesso: {
|
|
898
|
-
readonly listaDeCapacidadesNecessarias: readonly ["ADMINISTRADOR.SUDO.BURLAR_CAPACIDADES"];
|
|
899
|
-
};
|
|
900
|
-
};
|
|
901
854
|
};
|
|
902
855
|
readonly jogador: {
|
|
856
|
+
readonly meusPersonagens: PaginaEstatica<"/minhas-paginas/jogador/meus-personagens">;
|
|
857
|
+
readonly label: string;
|
|
858
|
+
readonly comCabecalho?: true;
|
|
859
|
+
readonly acesso?: AcessoPagina;
|
|
860
|
+
readonly template: "/minhas-paginas/jogador";
|
|
903
861
|
readonly href: "/minhas-paginas/jogador";
|
|
904
|
-
readonly acesso: {
|
|
905
|
-
readonly autenticado: true;
|
|
906
|
-
};
|
|
907
|
-
readonly meusPersonagens: {
|
|
908
|
-
readonly href: "/minhas-paginas/jogador/meus-personagens";
|
|
909
|
-
readonly acesso: {
|
|
910
|
-
readonly autenticado: true;
|
|
911
|
-
};
|
|
912
|
-
};
|
|
913
862
|
};
|
|
914
863
|
readonly mestre: {
|
|
915
|
-
readonly
|
|
916
|
-
readonly
|
|
917
|
-
|
|
918
|
-
};
|
|
919
|
-
readonly aventura: {
|
|
920
|
-
readonly href: "/minhas-paginas/mestre/aventura/[id]";
|
|
921
|
-
readonly acesso: {
|
|
922
|
-
readonly autenticado: true;
|
|
923
|
-
};
|
|
924
|
-
};
|
|
925
|
-
readonly aventuras: {
|
|
926
|
-
readonly href: "/minhas-paginas/mestre/aventuras";
|
|
927
|
-
readonly acesso: {
|
|
928
|
-
readonly autenticado: true;
|
|
929
|
-
};
|
|
930
|
-
};
|
|
931
|
-
readonly personagens: {
|
|
932
|
-
readonly href: "/minhas-paginas/mestre/personagens";
|
|
933
|
-
readonly acesso: {
|
|
934
|
-
readonly autenticado: true;
|
|
935
|
-
};
|
|
936
|
-
};
|
|
864
|
+
readonly aventura: PaginaDinamica<"/minhas-paginas/mestre/aventura/[id]">;
|
|
865
|
+
readonly aventuras: PaginaEstatica<"/minhas-paginas/mestre/aventuras">;
|
|
866
|
+
readonly personagens: PaginaEstatica<"/minhas-paginas/mestre/personagens">;
|
|
937
867
|
readonly rascunhos: {
|
|
938
|
-
readonly aventuras:
|
|
939
|
-
|
|
940
|
-
readonly acesso: {
|
|
941
|
-
readonly autenticado: true;
|
|
942
|
-
};
|
|
943
|
-
};
|
|
944
|
-
readonly sessoesUnicas: {
|
|
945
|
-
readonly href: "/minhas-paginas/mestre/rascunhos/sessoes-unicas";
|
|
946
|
-
readonly acesso: {
|
|
947
|
-
readonly autenticado: true;
|
|
948
|
-
};
|
|
949
|
-
};
|
|
950
|
-
};
|
|
951
|
-
readonly sessao: {
|
|
952
|
-
readonly href: "/minhas-paginas/mestre/sessao/[id]";
|
|
953
|
-
readonly acesso: {
|
|
954
|
-
readonly autenticado: true;
|
|
955
|
-
};
|
|
956
|
-
};
|
|
957
|
-
};
|
|
958
|
-
readonly minhasDisponibilidades: {
|
|
959
|
-
readonly href: "/minhas-paginas/minhas-disponibilidades";
|
|
960
|
-
readonly acesso: {
|
|
961
|
-
readonly autenticado: true;
|
|
868
|
+
readonly aventuras: PaginaEstatica<"/minhas-paginas/mestre/rascunhos/aventuras">;
|
|
869
|
+
readonly sessoesUnicas: PaginaEstatica<"/minhas-paginas/mestre/rascunhos/sessoes-unicas">;
|
|
962
870
|
};
|
|
871
|
+
readonly sessao: PaginaDinamica<"/minhas-paginas/mestre/sessao/[id]">;
|
|
872
|
+
readonly label: string;
|
|
873
|
+
readonly comCabecalho?: true;
|
|
874
|
+
readonly acesso?: AcessoPagina;
|
|
875
|
+
readonly template: "/minhas-paginas/mestre";
|
|
876
|
+
readonly href: "/minhas-paginas/mestre";
|
|
963
877
|
};
|
|
878
|
+
readonly minhasDisponibilidades: PaginaEstatica<"/minhas-paginas/minhas-disponibilidades">;
|
|
964
879
|
};
|
|
965
|
-
readonly personagens:
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
readonly autenticado: true;
|
|
981
|
-
};
|
|
982
|
-
};
|
|
983
|
-
readonly sessao: {
|
|
984
|
-
readonly href: "/sessao/[id]";
|
|
985
|
-
readonly acesso: {
|
|
986
|
-
readonly autenticado: true;
|
|
987
|
-
};
|
|
988
|
-
};
|
|
989
|
-
};
|
|
990
|
-
type PaginasTree<T> = T extends Record<string, any> ? 'href' extends keyof T ? T extends {
|
|
991
|
-
href: infer H;
|
|
992
|
-
} ? H extends string ? {
|
|
993
|
-
href: H;
|
|
994
|
-
acesso?: AcessoPagina;
|
|
995
|
-
} & {
|
|
996
|
-
[K in Exclude<keyof T, 'href' | 'acesso'>]: PaginasTree<T[K]>;
|
|
997
|
-
} : never : never : {
|
|
880
|
+
readonly personagens: PaginaEstatica<"/personagens">;
|
|
881
|
+
readonly sessoes: PaginaEstatica<"/sessoes">;
|
|
882
|
+
readonly sessaoAovivo: PaginaEstatica<"/sessao-aovivo">;
|
|
883
|
+
readonly sessao: PaginaDinamica<"/sessao/[id]">;
|
|
884
|
+
};
|
|
885
|
+
type Folhas<T> = T extends {
|
|
886
|
+
template: string;
|
|
887
|
+
} ? T : T extends Record<string, unknown> ? {
|
|
888
|
+
[K in keyof T]: Folhas<T[K]>;
|
|
889
|
+
}[keyof T] : never;
|
|
890
|
+
type PaginaFolha = Folhas<typeof PAGINAS>;
|
|
891
|
+
type PaginaTemplate = PaginaFolha['template'];
|
|
892
|
+
declare const INFO_POR_TEMPLATE: Readonly<Record<PaginaTemplate, {
|
|
893
|
+
label: string;
|
|
894
|
+
comCabecalho: boolean;
|
|
998
895
|
acesso?: AcessoPagina;
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
|
-
} : never;
|
|
1002
|
-
type _Check = {
|
|
1003
|
-
[K in keyof typeof PAGINAS]: PaginasTree<(typeof PAGINAS)[K]>;
|
|
1004
|
-
};
|
|
1005
|
-
declare const _check: _Check;
|
|
1006
|
-
type PaginaHref = PaginaDef['href'];
|
|
1007
|
-
type PaginaObjeto<P extends PaginaDef = PaginaAtual> = keyof PaginaParams<P> extends never ? {
|
|
1008
|
-
pagina: P;
|
|
1009
|
-
} : {
|
|
1010
|
-
pagina: P;
|
|
1011
|
-
params: PaginaParams<P>;
|
|
1012
|
-
};
|
|
1013
|
-
type PaginaLeafUnion<T> = T extends {
|
|
1014
|
-
href: string;
|
|
1015
|
-
} ? T | PaginaLeafUnionChildren<T> : PaginaLeafUnionChildren<T>;
|
|
1016
|
-
type PaginaLeafUnionChildren<T> = T extends Record<string, any> ? {
|
|
1017
|
-
[K in Exclude<keyof T, 'href' | 'acesso'>]: PaginaLeafUnion<T[K]>;
|
|
1018
|
-
}[Exclude<keyof T, 'href' | 'acesso'>] : never;
|
|
1019
|
-
type PaginaAtual = PaginaLeafUnion<typeof PAGINAS>;
|
|
896
|
+
}>>;
|
|
897
|
+
declare const ACESSO_POR_TEMPLATE: Readonly<Record<PaginaTemplate, AcessoPagina | undefined>>;
|
|
1020
898
|
interface MensagemChatRecebida {
|
|
1021
899
|
salaId: string;
|
|
1022
900
|
idUsuario: number;
|
|
@@ -1041,7 +919,7 @@ interface MensagemChatPayload {
|
|
|
1041
919
|
}
|
|
1042
920
|
type SOCKET_AcessoUsuario = {
|
|
1043
921
|
usuario: UsuarioDto;
|
|
1044
|
-
paginaAtual?:
|
|
922
|
+
paginaAtual?: PaginaTemplate | null;
|
|
1045
923
|
dataAtualizacao: Date;
|
|
1046
924
|
};
|
|
1047
925
|
type SOCKET_UsuarioExistente = {
|
|
@@ -1569,4 +1447,4 @@ declare const Eventos_EnviaERecebe: {
|
|
|
1569
1447
|
};
|
|
1570
1448
|
};
|
|
1571
1449
|
};
|
|
1572
|
-
export { CAPACIDADES, IPermissoesEstado, PermissoesEstadoDto, IPermissoesItem, PermissoesItemDto, IPermissoesUsuario, PermissoesUsuarioDto, IPermissoesUsuariosHistorico, PermissoesUsuariosHistoricoDto, IArcoAventura, ArcoAventuraDto, IAventura, AventuraDto, IConviteGrupoAventuraPersonagem, ConviteGrupoAventuraPersonagemDto, IGrupoAventura, GrupoAventuraDto, IGrupoAventuraPersonagem, GrupoAventuraPersonagemDto, IRespostaConvite, RespostaConviteDto, IVariavelAmbiente, VariavelAmbienteDto, IConquista, ConquistaDto, ITipoConquista, TipoConquistaDto, IDetalheSessaoAventura, DetalheSessaoAventuraDto, IDetalheSessaoCanonica, DetalheSessaoCanonicaDto, CapituloSessaoCanonica, IDetalheSessaoUnica, DetalheSessaoUnicaDto, IParticipanteSessaoUnica, ParticipanteSessaoUnicaDto, ICoeficienteGanhoEstatisticaClasse, CoeficienteGanhoEstatisticaClasseDto, IGanhoNivelClasse, GanhoNivelClasseDto, DadosDoTipoGanho, DadosGanho_Atributos, DadosGanho_Pericias, DadosGanho_Estatisticas, DadosGanho_Classes, DadosGanho_ValorMaximoAtributo, DadosGanho_PontosHabilidadesEspeciais, DadosGanho_PontosHabilidadesParanormais, DadosGanho_PontosHabilidadeElemental, IGanhoRelativoCoeficienteAtributo, GanhoRelativoCoeficienteAtributoDto, ITipoGanhoNivel, TipoGanhoNivelDto, IGeracao, GeracaoDto, IImagem, ImagemDto, ITipoImagem, TipoImagemDto, IAlcance, AlcanceDto, IAtributo, AtributoDto, ICategoriaRitual, CategoriaRitualDto, ICirculoRitual, CirculoRitualDto, IClasse, ClasseDto, IDuracao, DuracaoDto, IElemento, ElementoDto, IEstatisticaDanificavel, EstatisticaDanificavelDto, IExecucao, ExecucaoDto, IFormatoAlcance, FormatoAlcanceDto, ILinhaEfeito, LinhaEfeitoDto, INivel, NivelDto, INivelComponente, NivelComponenteDto, INivelProficiencia, NivelProficienciaDto, INivelRitual, NivelRitualDto, IPatentePericia, PatentePericiaDto, IPericia, PericiaDto, IProficiencia, ProficienciaDto, ITipoAlvo, TipoAlvoDto, ITipoCategoria, TipoCategoriaDto, ITipoDano, TipoDanoDto, ITipoEfeito, TipoEfeitoDto, ITipoItem, TipoItemDto, ITipoProficiencia, TipoProficienciaDto, ILink, LinkDto, ITipoLink, TipoLinkDto, IDificuldadeSessao, DificuldadeSessaoDto, IEstiloSessaoMestrada, EstiloSessaoMestradaDto, ITipoSessao, TipoSessaoDto, IPerfilAdmin, PerfilAdminDto, IPerfilJogador, PerfilJogadorDto, IPerfilMestre, PerfilMestreDto, IFichaPersonagem, FichaPersonagemDto, ObjetoFicha, DetalheEvolucao, DetalhesExtras, FichaDeJogo, AtributoFicha, PericiaFicha, EstatisticaDanificavelFicha, DetalheFicha, RegistroPericiaLivre, IInformacaoPersonagem, InformacaoPersonagemDto, IPersonagem, PersonagemDto, PersonagemSalaJogoDto, IResumoPersonagemAventura, ResumoPersonagemAventuraDto, ITipoPersonagem, TipoPersonagemDto, IDetalheRascunhoAventura, DetalheRascunhoAventuraDto, IDetalheRascunhoSessaoUnicaCanonica, DetalheRascunhoSessaoUnicaCanonicaDto, IDetalheRascunhoSessaoUnicaNaoCanonica, DetalheRascunhoSessaoUnicaNaoCanonicaDto, IRascunho, RascunhoDto, IEstudo, EstudoDto, IRegistroSessao, RegistroSessaoDto, ISessao, SessaoDto, SessaoDadosGerais, ParticipanteSessao, AuthSession, ICustomizacaoUsuario, CustomizacaoUsuarioDto, IDisponibilidadeUsuario, DisponibilidadeUsuarioDto, ListaDisponibilidadesUsuario, DisponibilidadesDDS, JanelaDisponibilidade, IUsuario, UsuarioDto, SalaDeJogo_Codigo, SalaDeJogoParams, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_Mestre, SalaDeJogo_Mestre_Mestrada, SalaDeJogo_Mestre_Inteligente, SalaDeJogo_TipoParticipante, SalaDeJogo_Participante, SalaDeJogo_Participante_Narrador, SalaDeJogo_Participante_Jogador, SalaDeJogo_FUNC_AtualizaParticipanteParams, SalaDeJogoDto,
|
|
1450
|
+
export { CAPACIDADES, IPermissoesEstado, PermissoesEstadoDto, IPermissoesItem, PermissoesItemDto, IPermissoesUsuario, PermissoesUsuarioDto, IPermissoesUsuariosHistorico, PermissoesUsuariosHistoricoDto, IArcoAventura, ArcoAventuraDto, IAventura, AventuraDto, IConviteGrupoAventuraPersonagem, ConviteGrupoAventuraPersonagemDto, IGrupoAventura, GrupoAventuraDto, IGrupoAventuraPersonagem, GrupoAventuraPersonagemDto, IRespostaConvite, RespostaConviteDto, IVariavelAmbiente, VariavelAmbienteDto, IConquista, ConquistaDto, ITipoConquista, TipoConquistaDto, IDetalheSessaoAventura, DetalheSessaoAventuraDto, IDetalheSessaoCanonica, DetalheSessaoCanonicaDto, CapituloSessaoCanonica, IDetalheSessaoUnica, DetalheSessaoUnicaDto, IParticipanteSessaoUnica, ParticipanteSessaoUnicaDto, ICoeficienteGanhoEstatisticaClasse, CoeficienteGanhoEstatisticaClasseDto, IGanhoNivelClasse, GanhoNivelClasseDto, DadosDoTipoGanho, DadosGanho_Atributos, DadosGanho_Pericias, DadosGanho_Estatisticas, DadosGanho_Classes, DadosGanho_ValorMaximoAtributo, DadosGanho_PontosHabilidadesEspeciais, DadosGanho_PontosHabilidadesParanormais, DadosGanho_PontosHabilidadeElemental, IGanhoRelativoCoeficienteAtributo, GanhoRelativoCoeficienteAtributoDto, ITipoGanhoNivel, TipoGanhoNivelDto, IGeracao, GeracaoDto, IImagem, ImagemDto, ITipoImagem, TipoImagemDto, IAlcance, AlcanceDto, IAtributo, AtributoDto, ICategoriaRitual, CategoriaRitualDto, ICirculoRitual, CirculoRitualDto, IClasse, ClasseDto, IDuracao, DuracaoDto, IElemento, ElementoDto, IEstatisticaDanificavel, EstatisticaDanificavelDto, IExecucao, ExecucaoDto, IFormatoAlcance, FormatoAlcanceDto, ILinhaEfeito, LinhaEfeitoDto, INivel, NivelDto, INivelComponente, NivelComponenteDto, INivelProficiencia, NivelProficienciaDto, INivelRitual, NivelRitualDto, IPatentePericia, PatentePericiaDto, IPericia, PericiaDto, IProficiencia, ProficienciaDto, ITipoAlvo, TipoAlvoDto, ITipoCategoria, TipoCategoriaDto, ITipoDano, TipoDanoDto, ITipoEfeito, TipoEfeitoDto, ITipoItem, TipoItemDto, ITipoProficiencia, TipoProficienciaDto, ILink, LinkDto, ITipoLink, TipoLinkDto, IDificuldadeSessao, DificuldadeSessaoDto, IEstiloSessaoMestrada, EstiloSessaoMestradaDto, ITipoSessao, TipoSessaoDto, IPerfilAdmin, PerfilAdminDto, IPerfilJogador, PerfilJogadorDto, IPerfilMestre, PerfilMestreDto, IFichaPersonagem, FichaPersonagemDto, ObjetoFicha, DetalheEvolucao, DetalhesExtras, FichaDeJogo, AtributoFicha, PericiaFicha, EstatisticaDanificavelFicha, DetalheFicha, RegistroPericiaLivre, IInformacaoPersonagem, InformacaoPersonagemDto, IPersonagem, PersonagemDto, PersonagemSalaJogoDto, IResumoPersonagemAventura, ResumoPersonagemAventuraDto, ITipoPersonagem, TipoPersonagemDto, IDetalheRascunhoAventura, DetalheRascunhoAventuraDto, IDetalheRascunhoSessaoUnicaCanonica, DetalheRascunhoSessaoUnicaCanonicaDto, IDetalheRascunhoSessaoUnicaNaoCanonica, DetalheRascunhoSessaoUnicaNaoCanonicaDto, IRascunho, RascunhoDto, IEstudo, EstudoDto, IRegistroSessao, RegistroSessaoDto, ISessao, SessaoDto, SessaoDadosGerais, ParticipanteSessao, AuthSession, ICustomizacaoUsuario, CustomizacaoUsuarioDto, IDisponibilidadeUsuario, DisponibilidadeUsuarioDto, ListaDisponibilidadesUsuario, DisponibilidadesDDS, JanelaDisponibilidade, IUsuario, UsuarioDto, SalaDeJogo_Codigo, SalaDeJogoParams, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_Mestre, SalaDeJogo_Mestre_Mestrada, SalaDeJogo_Mestre_Inteligente, SalaDeJogo_TipoParticipante, SalaDeJogo_Participante, SalaDeJogo_Participante_Narrador, SalaDeJogo_Participante_Jogador, SalaDeJogo_FUNC_AtualizaParticipanteParams, SalaDeJogoDto, ExtrairParamsDoTemplate, PaginaParamsDoTemplate, TemplateComParams, PaginaInfo, PaginaEstatica, PaginaDinamica, Pagina, PaginaParams, montarHref, pagina, paginaDinamica, PAGINAS, Folhas, PaginaFolha, PaginaTemplate, INFO_POR_TEMPLATE, ACESSO_POR_TEMPLATE, MensagemChatRecebida, SalaChat, SalaChatFront, MensagemChatPayload, SOCKET_AcessoUsuario, SOCKET_UsuarioExistente, TelemetryConnectionInfo, WsEventAudienceUnico, WsEventAudienceMultiplo, WsEventAudience, TelemetryEventLog, TelemetrySnapshot, WsErrorResponse, WsUnauthorizedErrorResponse, WsResult, isWsErrorResponse, isWsUnauthorizedErrorResponse, wsErro, wsUnauthorized, wsMap, wsChain, EventoTipo, EmitDelivery, EventoAuthDefault, EventoEnvia, EventoEmite, EventoEnviaERecebe, EventoSchema, GatewayDef, createGateway, EventosWebSocket, isRecord, getEmitDelivery, WsEmitTarget, WsEmitParams, EventosEmiteMap, EventoEmiteAny, PaletaCores, EstruturaPaginaDefinicao, ConteudoItem, DefinicaoElemento, ListaItem, AventuraEstado, EstadoPendenciaPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoOcupacaoPersonagem, EstadoSessao, DiaDaSemana, obtemDiaDaSemanaPorExtensoPorDDS, NumeroHora24, NumeroMomento, MomentoFormatado24, MomentoFormatado, CargoExibicaoUsuario, CargosUsuario, ObjetoAutenticacao, ObjetoCache, ObjetoPendeciaPersonagem, TipoVariavelAmbiente, ObjetoEvolucaoCompleto, ObjetoEvolucao, ObjetoGanhosEvolucao, GanhoEstatistica, FormatoMomento, DetalheUtilizacaoRascunho, EstiloSessao, PathTokenPadrao, TituloSessaoInteligente, Capacidade, LISTA_CAPACIDADES, PermissaoItemMinimo, ListaCapacidadesNecessarias, AcessoPagina, Gateways, EventoTipoLiteral, FiltraEventosPorTipo, criarEventosFiltrados, Eventos_Envia, Eventos_Emite, Eventos_EnviaERecebe };
|
package/dist/classes.js
CHANGED
|
@@ -49,60 +49,122 @@ var SalaDeJogo_TipoParticipante;
|
|
|
49
49
|
SalaDeJogo_TipoParticipante["SALA__NARRADOR"] = "Narrador";
|
|
50
50
|
SalaDeJogo_TipoParticipante["SALA__JOGADOR"] = "Jogador";
|
|
51
51
|
})(SalaDeJogo_TipoParticipante || (SalaDeJogo_TipoParticipante = {}));
|
|
52
|
+
function montarHref(template, params) {
|
|
53
|
+
const out = template.replace(/\[\[\.\.\.([^\]]+)\]\]|\[\.\.\.([^\]]+)\]|\[([^\]]+)\]/g, (_m, optCatchAll, catchAll, single) => {
|
|
54
|
+
const key = (optCatchAll || catchAll || single);
|
|
55
|
+
const value = params[key];
|
|
56
|
+
if (optCatchAll) {
|
|
57
|
+
if (value == null)
|
|
58
|
+
return '';
|
|
59
|
+
if (!Array.isArray(value))
|
|
60
|
+
throw new Error(`PAGINAS.href: "${key}" deve ser string[] (optional catch-all)`);
|
|
61
|
+
return value.map((x) => encodeURIComponent(String(x))).join('/');
|
|
62
|
+
}
|
|
63
|
+
if (catchAll) {
|
|
64
|
+
if (!Array.isArray(value))
|
|
65
|
+
throw new Error(`PAGINAS.href: "${key}" deve ser string[] (catch-all)`);
|
|
66
|
+
return value.map((x) => encodeURIComponent(String(x))).join('/');
|
|
67
|
+
}
|
|
68
|
+
if (value == null)
|
|
69
|
+
throw new Error(`PAGINAS.href: "${key}" é obrigatório`);
|
|
70
|
+
return encodeURIComponent(String(value));
|
|
71
|
+
});
|
|
72
|
+
const cleaned = out.replace(/\/+/g, '/').replace(/\/$/, '');
|
|
73
|
+
return cleaned === '' ? '/' : cleaned;
|
|
74
|
+
}
|
|
75
|
+
function pagina(template, info) {
|
|
76
|
+
const { label, comCabecalho, acesso } = info;
|
|
77
|
+
if (acesso == null && comCabecalho == null)
|
|
78
|
+
return { template, href: template, label };
|
|
79
|
+
if (acesso == null)
|
|
80
|
+
return { template, href: template, label, comCabecalho };
|
|
81
|
+
if (comCabecalho == null)
|
|
82
|
+
return { template, href: template, label, acesso };
|
|
83
|
+
return { template, href: template, label, comCabecalho, acesso };
|
|
84
|
+
}
|
|
85
|
+
function paginaDinamica(template, info) {
|
|
86
|
+
const href = (params) => montarHref(template, params);
|
|
87
|
+
const { label, comCabecalho, acesso } = info;
|
|
88
|
+
if (acesso == null && comCabecalho == null)
|
|
89
|
+
return { template, href, label };
|
|
90
|
+
if (acesso == null)
|
|
91
|
+
return { template, href, label, comCabecalho };
|
|
92
|
+
if (comCabecalho == null)
|
|
93
|
+
return { template, href, label, acesso };
|
|
94
|
+
return { template, href, label, comCabecalho, acesso };
|
|
95
|
+
}
|
|
52
96
|
const PAGINAS = {
|
|
53
|
-
home: {
|
|
54
|
-
acessar: {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
definicoes:
|
|
59
|
-
dicas:
|
|
97
|
+
home: pagina('/', { label: 'Página Inicial', comCabecalho: true }),
|
|
98
|
+
acessar: pagina('/acessar', { label: 'Acessar' }),
|
|
99
|
+
cadastrar: pagina('/cadastrar', { label: 'Cadastrar' }),
|
|
100
|
+
aventura: paginaDinamica('/aventura/[id]', { label: 'Aventura' }),
|
|
101
|
+
aventuras: pagina('/aventuras', { label: 'Aventuras' }),
|
|
102
|
+
definicoes: paginaDinamica('/definicoes/[[...slug]]', { label: 'Definições', comCabecalho: true }),
|
|
103
|
+
dicas: paginaDinamica('/dicas/[[...slug]]', { label: 'Dicas', comCabecalho: true }),
|
|
60
104
|
jogo: {
|
|
61
|
-
|
|
62
|
-
acesso: { autenticado: true },
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
emJogo: { href: '/jogo/em-jogo', acesso: { autenticado: true } },
|
|
105
|
+
...pagina('/jogo', { label: 'Jogo', acesso: { autenticado: true } }),
|
|
106
|
+
jogador: pagina('/jogo/jogador', { label: 'Jogo - Jogador', acesso: { autenticado: true } }),
|
|
107
|
+
mestre: { sessoesMestre: pagina('/jogo/mestre/sessoes-mestre', { label: 'Mestre - Sessões', acesso: { autenticado: true } }) },
|
|
108
|
+
admin: { gerenciarSalas: pagina('/jogo/admin/gerenciar-salas', { label: 'Admin - Gerenciar Salas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }) },
|
|
109
|
+
emJogo: pagina('/jogo/em-jogo', { label: 'Em Jogo', acesso: { autenticado: true } }),
|
|
67
110
|
},
|
|
68
|
-
linhaDoTempo:
|
|
69
|
-
minhaPagina:
|
|
111
|
+
linhaDoTempo: pagina('/linha-do-tempo', { label: 'Linha do Tempo' }),
|
|
112
|
+
minhaPagina: pagina('/minha-pagina', { label: 'Minha Página' }),
|
|
70
113
|
minhasPaginas: {
|
|
71
114
|
admin: {
|
|
72
|
-
|
|
73
|
-
acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] },
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
variaveisAmbiente: { href: '/minhas-paginas/admin/variaveis-ambiente', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } },
|
|
115
|
+
...pagina('/minhas-paginas/admin', { label: 'Administração', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
116
|
+
aventura: paginaDinamica('/minhas-paginas/admin/aventura/[id]', { label: 'Admin - Aventura', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
117
|
+
aventuras: pagina('/minhas-paginas/admin/aventuras', { label: 'Admin - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
118
|
+
dashboardWs: pagina('/minhas-paginas/admin/dashboard-ws', { label: 'Admin - Dashboard WS', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
119
|
+
sessao: paginaDinamica('/minhas-paginas/admin/sessao/[id]', { label: 'Admin - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
120
|
+
uploads: pagina('/minhas-paginas/admin/uploads', { label: 'Admin - Uploads', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
121
|
+
variaveisAmbiente: pagina('/minhas-paginas/admin/variaveis-ambiente', { label: 'Admin - Variáveis de Ambiente', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
80
122
|
},
|
|
81
123
|
jogador: {
|
|
82
|
-
|
|
83
|
-
acesso: { autenticado: true },
|
|
84
|
-
meusPersonagens: { href: '/minhas-paginas/jogador/meus-personagens', acesso: { autenticado: true } },
|
|
124
|
+
...pagina('/minhas-paginas/jogador', { label: 'Área do Jogador', acesso: { autenticado: true } }),
|
|
125
|
+
meusPersonagens: pagina('/minhas-paginas/jogador/meus-personagens', { label: 'Meus Personagens', acesso: { autenticado: true } }),
|
|
85
126
|
},
|
|
86
127
|
mestre: {
|
|
87
|
-
|
|
88
|
-
acesso: { autenticado: true },
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
personagens: { href: '/minhas-paginas/mestre/personagens', acesso: { autenticado: true } },
|
|
128
|
+
...pagina('/minhas-paginas/mestre', { label: 'Área do Mestre', acesso: { autenticado: true } }),
|
|
129
|
+
aventura: paginaDinamica('/minhas-paginas/mestre/aventura/[id]', { label: 'Mestre - Aventura', acesso: { autenticado: true } }),
|
|
130
|
+
aventuras: pagina('/minhas-paginas/mestre/aventuras', { label: 'Mestre - Aventuras', acesso: { autenticado: true } }),
|
|
131
|
+
personagens: pagina('/minhas-paginas/mestre/personagens', { label: 'Mestre - Personagens', acesso: { autenticado: true } }),
|
|
92
132
|
rascunhos: {
|
|
93
|
-
aventuras:
|
|
94
|
-
sessoesUnicas:
|
|
133
|
+
aventuras: pagina('/minhas-paginas/mestre/rascunhos/aventuras', { label: 'Rascunhos - Aventuras', acesso: { autenticado: true } }),
|
|
134
|
+
sessoesUnicas: pagina('/minhas-paginas/mestre/rascunhos/sessoes-unicas', { label: 'Rascunhos - Sessões Únicas', acesso: { autenticado: true } }),
|
|
95
135
|
},
|
|
96
|
-
sessao:
|
|
136
|
+
sessao: paginaDinamica('/minhas-paginas/mestre/sessao/[id]', { label: 'Mestre - Sessão', acesso: { autenticado: true } }),
|
|
97
137
|
},
|
|
98
|
-
minhasDisponibilidades:
|
|
138
|
+
minhasDisponibilidades: pagina('/minhas-paginas/minhas-disponibilidades', { label: 'Minhas Disponibilidades', acesso: { autenticado: true } }),
|
|
99
139
|
},
|
|
100
|
-
personagens: {
|
|
101
|
-
sessoes: {
|
|
102
|
-
sessaoAovivo:
|
|
103
|
-
sessao:
|
|
140
|
+
personagens: pagina('/personagens', { label: 'Personagens', acesso: { autenticado: true } }),
|
|
141
|
+
sessoes: pagina('/sessoes', { label: 'Sessões', acesso: { autenticado: true } }),
|
|
142
|
+
sessaoAovivo: pagina('/sessao-aovivo', { label: 'Sessão Ao Vivo', acesso: { autenticado: true } }),
|
|
143
|
+
sessao: paginaDinamica('/sessao/[id]', { label: 'Sessão', acesso: { autenticado: true } }),
|
|
104
144
|
};
|
|
105
|
-
const
|
|
145
|
+
const INFO_POR_TEMPLATE = (() => {
|
|
146
|
+
const out = {};
|
|
147
|
+
const stack = [PAGINAS];
|
|
148
|
+
while (stack.length > 0) {
|
|
149
|
+
const cur = stack.pop();
|
|
150
|
+
if (typeof cur === 'object' && cur !== null && 'template' in cur && typeof cur.template === 'string' && 'label' in cur) {
|
|
151
|
+
const folha = cur;
|
|
152
|
+
out[folha.template] = { label: folha.label, comCabecalho: folha.comCabecalho === true, acesso: folha.acesso };
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
if (typeof cur === 'object' && cur !== null) {
|
|
156
|
+
for (const value of Object.values(cur))
|
|
157
|
+
stack.push(value);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return out;
|
|
161
|
+
})();
|
|
162
|
+
const ACESSO_POR_TEMPLATE = (() => {
|
|
163
|
+
const out = {};
|
|
164
|
+
for (const [k, v] of Object.entries(INFO_POR_TEMPLATE))
|
|
165
|
+
out[k] = v.acesso;
|
|
166
|
+
return out;
|
|
167
|
+
})();
|
|
106
168
|
function isWsErrorResponse(payload) { return !!payload && typeof payload === "object" && payload._wsErro === true; }
|
|
107
169
|
function isWsUnauthorizedErrorResponse(payload) { return isWsErrorResponse(payload) && payload.code === "UNAUTHORIZED"; }
|
|
108
170
|
function wsErro(mensagem, extra) { return { _wsErro: true, mensagem, ...(extra ?? {}) }; }
|
|
@@ -311,4 +373,4 @@ function criarEventosFiltrados(tipo) {
|
|
|
311
373
|
const Eventos_Envia = criarEventosFiltrados('envia');
|
|
312
374
|
const Eventos_Emite = criarEventosFiltrados('emite');
|
|
313
375
|
const Eventos_EnviaERecebe = criarEventosFiltrados('envia-e-recebe');
|
|
314
|
-
export { CAPACIDADES, AuthSession, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, PAGINAS,
|
|
376
|
+
export { CAPACIDADES, AuthSession, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, montarHref, pagina, paginaDinamica, PAGINAS, INFO_POR_TEMPLATE, ACESSO_POR_TEMPLATE, isWsErrorResponse, isWsUnauthorizedErrorResponse, wsErro, wsUnauthorized, wsMap, wsChain, createGateway, EventosWebSocket, isRecord, getEmitDelivery, AventuraEstado, EstadoPendenciaPersonagem, EstadoPendenciaAdministrativaPersonagem, EstadoOcupacaoPersonagem, EstadoSessao, DiaDaSemana, obtemDiaDaSemanaPorExtensoPorDDS, CargoExibicaoUsuario, FormatoMomento, EstiloSessao, PathTokenPadrao, LISTA_CAPACIDADES, criarEventosFiltrados, Eventos_Envia, Eventos_Emite, Eventos_EnviaERecebe };
|