types-nora-api 0.0.220 → 0.0.222
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 +139 -1
- package/dist/classes.js +64 -4
- package/package.json +1 -1
package/dist/classes.d.ts
CHANGED
|
@@ -894,6 +894,144 @@ type ParamsProps<P extends PaginaFolha> = RequiredKeys<PaginaParams<P>> extends
|
|
|
894
894
|
type PaginaDestino = PaginaFolha extends infer P ? P extends PaginaFolha ? {
|
|
895
895
|
pagina: P;
|
|
896
896
|
} & ParamsProps<P> : never : never;
|
|
897
|
+
type CtxAcesso = {
|
|
898
|
+
estaAutenticado: boolean;
|
|
899
|
+
verificarCapacidade: (capacidade: Capacidade) => boolean;
|
|
900
|
+
};
|
|
901
|
+
type DecisaoAcessoPagina = {
|
|
902
|
+
permitido: true;
|
|
903
|
+
} | {
|
|
904
|
+
permitido: false;
|
|
905
|
+
motivo: 'NAO_AUTENTICADO';
|
|
906
|
+
redirecionarPara: PaginaFolha;
|
|
907
|
+
} | {
|
|
908
|
+
permitido: false;
|
|
909
|
+
motivo: 'SEM_CAPACIDADE';
|
|
910
|
+
redirecionarPara: PaginaFolha;
|
|
911
|
+
};
|
|
912
|
+
declare function decidirAcessoPagina(acesso: AcessoPagina | undefined, ctx: CtxAcesso): DecisaoAcessoPagina;
|
|
913
|
+
type ItemMenu = {
|
|
914
|
+
readonly titulo: string;
|
|
915
|
+
readonly destino?: PaginaDestino;
|
|
916
|
+
readonly subItens?: readonly ItemMenu[];
|
|
917
|
+
};
|
|
918
|
+
declare const MENU_SWIPER_ESQUERDA: readonly [{
|
|
919
|
+
readonly titulo: "Minhas Páginas";
|
|
920
|
+
readonly subItens: readonly [{
|
|
921
|
+
readonly titulo: "Jogador";
|
|
922
|
+
readonly destino: {
|
|
923
|
+
readonly pagina: {
|
|
924
|
+
readonly meusPersonagens: PaginaDef<"/minhas-paginas/jogador/meus-personagens">;
|
|
925
|
+
readonly label: string;
|
|
926
|
+
readonly comCabecalho?: true;
|
|
927
|
+
readonly acesso?: AcessoPagina;
|
|
928
|
+
readonly template: PaginaTemplate<"/minhas-paginas/jogador">;
|
|
929
|
+
readonly hrefTemplate: "/minhas-paginas/jogador";
|
|
930
|
+
readonly href: "/minhas-paginas/jogador";
|
|
931
|
+
};
|
|
932
|
+
};
|
|
933
|
+
}, {
|
|
934
|
+
readonly titulo: "Disponibilidades";
|
|
935
|
+
readonly destino: {
|
|
936
|
+
readonly pagina: PaginaDef<"/minhas-paginas/minhas-disponibilidades">;
|
|
937
|
+
};
|
|
938
|
+
}, {
|
|
939
|
+
readonly titulo: "Mestre";
|
|
940
|
+
readonly destino: {
|
|
941
|
+
readonly pagina: {
|
|
942
|
+
readonly aventura: PaginaDef<"/minhas-paginas/mestre/aventura/[id]">;
|
|
943
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/aventuras">;
|
|
944
|
+
readonly personagens: PaginaDef<"/minhas-paginas/mestre/personagens">;
|
|
945
|
+
readonly rascunhos: {
|
|
946
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/rascunhos/aventuras">;
|
|
947
|
+
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/rascunhos/sessoes-unicas">;
|
|
948
|
+
};
|
|
949
|
+
readonly sessao: PaginaDef<"/minhas-paginas/mestre/sessao/[id]">;
|
|
950
|
+
readonly label: string;
|
|
951
|
+
readonly comCabecalho?: true;
|
|
952
|
+
readonly acesso?: AcessoPagina;
|
|
953
|
+
readonly template: PaginaTemplate<"/minhas-paginas/mestre">;
|
|
954
|
+
readonly hrefTemplate: "/minhas-paginas/mestre";
|
|
955
|
+
readonly href: "/minhas-paginas/mestre";
|
|
956
|
+
};
|
|
957
|
+
};
|
|
958
|
+
}, {
|
|
959
|
+
readonly titulo: "Administrador";
|
|
960
|
+
readonly destino: {
|
|
961
|
+
readonly pagina: {
|
|
962
|
+
readonly aventura: PaginaDef<"/minhas-paginas/admin/aventura/[id]">;
|
|
963
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/admin/aventuras">;
|
|
964
|
+
readonly dashboardWs: PaginaDef<"/minhas-paginas/admin/dashboard-ws">;
|
|
965
|
+
readonly sessao: PaginaDef<"/minhas-paginas/admin/sessao/[id]">;
|
|
966
|
+
readonly uploads: PaginaDef<"/minhas-paginas/admin/uploads">;
|
|
967
|
+
readonly variaveisAmbiente: PaginaDef<"/minhas-paginas/admin/variaveis-ambiente">;
|
|
968
|
+
readonly label: string;
|
|
969
|
+
readonly comCabecalho?: true;
|
|
970
|
+
readonly acesso?: AcessoPagina;
|
|
971
|
+
readonly template: PaginaTemplate<"/minhas-paginas/admin">;
|
|
972
|
+
readonly hrefTemplate: "/minhas-paginas/admin";
|
|
973
|
+
readonly href: "/minhas-paginas/admin";
|
|
974
|
+
};
|
|
975
|
+
};
|
|
976
|
+
}];
|
|
977
|
+
}, {
|
|
978
|
+
readonly titulo: "Personagens";
|
|
979
|
+
readonly destino: {
|
|
980
|
+
readonly pagina: PaginaDef<"/personagens">;
|
|
981
|
+
};
|
|
982
|
+
}, {
|
|
983
|
+
readonly titulo: "Jogue Agora!";
|
|
984
|
+
readonly destino: {
|
|
985
|
+
readonly pagina: {
|
|
986
|
+
readonly jogador: PaginaDef<"/jogo/jogador">;
|
|
987
|
+
readonly mestre: {
|
|
988
|
+
readonly sessoesMestre: PaginaDef<"/jogo/mestre/sessoes-mestre">;
|
|
989
|
+
};
|
|
990
|
+
readonly admin: {
|
|
991
|
+
readonly gerenciarSalas: PaginaDef<"/jogo/admin/gerenciar-salas">;
|
|
992
|
+
};
|
|
993
|
+
readonly emJogo: PaginaDef<"/jogo/em-jogo">;
|
|
994
|
+
readonly label: string;
|
|
995
|
+
readonly comCabecalho?: true;
|
|
996
|
+
readonly acesso?: AcessoPagina;
|
|
997
|
+
readonly template: PaginaTemplate<"/jogo">;
|
|
998
|
+
readonly hrefTemplate: "/jogo";
|
|
999
|
+
readonly href: "/jogo";
|
|
1000
|
+
};
|
|
1001
|
+
};
|
|
1002
|
+
}, {
|
|
1003
|
+
readonly titulo: "Assistir";
|
|
1004
|
+
readonly destino: {
|
|
1005
|
+
readonly pagina: PaginaDef<"/aventuras">;
|
|
1006
|
+
};
|
|
1007
|
+
}, {
|
|
1008
|
+
readonly titulo: "Sessão Ao Vivo";
|
|
1009
|
+
readonly destino: {
|
|
1010
|
+
readonly pagina: PaginaDef<"/sessao-aovivo">;
|
|
1011
|
+
};
|
|
1012
|
+
}, {
|
|
1013
|
+
readonly titulo: "Hall";
|
|
1014
|
+
readonly destino: {
|
|
1015
|
+
readonly pagina: PaginaDef<"/minha-pagina">;
|
|
1016
|
+
};
|
|
1017
|
+
}, {
|
|
1018
|
+
readonly titulo: "Definições";
|
|
1019
|
+
readonly destino: {
|
|
1020
|
+
readonly pagina: PaginaDef<"/definicoes/[[...slug]]">;
|
|
1021
|
+
readonly params: {
|
|
1022
|
+
readonly slug: [];
|
|
1023
|
+
};
|
|
1024
|
+
};
|
|
1025
|
+
}, {
|
|
1026
|
+
readonly titulo: "Dicas";
|
|
1027
|
+
readonly destino: {
|
|
1028
|
+
readonly pagina: PaginaDef<"/dicas/[[...slug]]">;
|
|
1029
|
+
readonly params: {
|
|
1030
|
+
readonly slug: [];
|
|
1031
|
+
};
|
|
1032
|
+
};
|
|
1033
|
+
}];
|
|
1034
|
+
declare function filtrarMenuPorAcesso(menu: readonly ItemMenu[], ctx: CtxAcesso): ItemMenu[];
|
|
897
1035
|
interface MensagemChatRecebida {
|
|
898
1036
|
salaId: string;
|
|
899
1037
|
idUsuario: number;
|
|
@@ -1446,4 +1584,4 @@ declare const Eventos_EnviaERecebe: {
|
|
|
1446
1584
|
};
|
|
1447
1585
|
};
|
|
1448
1586
|
};
|
|
1449
|
-
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, Brand, ExtrairParamsDoTemplate, PaginaParamsDoTemplate, PaginaInfo, PaginaTemplate, PaginaDef, PaginaParams, montarHref, pagina, PAGINAS, Folhas, PaginaFolha, RequiredKeys, ParamsProps, PaginaDestino, 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 };
|
|
1587
|
+
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, Brand, ExtrairParamsDoTemplate, PaginaParamsDoTemplate, PaginaInfo, PaginaTemplate, PaginaDef, PaginaParams, montarHref, pagina, PAGINAS, Folhas, PaginaFolha, RequiredKeys, ParamsProps, PaginaDestino, CtxAcesso, DecisaoAcessoPagina, decidirAcessoPagina, ItemMenu, MENU_SWIPER_ESQUERDA, filtrarMenuPorAcesso, 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
|
@@ -99,7 +99,7 @@ const PAGINAS = {
|
|
|
99
99
|
emJogo: pagina('/jogo/em-jogo', { label: 'Em Jogo', acesso: { autenticado: true } }),
|
|
100
100
|
},
|
|
101
101
|
linhaDoTempo: pagina('/linha-do-tempo', { label: 'Linha do Tempo' }),
|
|
102
|
-
minhaPagina: pagina('/minha-pagina', { label: 'Minha Página' }),
|
|
102
|
+
minhaPagina: pagina('/minha-pagina', { label: 'Minha Página', acesso: { autenticado: true } }),
|
|
103
103
|
minhasPaginas: {
|
|
104
104
|
admin: {
|
|
105
105
|
...pagina('/minhas-paginas/admin', { label: 'Administração', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__BURLAR_CAPACIDADES] } }),
|
|
@@ -128,10 +128,70 @@ const PAGINAS = {
|
|
|
128
128
|
minhasDisponibilidades: pagina('/minhas-paginas/minhas-disponibilidades', { label: 'Minhas Disponibilidades', acesso: { autenticado: true } }),
|
|
129
129
|
},
|
|
130
130
|
personagens: pagina('/personagens', { label: 'Personagens', acesso: { autenticado: true } }),
|
|
131
|
-
sessoes: pagina('/sessoes', { label: 'Sessões'
|
|
131
|
+
sessoes: pagina('/sessoes', { label: 'Sessões' }),
|
|
132
132
|
sessaoAovivo: pagina('/sessao-aovivo', { label: 'Sessão Ao Vivo', acesso: { autenticado: true } }),
|
|
133
|
-
sessao: pagina('/sessao/[id]', { label: 'Sessão'
|
|
133
|
+
sessao: pagina('/sessao/[id]', { label: 'Sessão' }),
|
|
134
134
|
};
|
|
135
|
+
function decidirAcessoPagina(acesso, ctx) {
|
|
136
|
+
if (acesso == null)
|
|
137
|
+
return { permitido: true };
|
|
138
|
+
if ('listaDeCapacidadesNecessarias' in acesso) {
|
|
139
|
+
if (!ctx.estaAutenticado)
|
|
140
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: PAGINAS.acessar };
|
|
141
|
+
const lista = acesso.listaDeCapacidadesNecessarias;
|
|
142
|
+
const permitido = Array.isArray(lista) && lista.length > 0 && lista.some((cap) => ctx.verificarCapacidade(cap));
|
|
143
|
+
if (!permitido)
|
|
144
|
+
return { permitido: false, motivo: 'SEM_CAPACIDADE', redirecionarPara: PAGINAS.home };
|
|
145
|
+
return { permitido: true };
|
|
146
|
+
}
|
|
147
|
+
if ('autenticado' in acesso) {
|
|
148
|
+
if (!ctx.estaAutenticado)
|
|
149
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: PAGINAS.acessar };
|
|
150
|
+
return { permitido: true };
|
|
151
|
+
}
|
|
152
|
+
return { permitido: true };
|
|
153
|
+
}
|
|
154
|
+
const MENU_SWIPER_ESQUERDA = [
|
|
155
|
+
{
|
|
156
|
+
titulo: 'Minhas Páginas',
|
|
157
|
+
subItens: [
|
|
158
|
+
{ titulo: 'Jogador', destino: { pagina: PAGINAS.minhasPaginas.jogador } },
|
|
159
|
+
{ titulo: 'Disponibilidades', destino: { pagina: PAGINAS.minhasPaginas.minhasDisponibilidades } },
|
|
160
|
+
{ titulo: 'Mestre', destino: { pagina: PAGINAS.minhasPaginas.mestre } },
|
|
161
|
+
{ titulo: 'Administrador', destino: { pagina: PAGINAS.minhasPaginas.admin } },
|
|
162
|
+
],
|
|
163
|
+
},
|
|
164
|
+
{ titulo: 'Personagens', destino: { pagina: PAGINAS.personagens } },
|
|
165
|
+
{ titulo: 'Jogue Agora!', destino: { pagina: PAGINAS.jogo } },
|
|
166
|
+
{ titulo: 'Assistir', destino: { pagina: PAGINAS.aventuras } },
|
|
167
|
+
{ titulo: 'Sessão Ao Vivo', destino: { pagina: PAGINAS.sessaoAovivo } },
|
|
168
|
+
{ titulo: 'Hall', destino: { pagina: PAGINAS.minhaPagina } },
|
|
169
|
+
{ titulo: 'Definições', destino: { pagina: PAGINAS.definicoes, params: { slug: [] } } },
|
|
170
|
+
{ titulo: 'Dicas', destino: { pagina: PAGINAS.dicas, params: { slug: [] } } },
|
|
171
|
+
];
|
|
172
|
+
function filtrarMenuPorAcesso(menu, ctx) {
|
|
173
|
+
const out = [];
|
|
174
|
+
for (const it of menu) {
|
|
175
|
+
const sub = it.subItens ? filtrarMenuPorAcesso(it.subItens, ctx) : undefined;
|
|
176
|
+
const temSub = sub != null && sub.length > 0;
|
|
177
|
+
if (it.destino) {
|
|
178
|
+
const decisao = decidirAcessoPagina(it.destino.pagina.acesso, ctx);
|
|
179
|
+
if (!decisao.permitido) {
|
|
180
|
+
if (temSub)
|
|
181
|
+
out.push({ titulo: it.titulo, subItens: sub });
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (temSub)
|
|
185
|
+
out.push({ titulo: it.titulo, destino: it.destino, subItens: sub });
|
|
186
|
+
else
|
|
187
|
+
out.push({ titulo: it.titulo, destino: it.destino });
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (temSub)
|
|
191
|
+
out.push({ titulo: it.titulo, subItens: sub });
|
|
192
|
+
}
|
|
193
|
+
return out;
|
|
194
|
+
}
|
|
135
195
|
function isWsErrorResponse(payload) { return !!payload && typeof payload === "object" && payload._wsErro === true; }
|
|
136
196
|
function isWsUnauthorizedErrorResponse(payload) { return isWsErrorResponse(payload) && payload.code === "UNAUTHORIZED"; }
|
|
137
197
|
function wsErro(mensagem, extra) { return { _wsErro: true, mensagem, ...(extra ?? {}) }; }
|
|
@@ -340,4 +400,4 @@ function criarEventosFiltrados(tipo) {
|
|
|
340
400
|
const Eventos_Envia = criarEventosFiltrados('envia');
|
|
341
401
|
const Eventos_Emite = criarEventosFiltrados('emite');
|
|
342
402
|
const Eventos_EnviaERecebe = criarEventosFiltrados('envia-e-recebe');
|
|
343
|
-
export { CAPACIDADES, AuthSession, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, montarHref, pagina, PAGINAS, 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 };
|
|
403
|
+
export { CAPACIDADES, AuthSession, SalaDeJogo_Tipo, SalaDeJogo_Estado, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, montarHref, pagina, PAGINAS, decidirAcessoPagina, MENU_SWIPER_ESQUERDA, filtrarMenuPorAcesso, 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 };
|