types-nora-api 0.0.478 → 0.0.485

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.
Files changed (81) hide show
  1. package/dist/api/graphql/core/index.d.ts +19 -1
  2. package/dist/api/graphql/core/index.js +21 -21
  3. package/dist/api/graphql/leituras/Arquivo/index.d.ts +33 -4
  4. package/dist/api/graphql/leituras/Arquivo/index.js +29 -0
  5. package/dist/api/graphql/leituras/ArquivoTipadoArte/index.d.ts +11 -5
  6. package/dist/api/graphql/leituras/ArquivoTipadoArte/index.js +6 -0
  7. package/dist/api/graphql/leituras/ArquivoTipadoInsignia/index.d.ts +45 -0
  8. package/dist/api/graphql/leituras/ArquivoTipadoInsignia/index.js +68 -0
  9. package/dist/api/graphql/leituras/ArquivoTipadoMusica/index.d.ts +46 -0
  10. package/dist/api/graphql/leituras/ArquivoTipadoMusica/index.js +70 -0
  11. package/dist/api/graphql/leituras/Aventura/index.d.ts +10 -4
  12. package/dist/api/graphql/leituras/Aventura/index.js +6 -0
  13. package/dist/api/graphql/leituras/CapacidadeInata/index.d.ts +41 -0
  14. package/dist/api/graphql/leituras/CapacidadeInata/index.js +61 -0
  15. package/dist/api/graphql/leituras/ChaveNovoAvatar/index.d.ts +13 -4
  16. package/dist/api/graphql/leituras/ChaveNovoAvatar/index.js +9 -0
  17. package/dist/api/graphql/leituras/CustomizacaoUsuario/index.d.ts +41 -0
  18. package/dist/api/graphql/leituras/CustomizacaoUsuario/index.js +56 -0
  19. package/dist/api/graphql/leituras/DetalheArquivoInterno/index.d.ts +9 -4
  20. package/dist/api/graphql/leituras/DetalheArquivoInterno/index.js +5 -0
  21. package/dist/api/graphql/leituras/Emblema/index.d.ts +19 -4
  22. package/dist/api/graphql/leituras/Emblema/index.js +15 -0
  23. package/dist/api/graphql/leituras/EventoUsuario/index.d.ts +61 -0
  24. package/dist/api/graphql/leituras/EventoUsuario/index.js +76 -0
  25. package/dist/api/graphql/leituras/GrupoAventura/index.d.ts +26 -4
  26. package/dist/api/graphql/leituras/GrupoAventura/index.js +22 -0
  27. package/dist/api/graphql/leituras/Habilidade/index.d.ts +49 -0
  28. package/dist/api/graphql/leituras/Habilidade/index.js +73 -0
  29. package/dist/api/graphql/leituras/HabilidadeEspecial/index.d.ts +56 -0
  30. package/dist/api/graphql/leituras/HabilidadeEspecial/index.js +79 -0
  31. package/dist/api/graphql/leituras/HabilidadePericia/index.d.ts +67 -0
  32. package/dist/api/graphql/leituras/HabilidadePericia/index.js +101 -0
  33. package/dist/api/graphql/leituras/PatentePericia/index.d.ts +40 -0
  34. package/dist/api/graphql/leituras/PatentePericia/index.js +58 -0
  35. package/dist/api/graphql/leituras/Pericia/index.d.ts +40 -0
  36. package/dist/api/graphql/leituras/Pericia/index.js +58 -0
  37. package/dist/api/graphql/leituras/Personagem/index.d.ts +30 -4
  38. package/dist/api/graphql/leituras/Personagem/index.js +26 -0
  39. package/dist/api/graphql/leituras/SerDetalhe/index.d.ts +63 -0
  40. package/dist/api/graphql/leituras/SerDetalhe/index.js +97 -0
  41. package/dist/api/graphql/leituras/SerRegistro/index.d.ts +50 -0
  42. package/dist/api/graphql/leituras/SerRegistro/index.js +76 -0
  43. package/dist/api/graphql/leituras/SerTipadoJogavel/index.d.ts +50 -0
  44. package/dist/api/graphql/leituras/SerTipadoJogavel/index.js +77 -0
  45. package/dist/api/graphql/leituras/SerTipadoNaoJogavel/index.d.ts +47 -0
  46. package/dist/api/graphql/leituras/SerTipadoNaoJogavel/index.js +72 -0
  47. package/dist/api/graphql/leituras/Sessao/index.d.ts +12 -4
  48. package/dist/api/graphql/leituras/Sessao/index.js +8 -0
  49. package/dist/api/graphql/leituras/TipoArquivo/index.d.ts +11 -4
  50. package/dist/api/graphql/leituras/TipoArquivo/index.js +7 -0
  51. package/dist/api/graphql/leituras/TipoHabilidade/index.d.ts +37 -0
  52. package/dist/api/graphql/leituras/TipoHabilidade/index.js +55 -0
  53. package/dist/api/graphql/leituras/TipoPersonagem/index.d.ts +12 -4
  54. package/dist/api/graphql/leituras/TipoPersonagem/index.js +8 -0
  55. package/dist/api/graphql/leituras/TipoSer/index.d.ts +37 -0
  56. package/dist/api/graphql/leituras/TipoSer/index.js +55 -0
  57. package/dist/api/graphql/leituras/Tutorial/index.d.ts +70 -0
  58. package/dist/api/graphql/leituras/Tutorial/index.js +94 -0
  59. package/dist/api/graphql/leituras/Usuario/index.d.ts +26 -4
  60. package/dist/api/graphql/leituras/Usuario/index.js +27 -1
  61. package/dist/api/graphql/leituras/UsuarioTutorial/index.d.ts +62 -0
  62. package/dist/api/graphql/leituras/UsuarioTutorial/index.js +89 -0
  63. package/dist/api/graphql/leituras/index.d.ts +72 -0
  64. package/dist/api/graphql/leituras/index.js +72 -0
  65. package/dist/api/rest/index.d.ts +82 -3
  66. package/dist/api/rest/index.js +104 -2
  67. package/dist/dominio/index.d.ts +110 -37
  68. package/dist/dominio/index.js +33 -11
  69. package/dist/dtos/index.d.ts +819 -60
  70. package/dist/dtos/index.js +32 -1
  71. package/dist/menus/index.d.ts +53 -20
  72. package/dist/menus/index.js +54 -2
  73. package/dist/paginas/index.d.ts +56 -2
  74. package/dist/paginas/index.js +78 -48
  75. package/dist/shared/index.d.ts +164 -2
  76. package/dist/shared/index.js +167 -1
  77. package/dist/uploads/index.d.ts +3 -2
  78. package/dist/uploads/index.js +11 -3
  79. package/dist/ws/index.d.ts +925 -6
  80. package/dist/ws/index.js +164 -2
  81. package/package.json +1 -1
@@ -27,6 +27,13 @@ const ARQUIVO_UPLOAD_DEFINICOES = {
27
27
  { nome: 'arquivo', obrigatorio: true, multiplicidade: 'unico' },
28
28
  ],
29
29
  },
30
+ [TIPOS_ARQUIVO.MUSICA.id]: {
31
+ tipoArquivoId: TIPOS_ARQUIVO.MUSICA.id,
32
+ camposExtras: [],
33
+ arquivos: [
34
+ { nome: 'arquivo', obrigatorio: true, multiplicidade: 'unico' },
35
+ ],
36
+ },
30
37
  [TIPOS_ARQUIVO.ITENS_EMBLEMAS.id]: {
31
38
  tipoArquivoId: TIPOS_ARQUIVO.ITENS_EMBLEMAS.id,
32
39
  camposExtras: [
@@ -72,6 +79,21 @@ class AuthSession {
72
79
  this.json = json;
73
80
  }
74
81
  }
82
+ // Etapa 16: SSOT tipado dos passos do tutorial inicial da Central. Backend define; types-nora-api gera; frontend executa.
83
+ const CHAVE_TUTORIAL_CENTRAL = 'central_eventos_minima_v1';
84
+ const TUTORIAIS_USUARIO = {
85
+ [CHAVE_TUTORIAL_CENTRAL]: [
86
+ { id: 'apresentacao', titulo: 'Central de eventos', mensagem: 'Por aqui você acompanha avisos, pendências e orientações da plataforma.', alvoVisual: 'eventos_usuario.central.botao', textoAuxiliar: 'É por este botão que você abre a central quando quiser.' },
87
+ { id: 'conteudo', titulo: 'O que você encontra aqui', mensagem: 'A central reúne avisos, pendências e orientações importantes — tudo em um só lugar.', alvoVisual: null, textoAuxiliar: null },
88
+ { id: 'encerramento', titulo: 'Tudo certo!', mensagem: 'Você pode consultar seus eventos sempre que quiser por este acesso.', alvoVisual: null, textoAuxiliar: null },
89
+ ],
90
+ };
91
+ // Etapa 8: largura percentual padrão do Tutorial — fonte única (backend + frontend via types-nora-api). Novo Tutorial inicia com este valor; registros antigos sem largura são lidos/normalizados com ele.
92
+ const LARGURA_PERCENTUAL_PADRAO_TUTORIAL = 60;
93
+ // Etapa 15: chave oficial do Tutorial de Boas-Vindas (fonte única). O desbloqueio automático pós-cadastro Discord busca o Tutorial ATIVO por esta chave.
94
+ const CHAVE_TUTORIAL_BOAS_VINDAS = 'boas_vindas';
95
+ // Etapa 15: origem do vínculo criado no desbloqueio automático pós-cadastro/vínculo Discord (auditoria simples; OrigemUsuarioTutorial é tipo aberto).
96
+ const ORIGEM_TUTORIAL_POS_CADASTRO_DISCORD = 'pos_cadastro_discord';
75
97
  //
76
98
  var ParticipanteSessao_Tipo;
77
99
  (function (ParticipanteSessao_Tipo) {
@@ -113,4 +135,13 @@ var SalaDeJogo_TipoParticipante;
113
135
  SalaDeJogo_TipoParticipante["NARRADOR"] = "Narrador";
114
136
  SalaDeJogo_TipoParticipante["JOGADOR"] = "Jogador";
115
137
  })(SalaDeJogo_TipoParticipante || (SalaDeJogo_TipoParticipante = {}));
116
- export { ARQUIVO_UPLOAD_DEFINICOES, AuthSession, ParticipanteSessao_Tipo, RegistroPixProvedor, SalaDeJogo_Estado, SalaDeJogo_Tipo, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, TIPO_SESSAO_LABEL, TipoSessao, TipoVinculoSessaoJogador, criaCaminhoArquivoArte, criaCaminhoArquivoAvatar, obtemDefinicaoUploadTipoArquivo };
138
+ const LOGICA_COMPONIVEL_VAZIA = { versao: 1, acoes: [], modificadores: [] };
139
+ const LIMITES_ANALISE_TESTE_PERICIA = {
140
+ quantidadeCenariosMaxima: 8,
141
+ quantidadeResultadosAlvoMaxima: 12,
142
+ tamanhoMaximoIdCenario: 80,
143
+ valorAtributoAbsolutoMaximo: 1000,
144
+ modificadorAbsolutoMaximo: 100000,
145
+ resultadoAlvoAbsolutoMaximo: 1000000,
146
+ };
147
+ export { ARQUIVO_UPLOAD_DEFINICOES, AuthSession, CHAVE_TUTORIAL_BOAS_VINDAS, CHAVE_TUTORIAL_CENTRAL, LARGURA_PERCENTUAL_PADRAO_TUTORIAL, LIMITES_ANALISE_TESTE_PERICIA, LOGICA_COMPONIVEL_VAZIA, ORIGEM_TUTORIAL_POS_CADASTRO_DISCORD, ParticipanteSessao_Tipo, RegistroPixProvedor, SalaDeJogo_Estado, SalaDeJogo_Tipo, SalaDeJogo_TipoMestre, SalaDeJogo_TipoParticipante, TIPO_SESSAO_LABEL, TUTORIAIS_USUARIO, TipoSessao, TipoVinculoSessaoJogador, criaCaminhoArquivoArte, criaCaminhoArquivoAvatar, obtemDefinicaoUploadTipoArquivo };
@@ -78,11 +78,12 @@ declare const MENUS_INTERNOS: {
78
78
  readonly PAGINAS: {
79
79
  readonly jogo: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
80
80
  readonly minhasPaginas: {
81
- readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode];
82
- readonly admin: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
81
+ readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode];
82
+ readonly admin: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
83
83
  readonly moderador: readonly [MenuItemNode, MenuItemNode];
84
+ readonly gameDesigner: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
84
85
  readonly mestre: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
85
- readonly artista: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
86
+ readonly artista: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
86
87
  readonly jogador: readonly [MenuGrupoNode];
87
88
  readonly minhasConfiguracoes: readonly [MenuItemNode, MenuItemNode];
88
89
  };
@@ -96,6 +97,7 @@ declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
96
97
  readonly jogo: {
97
98
  readonly admin: {
98
99
  readonly gerenciarSalas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
100
+ readonly auditoriaSalaDeJogo: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
99
101
  };
100
102
  readonly mestre: {
101
103
  readonly sessoesMestre: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
@@ -103,19 +105,22 @@ declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
103
105
  readonly jogador: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
104
106
  };
105
107
  readonly minhasPaginas: {
106
- readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode];
108
+ readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode];
107
109
  readonly admin: {
108
- readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
109
- readonly aventura: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
110
- readonly aventuras: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
111
- readonly dashboardWs: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
112
- readonly sessao: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
113
- readonly variaveisAmbiente: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
114
- readonly dashboardPermissoes: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
115
- readonly dashboardPermissoesUsuarios: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
116
- readonly deletarArquivosAbsoluto: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
117
- readonly deletarArquivosFileServer: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
118
- readonly uploadRecursosInternos: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
110
+ readonly menu: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
111
+ readonly aventura: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
112
+ readonly aventuras: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
113
+ readonly dashboardWs: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
114
+ readonly sessao: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
115
+ readonly variaveisAmbiente: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
116
+ readonly dashboardPermissoes: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
117
+ readonly dashboardPermissoesUsuarios: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
118
+ readonly deletarArquivosAbsoluto: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
119
+ readonly deletarArquivosFileServer: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
120
+ readonly uploadRecursosInternos: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
121
+ readonly uploadMusica: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
122
+ readonly tutoriais: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
123
+ readonly disparosEventosUsuario: readonly [MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
119
124
  };
120
125
  readonly moderador: {
121
126
  readonly menu: readonly [MenuItemNode, MenuItemNode];
@@ -123,6 +128,28 @@ declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
123
128
  readonly gerenciarEmblemas: readonly [MenuItemNode, MenuItemNode];
124
129
  readonly gerenciarConquistas: readonly [MenuItemNode, MenuItemNode];
125
130
  };
131
+ readonly gameDesigner: {
132
+ readonly menu: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
133
+ readonly criar: {
134
+ readonly seres: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
135
+ readonly capacidadesInatas: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
136
+ readonly habilidadesPericia: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
137
+ readonly habilidadesEspeciais: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
138
+ readonly configuracaoHabilidades: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
139
+ };
140
+ readonly configurar: {
141
+ readonly configuracaoTestePericia: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
142
+ readonly configuracaoPatentesTestePericia: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
143
+ };
144
+ readonly analisar: {
145
+ readonly simuladorDistribuicoesTeste: {
146
+ readonly tipo: "vazio";
147
+ };
148
+ readonly simuladorTestePericiaUdm: {
149
+ readonly tipo: "vazio";
150
+ };
151
+ };
152
+ };
126
153
  readonly mestre: {
127
154
  readonly menu: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
128
155
  readonly aventuras: readonly [MenuGrupoNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
@@ -143,14 +170,17 @@ declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
143
170
  };
144
171
  };
145
172
  readonly artista: {
146
- readonly menu: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
147
- readonly minhasImagens: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
148
- readonly adicionarImagem: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
173
+ readonly menu: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
174
+ readonly minhasImagens: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
175
+ readonly adicionarImagem: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
149
176
  readonly avatares: {
150
- readonly gerenciarAvatares: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
177
+ readonly gerenciarAvatares: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
151
178
  };
152
179
  readonly emblemas: {
153
- readonly gerenciarEmblemas: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode];
180
+ readonly uploadRecursosEmblemas: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
181
+ };
182
+ readonly insignias: {
183
+ readonly uploadRecursosInsignias: readonly [MenuItemNode, MenuItemNode, MenuGrupoNode, MenuGrupoNode, MenuGrupoNode];
154
184
  };
155
185
  };
156
186
  readonly jogador: {
@@ -174,6 +204,9 @@ declare const MENUS_INTERNOS_LAYOUTCONTEXTO: {
174
204
  readonly passeDeJogador: readonly [MenuItemNode, MenuItemNode];
175
205
  };
176
206
  };
207
+ readonly palco: {
208
+ readonly tipo: "vazio";
209
+ };
177
210
  readonly fichas: {
178
211
  readonly tipo: "dinamico";
179
212
  };
@@ -36,18 +36,21 @@ const MENUS_INTERNOS = {
36
36
  jogo: [
37
37
  menuGrupo('Administrador', [
38
38
  menuItem('Salas', { pagina: PAGINAS.jogo.admin.gerenciarSalas }),
39
+ menuItem('Auditoria de Acoes', { pagina: PAGINAS.jogo.admin.auditoriaSalaDeJogo }),
39
40
  ]),
40
41
  menuGrupo('Mestre', [
41
42
  menuItem('Sessões', { pagina: PAGINAS.jogo.mestre.sessoesMestre }),
42
43
  ]),
43
44
  menuGrupo('Jogador', [
44
45
  menuItem('Início', { pagina: PAGINAS.jogo.jogador }),
46
+ menuItem('Modo Solo', { pagina: PAGINAS.jogo.jogador.solo }),
45
47
  ]),
46
48
  ],
47
49
  minhasPaginas: {
48
50
  menu: [
49
51
  menuItem('Administrador', { pagina: PAGINAS.minhasPaginas.admin }),
50
52
  menuItem('Moderador', { pagina: PAGINAS.minhasPaginas.moderador }),
53
+ menuItem('Game Designer', { pagina: PAGINAS.minhasPaginas.gameDesigner }),
51
54
  menuItem('Mestre', { pagina: PAGINAS.minhasPaginas.mestre }),
52
55
  menuItem('Artista', { pagina: PAGINAS.minhasPaginas.artista }),
53
56
  menuItem('Jogador', { pagina: PAGINAS.minhasPaginas.jogador }),
@@ -58,6 +61,8 @@ const MENUS_INTERNOS = {
58
61
  menuItem('Variáveis de Ambiente', { pagina: PAGINAS.minhasPaginas.admin.variaveisAmbiente }),
59
62
  menuItem('Aventuras', { pagina: PAGINAS.minhasPaginas.admin.aventuras }),
60
63
  menuItem('Dashboard WebSocket', { pagina: PAGINAS.minhasPaginas.admin.dashboardWs }),
64
+ menuItem('Tutoriais', { pagina: PAGINAS.minhasPaginas.admin.tutoriais }),
65
+ menuItem('Disparos de Eventos de Usuário', { pagina: PAGINAS.minhasPaginas.admin.disparosEventosUsuario }),
61
66
  menuGrupo('Permissões', [
62
67
  menuItem('Permissões', { pagina: PAGINAS.minhasPaginas.admin.dashboardPermissoes }),
63
68
  menuItem('Permissões de Usuários', { pagina: PAGINAS.minhasPaginas.admin.dashboardPermissoesUsuarios }),
@@ -66,12 +71,30 @@ const MENUS_INTERNOS = {
66
71
  menuItem('Deletar Arquivos por Caminho', { pagina: PAGINAS.minhasPaginas.admin.deletarArquivosAbsoluto }),
67
72
  menuItem('Deletar Arquivos', { pagina: PAGINAS.minhasPaginas.admin.deletarArquivosFileServer }),
68
73
  menuItem('Upload de Recursos Internos', { pagina: PAGINAS.minhasPaginas.admin.uploadRecursosInternos }),
74
+ menuItem('Upload de Música', { pagina: PAGINAS.minhasPaginas.admin.uploadMusica }),
69
75
  ]),
70
76
  ],
71
77
  moderador: [
72
78
  menuItem('Imagens pendentes de Aprovação', { pagina: PAGINAS.minhasPaginas.moderador.dashboardAprovacaoImagensArtista }),
73
79
  menuItem('Gerenciar Emblemas', { pagina: PAGINAS.minhasPaginas.moderador.gerenciarEmblemas }),
74
80
  ],
81
+ gameDesigner: [
82
+ menuGrupo('Criar', [
83
+ menuItem('Seres', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.seres }),
84
+ menuItem('Capacidades Inatas', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.capacidadesInatas }),
85
+ menuItem('Habilidades de Perícia', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.habilidadesPericia }),
86
+ menuItem('Habilidades Especiais', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.habilidadesPericia }),
87
+ menuItem('Configuração de Habilidades', { pagina: PAGINAS.minhasPaginas.gameDesigner.criar.configuracaoHabilidades }),
88
+ ]),
89
+ menuGrupo('Configurar', [
90
+ menuItem('Configuração de Teste de Perícia', { pagina: PAGINAS.minhasPaginas.gameDesigner.configurar.configuracaoTestePericia }),
91
+ menuItem('Configuração de Patentes de Perícia', { pagina: PAGINAS.minhasPaginas.gameDesigner.configurar.configuracaoPatentesTestePericia }),
92
+ ]),
93
+ menuGrupo('Analisar', [
94
+ menuItem('Simulador de Distribuições de Teste', { pagina: PAGINAS.minhasPaginas.gameDesigner.analisar.simuladorDistribuicoesTeste }),
95
+ menuItem('Simulador de Teste de Perícia UDM', { pagina: PAGINAS.minhasPaginas.gameDesigner.analisar.simuladorTestePericiaUdm }),
96
+ ]),
97
+ ],
75
98
  mestre: [
76
99
  menuGrupo('Mestre', [
77
100
  menuItem('Início', { pagina: PAGINAS.minhasPaginas.mestre }),
@@ -101,7 +124,10 @@ const MENUS_INTERNOS = {
101
124
  menuItem('Gerenciar Avatares', { pagina: PAGINAS.minhasPaginas.artista.avatares.gerenciarAvatares }),
102
125
  ]),
103
126
  menuGrupo('Emblemas', [
104
- menuItem('Gerenciar Emblemas', { pagina: PAGINAS.minhasPaginas.artista.emblemas.gerenciarEmblemas }),
127
+ menuItem('Upload de Emblemas', { pagina: PAGINAS.minhasPaginas.artista.emblemas.uploadRecursosEmblemas }),
128
+ ]),
129
+ menuGrupo('Insígnias', [
130
+ menuItem('Upload de Insígnias', { pagina: PAGINAS.minhasPaginas.artista.insignias.uploadRecursosInsignias }),
105
131
  ]),
106
132
  ],
107
133
  jogador: [
@@ -124,6 +150,7 @@ const MENUS_INTERNOS_LAYOUTCONTEXTO = {
124
150
  jogo: {
125
151
  admin: {
126
152
  gerenciarSalas: MENUS_INTERNOS.PAGINAS.jogo,
153
+ auditoriaSalaDeJogo: MENUS_INTERNOS.PAGINAS.jogo,
127
154
  },
128
155
  mestre: {
129
156
  sessoesMestre: MENUS_INTERNOS.PAGINAS.jogo,
@@ -144,6 +171,9 @@ const MENUS_INTERNOS_LAYOUTCONTEXTO = {
144
171
  deletarArquivosAbsoluto: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
145
172
  deletarArquivosFileServer: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
146
173
  uploadRecursosInternos: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
174
+ uploadMusica: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
175
+ tutoriais: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
176
+ disparosEventosUsuario: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
147
177
  },
148
178
  moderador: {
149
179
  menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
@@ -151,6 +181,24 @@ const MENUS_INTERNOS_LAYOUTCONTEXTO = {
151
181
  gerenciarEmblemas: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
152
182
  gerenciarConquistas: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
153
183
  },
184
+ gameDesigner: {
185
+ menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
186
+ criar: {
187
+ seres: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
188
+ capacidadesInatas: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
189
+ habilidadesPericia: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
190
+ habilidadesEspeciais: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
191
+ configuracaoHabilidades: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
192
+ },
193
+ configurar: {
194
+ configuracaoTestePericia: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
195
+ configuracaoPatentesTestePericia: MENUS_INTERNOS.PAGINAS.minhasPaginas.gameDesigner,
196
+ },
197
+ analisar: {
198
+ simuladorDistribuicoesTeste: menuVazio(),
199
+ simuladorTestePericiaUdm: menuVazio(),
200
+ },
201
+ },
154
202
  mestre: {
155
203
  menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
156
204
  aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
@@ -174,7 +222,10 @@ const MENUS_INTERNOS_LAYOUTCONTEXTO = {
174
222
  gerenciarAvatares: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
175
223
  },
176
224
  emblemas: {
177
- gerenciarEmblemas: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
225
+ uploadRecursosEmblemas: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
226
+ },
227
+ insignias: {
228
+ uploadRecursosInsignias: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
178
229
  },
179
230
  },
180
231
  jogador: {
@@ -192,6 +243,7 @@ const MENUS_INTERNOS_LAYOUTCONTEXTO = {
192
243
  passeDeJogador: MENUS_INTERNOS.PAGINAS.minhasPaginas.minhasConfiguracoes,
193
244
  },
194
245
  },
246
+ palco: menuVazio(),
195
247
  fichas: menuDinamico(),
196
248
  personagens: menuDinamico(),
197
249
  sessoes: menuVazio(),
@@ -21,6 +21,7 @@ type PaginaInfoBase = {
21
21
  readonly comCabecalho?: true;
22
22
  readonly acesso?: AcessoPagina;
23
23
  readonly acessoPorMenuInterno?: true;
24
+ readonly prioridadePresenca?: number;
24
25
  };
25
26
  type PaginaInfoComLayoutContextualizado = PaginaInfoBase & {
26
27
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
@@ -80,11 +81,23 @@ declare const PAGINAS: {
80
81
  readonly jogo: {
81
82
  readonly admin: {
82
83
  readonly gerenciarSalas: PaginaDef<"/jogo/admin/gerenciar-salas", PaginaInfoComLayoutContextualizado>;
84
+ readonly auditoriaSalaDeJogo: PaginaDef<"/jogo/admin/auditoria-sala-de-jogo", PaginaInfoComLayoutContextualizado>;
83
85
  };
84
86
  readonly mestre: {
85
87
  readonly sessoesMestre: PaginaDef<"/jogo/mestre/sessoes-mestre", PaginaInfoComLayoutContextualizado>;
86
88
  };
87
- readonly jogador: PaginaDef<"/jogo/jogador", PaginaInfoComLayoutContextualizado>;
89
+ readonly jogador: {
90
+ readonly solo: PaginaDef<"/jogo/jogador/solo", PaginaInfoBase>;
91
+ readonly label: string;
92
+ readonly comCabecalho?: true;
93
+ readonly acesso?: AcessoPagina;
94
+ readonly acessoPorMenuInterno?: true;
95
+ readonly prioridadePresenca?: number;
96
+ readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
97
+ readonly template: PaginaTemplate<"/jogo/jogador">;
98
+ readonly hrefTemplate: "/jogo/jogador";
99
+ readonly href: "/jogo/jogador";
100
+ };
88
101
  readonly emJogo: PaginaDef<"/jogo/em-jogo", PaginaInfoBase>;
89
102
  };
90
103
  readonly linhaDoTempo: PaginaDef<"/linha-do-tempo", PaginaInfoBase>;
@@ -101,10 +114,14 @@ declare const PAGINAS: {
101
114
  readonly deletarArquivosAbsoluto: PaginaDef<"/minhas-paginas/admin/deletar-arquivos-absoluto", PaginaInfoComLayoutContextualizado>;
102
115
  readonly deletarArquivosFileServer: PaginaDef<"/minhas-paginas/admin/deletar-arquivos-file-server", PaginaInfoComLayoutContextualizado>;
103
116
  readonly uploadRecursosInternos: PaginaDef<"/minhas-paginas/admin/uploads-recursos-internos", PaginaInfoComLayoutContextualizado>;
117
+ readonly uploadMusica: PaginaDef<"/minhas-paginas/admin/upload-musica", PaginaInfoComLayoutContextualizado>;
118
+ readonly tutoriais: PaginaDef<"/minhas-paginas/admin/tutoriais", PaginaInfoComLayoutContextualizado>;
119
+ readonly disparosEventosUsuario: PaginaDef<"/minhas-paginas/admin/disparos-eventos-usuario", PaginaInfoComLayoutContextualizado>;
104
120
  readonly label: string;
105
121
  readonly comCabecalho?: true;
106
122
  readonly acesso?: AcessoPagina;
107
123
  readonly acessoPorMenuInterno?: true;
124
+ readonly prioridadePresenca?: number;
108
125
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
109
126
  readonly template: PaginaTemplate<"/minhas-paginas/admin">;
110
127
  readonly hrefTemplate: "/minhas-paginas/admin";
@@ -118,11 +135,38 @@ declare const PAGINAS: {
118
135
  readonly comCabecalho?: true;
119
136
  readonly acesso?: AcessoPagina;
120
137
  readonly acessoPorMenuInterno?: true;
138
+ readonly prioridadePresenca?: number;
121
139
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
122
140
  readonly template: PaginaTemplate<"/minhas-paginas/moderador">;
123
141
  readonly hrefTemplate: "/minhas-paginas/moderador";
124
142
  readonly href: "/minhas-paginas/moderador";
125
143
  };
144
+ readonly gameDesigner: {
145
+ readonly criar: {
146
+ readonly seres: PaginaDef<"/minhas-paginas/game-designer/criar/seres", PaginaInfoComLayoutContextualizado>;
147
+ readonly capacidadesInatas: PaginaDef<"/minhas-paginas/game-designer/criar/capacidades-inatas", PaginaInfoComLayoutContextualizado>;
148
+ readonly habilidadesPericia: PaginaDef<"/minhas-paginas/game-designer/criar/habilidades-pericia", PaginaInfoComLayoutContextualizado>;
149
+ readonly habilidadesEspeciais: PaginaDef<"/minhas-paginas/game-designer/criar/habilidades-especiais", PaginaInfoComLayoutContextualizado>;
150
+ readonly configuracaoHabilidades: PaginaDef<"/minhas-paginas/game-designer/criar/configuracao-habilidades", PaginaInfoComLayoutContextualizado>;
151
+ };
152
+ readonly configurar: {
153
+ readonly configuracaoTestePericia: PaginaDef<"/minhas-paginas/game-designer/configurar/configuracao-teste-pericia", PaginaInfoComLayoutContextualizado>;
154
+ readonly configuracaoPatentesTestePericia: PaginaDef<"/minhas-paginas/game-designer/configurar/configuracao-patentes-teste-pericia", PaginaInfoComLayoutContextualizado>;
155
+ };
156
+ readonly analisar: {
157
+ readonly simuladorDistribuicoesTeste: PaginaDef<"/minhas-paginas/game-designer/analisar/distribuicoes-testes", PaginaInfoComLayoutContextualizado>;
158
+ readonly simuladorTestePericiaUdm: PaginaDef<"/minhas-paginas/game-designer/analisar/testes-pericia-udm", PaginaInfoComLayoutContextualizado>;
159
+ };
160
+ readonly label: string;
161
+ readonly comCabecalho?: true;
162
+ readonly acesso?: AcessoPagina;
163
+ readonly acessoPorMenuInterno?: true;
164
+ readonly prioridadePresenca?: number;
165
+ readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
166
+ readonly template: PaginaTemplate<"/minhas-paginas/game-designer">;
167
+ readonly hrefTemplate: "/minhas-paginas/game-designer";
168
+ readonly href: "/minhas-paginas/game-designer";
169
+ };
126
170
  readonly mestre: {
127
171
  readonly aventuras: PaginaDef<"/minhas-paginas/mestre/aventuras", PaginaInfoComLayoutContextualizado>;
128
172
  readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/sessoes-unicas", PaginaInfoComLayoutContextualizado>;
@@ -140,6 +184,7 @@ declare const PAGINAS: {
140
184
  readonly comCabecalho?: true;
141
185
  readonly acesso?: AcessoPagina;
142
186
  readonly acessoPorMenuInterno?: true;
187
+ readonly prioridadePresenca?: number;
143
188
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
144
189
  readonly template: PaginaTemplate<"/minhas-paginas/mestre">;
145
190
  readonly hrefTemplate: "/minhas-paginas/mestre";
@@ -152,12 +197,16 @@ declare const PAGINAS: {
152
197
  readonly gerenciarAvatares: PaginaDef<"/minhas-paginas/artista/avatares", PaginaInfoComLayoutContextualizado>;
153
198
  };
154
199
  readonly emblemas: {
155
- readonly gerenciarEmblemas: PaginaDef<"/minhas-paginas/artista/emblemas", PaginaInfoComLayoutContextualizado>;
200
+ readonly uploadRecursosEmblemas: PaginaDef<"/minhas-paginas/artista/emblemas", PaginaInfoComLayoutContextualizado>;
201
+ };
202
+ readonly insignias: {
203
+ readonly uploadRecursosInsignias: PaginaDef<"/minhas-paginas/artista/insignias", PaginaInfoComLayoutContextualizado>;
156
204
  };
157
205
  readonly label: string;
158
206
  readonly comCabecalho?: true;
159
207
  readonly acesso?: AcessoPagina;
160
208
  readonly acessoPorMenuInterno?: true;
209
+ readonly prioridadePresenca?: number;
161
210
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
162
211
  readonly template: PaginaTemplate<"/minhas-paginas/artista">;
163
212
  readonly hrefTemplate: "/minhas-paginas/artista";
@@ -174,6 +223,7 @@ declare const PAGINAS: {
174
223
  readonly comCabecalho?: true;
175
224
  readonly acesso?: AcessoPagina;
176
225
  readonly acessoPorMenuInterno?: true;
226
+ readonly prioridadePresenca?: number;
177
227
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
178
228
  readonly template: PaginaTemplate<"/minhas-paginas/jogador">;
179
229
  readonly hrefTemplate: "/minhas-paginas/jogador";
@@ -186,6 +236,7 @@ declare const PAGINAS: {
186
236
  readonly comCabecalho?: true;
187
237
  readonly acesso?: AcessoPagina;
188
238
  readonly acessoPorMenuInterno?: true;
239
+ readonly prioridadePresenca?: number;
189
240
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
190
241
  readonly template: PaginaTemplate<"/minhas-paginas/minhas-configuracoes">;
191
242
  readonly hrefTemplate: "/minhas-paginas/minhas-configuracoes";
@@ -195,16 +246,19 @@ declare const PAGINAS: {
195
246
  readonly comCabecalho?: true;
196
247
  readonly acesso?: AcessoPagina;
197
248
  readonly acessoPorMenuInterno?: true;
249
+ readonly prioridadePresenca?: number;
198
250
  readonly layoutContextualizadoInicial: LayoutContextualizadoInicial;
199
251
  readonly template: PaginaTemplate<"/minhas-paginas">;
200
252
  readonly hrefTemplate: "/minhas-paginas";
201
253
  readonly href: "/minhas-paginas";
202
254
  };
255
+ readonly palco: PaginaDef<"/palco", PaginaInfoComLayoutContextualizado>;
203
256
  readonly fichas: PaginaDef<"/fichas", PaginaInfoComLayoutContextualizado>;
204
257
  readonly personagens: PaginaDef<"/personagens", PaginaInfoComLayoutContextualizado>;
205
258
  readonly sessoes: PaginaDef<"/sessoes", PaginaInfoComLayoutContextualizado>;
206
259
  readonly sessaoAovivo: PaginaDef<"/sessao-aovivo", PaginaInfoBase>;
207
260
  readonly assistir: PaginaDef<"/assistir", PaginaInfoComLayoutContextualizado>;
261
+ readonly perfilUsuario: PaginaDef<"perfil-usuario", PaginaInfoBase>;
208
262
  };
209
263
  type Folhas<T> = T extends PaginaDef<string> ? T | Folhas<Omit<T, keyof PaginaDef<string>>> : T extends readonly (infer U)[] ? Folhas<U> : T extends object ? {
210
264
  [K in keyof T]-?: Folhas<NonNullable<T[K]>>;