types-nora-api 0.0.469 → 0.0.472
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/acessos/index.d.ts +8 -0
- package/dist/acessos/index.js +5 -0
- package/dist/api/graphql/index.d.ts +1 -0
- package/dist/api/graphql/index.js +3 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +4 -0
- package/dist/api/rest/index.d.ts +1 -0
- package/dist/api/rest/index.js +3 -0
- package/dist/classes.d.ts +1 -3763
- package/dist/classes.js +2 -1238
- package/dist/dominio/index.d.ts +899 -0
- package/dist/dominio/index.js +237 -0
- package/dist/dtos/index.d.ts +2140 -0
- package/dist/dtos/index.js +363 -0
- package/dist/index.d.ts +9 -1
- package/dist/index.js +11 -1
- package/dist/menus/index.d.ts +127 -0
- package/dist/menus/index.js +279 -0
- package/dist/paginas/index.d.ts +172 -0
- package/dist/paginas/index.js +137 -0
- package/dist/shared/index.d.ts +175 -0
- package/dist/shared/index.js +138 -0
- package/dist/uploads/index.d.ts +47 -0
- package/dist/uploads/index.js +112 -0
- package/dist/ws/index.d.ts +236 -0
- package/dist/ws/index.js +20 -0
- package/package.json +56 -2
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
// AUTO-GENERATED FILE - DO NOT EDIT
|
|
2
|
+
// Contratos de menus
|
|
3
|
+
import { menuDinamico, menuGrupo, menuItem, menuVazio } from '../dtos';
|
|
4
|
+
import { PAGINAS, decidirAcessoPagina } from '../paginas';
|
|
5
|
+
function filtrarMenuPorAcesso(nodes, ctx) {
|
|
6
|
+
const out = [];
|
|
7
|
+
for (const node of nodes) {
|
|
8
|
+
if (node.tipo === 'item') {
|
|
9
|
+
const decisao = decidirAcessoPagina(node.destino.pagina, ctx, { resolverMenuInterno, redirectNaoAutenticado: PAGINAS.acessar, redirectSemCapacidade: PAGINAS.home });
|
|
10
|
+
if (decisao.permitido)
|
|
11
|
+
out.push(node);
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const itensFiltrados = filtrarMenuPorAcesso(node.itens, ctx);
|
|
15
|
+
if (itensFiltrados.length > 0)
|
|
16
|
+
out.push({ tipo: 'grupo', titulo: node.titulo, itens: itensFiltrados });
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
const MENU_PRINCIPAL = [
|
|
21
|
+
menuItem('Minhas Páginas', { pagina: PAGINAS.minhasPaginas }),
|
|
22
|
+
menuItem('Fichas', { pagina: PAGINAS.fichas }),
|
|
23
|
+
menuItem('Personagens', { pagina: PAGINAS.personagens }),
|
|
24
|
+
menuItem('Jogue Agora!', { pagina: PAGINAS.jogo.jogador }),
|
|
25
|
+
menuItem('Assistir', { pagina: PAGINAS.assistir }),
|
|
26
|
+
menuItem('Sessão Ao Vivo', { pagina: PAGINAS.sessaoAovivo }),
|
|
27
|
+
menuItem('Hall', { pagina: PAGINAS.minhaPagina }),
|
|
28
|
+
menuItem('Definições', { pagina: PAGINAS.definicoes, params: { slug: [] } }),
|
|
29
|
+
menuItem('Dicas', { pagina: PAGINAS.dicas, params: { slug: [] } }),
|
|
30
|
+
];
|
|
31
|
+
const MENUS_INTERNOS = {
|
|
32
|
+
PAGINAS: {
|
|
33
|
+
jogo: [
|
|
34
|
+
menuGrupo('Administrador', [
|
|
35
|
+
menuItem('Salas', { pagina: PAGINAS.jogo.admin.gerenciarSalas }),
|
|
36
|
+
]),
|
|
37
|
+
menuGrupo('Mestre', [
|
|
38
|
+
menuItem('Sessões', { pagina: PAGINAS.jogo.mestre.sessoesMestre }),
|
|
39
|
+
]),
|
|
40
|
+
menuGrupo('Jogador', [
|
|
41
|
+
menuItem('Início', { pagina: PAGINAS.jogo.jogador }),
|
|
42
|
+
]),
|
|
43
|
+
],
|
|
44
|
+
minhasPaginas: {
|
|
45
|
+
menu: [
|
|
46
|
+
menuItem('Administrador', { pagina: PAGINAS.minhasPaginas.admin }),
|
|
47
|
+
menuItem('Moderador', { pagina: PAGINAS.minhasPaginas.moderador }),
|
|
48
|
+
menuItem('Mestre', { pagina: PAGINAS.minhasPaginas.mestre }),
|
|
49
|
+
menuItem('Artista', { pagina: PAGINAS.minhasPaginas.artista }),
|
|
50
|
+
menuItem('Jogador', { pagina: PAGINAS.minhasPaginas.jogador }),
|
|
51
|
+
menuItem('Disponibilidades', { pagina: PAGINAS.minhasPaginas.minhasDisponibilidades }),
|
|
52
|
+
menuItem('Configurações', { pagina: PAGINAS.minhasPaginas.minhasConfiguracoes }),
|
|
53
|
+
],
|
|
54
|
+
admin: [
|
|
55
|
+
menuItem('Variáveis de Ambiente', { pagina: PAGINAS.minhasPaginas.admin.variaveisAmbiente }),
|
|
56
|
+
menuItem('Aventuras', { pagina: PAGINAS.minhasPaginas.admin.aventuras }),
|
|
57
|
+
menuItem('Dashboard WebSocket', { pagina: PAGINAS.minhasPaginas.admin.dashboardWs }),
|
|
58
|
+
menuGrupo('Permissões', [
|
|
59
|
+
menuItem('Permissões', { pagina: PAGINAS.minhasPaginas.admin.dashboardPermissoes }),
|
|
60
|
+
menuItem('Permissões de Usuários', { pagina: PAGINAS.minhasPaginas.admin.dashboardPermissoesUsuarios }),
|
|
61
|
+
]),
|
|
62
|
+
menuGrupo('File Server', [
|
|
63
|
+
menuItem('Deletar Arquivos por Caminho', { pagina: PAGINAS.minhasPaginas.admin.deletarArquivosAbsoluto }),
|
|
64
|
+
menuItem('Deletar Arquivos', { pagina: PAGINAS.minhasPaginas.admin.deletarArquivosFileServer }),
|
|
65
|
+
menuItem('Upload de Recursos Internos', { pagina: PAGINAS.minhasPaginas.admin.uploadRecursosInternos }),
|
|
66
|
+
]),
|
|
67
|
+
],
|
|
68
|
+
moderador: [
|
|
69
|
+
menuItem('Imagens pendentes de Aprovação', { pagina: PAGINAS.minhasPaginas.moderador.dashboardAprovacaoImagensArtista }),
|
|
70
|
+
],
|
|
71
|
+
mestre: [
|
|
72
|
+
menuGrupo('Mestre', [
|
|
73
|
+
menuItem('Início', { pagina: PAGINAS.minhasPaginas.mestre }),
|
|
74
|
+
]),
|
|
75
|
+
menuGrupo('Relíquia', [
|
|
76
|
+
menuGrupo('Aventuras', [
|
|
77
|
+
menuItem('Minhas Aventuras', { pagina: PAGINAS.minhasPaginas.mestre.aventuras }),
|
|
78
|
+
menuItem('Rascunhos de Aventuras', { pagina: PAGINAS.minhasPaginas.mestre.rascunhos.aventuras }),
|
|
79
|
+
]),
|
|
80
|
+
menuItem('Personagens', { pagina: PAGINAS.minhasPaginas.mestre.personagens }),
|
|
81
|
+
]),
|
|
82
|
+
menuGrupo('Criatura', [
|
|
83
|
+
menuGrupo('Sessões Únicas', [
|
|
84
|
+
menuItem('Minhas Sessões Únicas', { pagina: PAGINAS.minhasPaginas.mestre.sessoesUnicas }),
|
|
85
|
+
menuItem('Rascunhos de Sessões Únicas', { pagina: PAGINAS.minhasPaginas.mestre.rascunhos.sessoesUnicas }),
|
|
86
|
+
]),
|
|
87
|
+
]),
|
|
88
|
+
menuGrupo('Temporário', [
|
|
89
|
+
menuItem('Consultar Disponibilidades', { pagina: PAGINAS.minhasPaginas.mestre.temporario.consultarDisponibilidades }),
|
|
90
|
+
menuItem('Criar Sessões Únicas', { pagina: PAGINAS.minhasPaginas.mestre.temporario.criarSessaoUnica }),
|
|
91
|
+
]),
|
|
92
|
+
],
|
|
93
|
+
artista: [
|
|
94
|
+
menuItem('Minhas Imagens', { pagina: PAGINAS.minhasPaginas.artista.minhasImagens }),
|
|
95
|
+
menuItem('Adicionar Nova Imagem', { pagina: PAGINAS.minhasPaginas.artista.adicionarImagem }),
|
|
96
|
+
menuGrupo('Avatares', [
|
|
97
|
+
menuItem('Gerenciar Avatares', { pagina: PAGINAS.minhasPaginas.artista.avatares.gerenciarAvatares }),
|
|
98
|
+
]),
|
|
99
|
+
menuGrupo('Emblemas', [
|
|
100
|
+
menuItem('Gerenciar Emblemas', { pagina: PAGINAS.minhasPaginas.artista.emblemas.gerenciarEmblemas }),
|
|
101
|
+
]),
|
|
102
|
+
],
|
|
103
|
+
jogador: [
|
|
104
|
+
menuGrupo('Jogador', [
|
|
105
|
+
menuItem('Início', { pagina: PAGINAS.minhasPaginas.jogador }),
|
|
106
|
+
menuItem('Meus Personagens', { pagina: PAGINAS.minhasPaginas.jogador.meusPersonagens }),
|
|
107
|
+
menuItem('Minhas Fichas', { pagina: PAGINAS.minhasPaginas.jogador.minhasFichas }),
|
|
108
|
+
]),
|
|
109
|
+
],
|
|
110
|
+
minhasConfiguracoes: [
|
|
111
|
+
menuItem('Configurações', { pagina: PAGINAS.minhasPaginas.minhasConfiguracoes }),
|
|
112
|
+
menuItem('Passe de Jogador', { pagina: PAGINAS.minhasPaginas.minhasConfiguracoes.passeDeJogador }),
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
const MENUS_INTERNOS_LAYOUTCONTEXTO = {
|
|
118
|
+
PAGINAS: {
|
|
119
|
+
assistir: menuDinamico(),
|
|
120
|
+
jogo: {
|
|
121
|
+
admin: {
|
|
122
|
+
gerenciarSalas: MENUS_INTERNOS.PAGINAS.jogo,
|
|
123
|
+
},
|
|
124
|
+
mestre: {
|
|
125
|
+
sessoesMestre: MENUS_INTERNOS.PAGINAS.jogo,
|
|
126
|
+
},
|
|
127
|
+
jogador: MENUS_INTERNOS.PAGINAS.jogo,
|
|
128
|
+
},
|
|
129
|
+
minhasPaginas: {
|
|
130
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.menu,
|
|
131
|
+
admin: {
|
|
132
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
133
|
+
aventura: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
134
|
+
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
135
|
+
dashboardWs: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
136
|
+
sessao: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
137
|
+
variaveisAmbiente: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
138
|
+
dashboardPermissoes: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
139
|
+
dashboardPermissoesUsuarios: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
140
|
+
deletarArquivosAbsoluto: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
141
|
+
deletarArquivosFileServer: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
142
|
+
uploadRecursosInternos: MENUS_INTERNOS.PAGINAS.minhasPaginas.admin,
|
|
143
|
+
},
|
|
144
|
+
moderador: {
|
|
145
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
|
|
146
|
+
dashboardAprovacaoImagensArtista: MENUS_INTERNOS.PAGINAS.minhasPaginas.moderador,
|
|
147
|
+
},
|
|
148
|
+
mestre: {
|
|
149
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
150
|
+
aventura: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
151
|
+
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
152
|
+
sessoesUnicas: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
153
|
+
personagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
154
|
+
rascunhos: {
|
|
155
|
+
aventuras: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
156
|
+
sessoesUnicas: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
157
|
+
},
|
|
158
|
+
sessao: MENUS_INTERNOS.PAGINAS.minhasPaginas.mestre,
|
|
159
|
+
temporario: {
|
|
160
|
+
consultarDisponibilidades: menuVazio(),
|
|
161
|
+
criarSessaoUnica: menuVazio(),
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
artista: {
|
|
165
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
166
|
+
minhasImagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
167
|
+
adicionarImagem: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
168
|
+
avatares: {
|
|
169
|
+
gerenciarAvatares: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
170
|
+
},
|
|
171
|
+
emblemas: {
|
|
172
|
+
gerenciarEmblemas: MENUS_INTERNOS.PAGINAS.minhasPaginas.artista,
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
jogador: {
|
|
176
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
177
|
+
meusPersonagens: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
178
|
+
minhasFichas: MENUS_INTERNOS.PAGINAS.minhasPaginas.jogador,
|
|
179
|
+
criar: {
|
|
180
|
+
ficha: menuVazio(),
|
|
181
|
+
personagem: menuVazio(),
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
minhasDisponibilidades: menuVazio(),
|
|
185
|
+
minhasConfiguracoes: {
|
|
186
|
+
menu: MENUS_INTERNOS.PAGINAS.minhasPaginas.minhasConfiguracoes,
|
|
187
|
+
passeDeJogador: MENUS_INTERNOS.PAGINAS.minhasPaginas.minhasConfiguracoes,
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
fichas: menuDinamico(),
|
|
191
|
+
personagens: menuDinamico(),
|
|
192
|
+
sessoes: menuVazio(),
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
function isPaginaComLayout(node) { return 'layoutContextualizadoInicial' in node && 'template' in node; }
|
|
196
|
+
function isMenuLeaf(node) {
|
|
197
|
+
if (Array.isArray(node))
|
|
198
|
+
return true;
|
|
199
|
+
if ('tipo' in node)
|
|
200
|
+
return true;
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
function getPaginaKey(pagina) { return String(pagina.template); }
|
|
204
|
+
const MENUS_LAYOUTCONTEXTO_POR_PAGINA = (() => {
|
|
205
|
+
const out = new Map();
|
|
206
|
+
const rec = (paginasNode, menusNode) => {
|
|
207
|
+
if (isMenuLeaf(menusNode)) {
|
|
208
|
+
if (isPaginaComLayout(paginasNode))
|
|
209
|
+
out.set(getPaginaKey(paginasNode), menusNode);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const menusObj = menusNode;
|
|
213
|
+
const paginasObj = paginasNode;
|
|
214
|
+
const menuDoProprioNo = menusObj.menu;
|
|
215
|
+
if (menuDoProprioNo && isMenuLeaf(menuDoProprioNo) && isPaginaComLayout(paginasNode))
|
|
216
|
+
out.set(getPaginaKey(paginasNode), menuDoProprioNo);
|
|
217
|
+
for (const k of Object.keys(menusObj)) {
|
|
218
|
+
if (k === 'menu')
|
|
219
|
+
continue;
|
|
220
|
+
const nextMenus = menusObj[k];
|
|
221
|
+
if (!nextMenus)
|
|
222
|
+
continue;
|
|
223
|
+
const nextPaginas = paginasObj[k];
|
|
224
|
+
if (!nextPaginas || typeof nextPaginas !== 'object')
|
|
225
|
+
continue;
|
|
226
|
+
rec(nextPaginas, nextMenus);
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
rec(PAGINAS, MENUS_INTERNOS_LAYOUTCONTEXTO.PAGINAS);
|
|
230
|
+
return out;
|
|
231
|
+
})();
|
|
232
|
+
function obterMenuInternoLayoutContexto(pagina) {
|
|
233
|
+
return MENUS_LAYOUTCONTEXTO_POR_PAGINA.get(getPaginaKey(pagina));
|
|
234
|
+
}
|
|
235
|
+
const MENUS_INTERNOS_POR_PAGINA = (() => {
|
|
236
|
+
const out = new Map();
|
|
237
|
+
function isObject(v) { return typeof v === 'object' && v !== null; }
|
|
238
|
+
function hasTemplate(v) { return isObject(v) && 'template' in v; }
|
|
239
|
+
function getKey(v, k) {
|
|
240
|
+
if (!isObject(v))
|
|
241
|
+
return undefined;
|
|
242
|
+
return v[k];
|
|
243
|
+
}
|
|
244
|
+
const rec = (paginasNode, menusNode) => {
|
|
245
|
+
if (Array.isArray(menusNode)) {
|
|
246
|
+
if (hasTemplate(paginasNode))
|
|
247
|
+
out.set(String(paginasNode.template), menusNode);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
if (!isObject(menusNode))
|
|
251
|
+
return;
|
|
252
|
+
for (const k of Object.keys(menusNode)) {
|
|
253
|
+
const nextPaginas = getKey(paginasNode, k);
|
|
254
|
+
const nextMenus = getKey(menusNode, k);
|
|
255
|
+
rec(nextPaginas ?? undefined, nextMenus ?? undefined);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
rec(PAGINAS, MENUS_INTERNOS.PAGINAS);
|
|
259
|
+
return out;
|
|
260
|
+
})();
|
|
261
|
+
function obterMenuInterno(pagina) {
|
|
262
|
+
return MENUS_INTERNOS_POR_PAGINA.get(getPaginaKey(pagina));
|
|
263
|
+
}
|
|
264
|
+
function resolverMenuInterno(pagina) {
|
|
265
|
+
const nodes = obterMenuInterno(pagina);
|
|
266
|
+
if (!nodes)
|
|
267
|
+
return undefined;
|
|
268
|
+
const folhas = [];
|
|
269
|
+
const stack = [...nodes];
|
|
270
|
+
while (stack.length > 0) {
|
|
271
|
+
const cur = stack.pop();
|
|
272
|
+
if (cur.tipo === 'item')
|
|
273
|
+
folhas.push(cur.destino.pagina);
|
|
274
|
+
if (cur.tipo === 'grupo')
|
|
275
|
+
stack.push(...cur.itens);
|
|
276
|
+
}
|
|
277
|
+
return folhas;
|
|
278
|
+
}
|
|
279
|
+
export { MENUS_INTERNOS, MENUS_INTERNOS_LAYOUTCONTEXTO, MENUS_INTERNOS_POR_PAGINA, MENUS_LAYOUTCONTEXTO_POR_PAGINA, MENU_PRINCIPAL, filtrarMenuPorAcesso, getPaginaKey, isMenuLeaf, isPaginaComLayout, obterMenuInterno, obterMenuInternoLayoutContexto, resolverMenuInterno };
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { CtxAcesso } from '../acessos';
|
|
2
|
+
import type { PaginaDef, PaginaTemplate, ParamsProps } from '../dtos';
|
|
3
|
+
import type { AcessoPagina } from '../shared';
|
|
4
|
+
type DecisaoAcessoPagina = {
|
|
5
|
+
permitido: true;
|
|
6
|
+
} | {
|
|
7
|
+
permitido: false;
|
|
8
|
+
motivo: 'NAO_AUTENTICADO';
|
|
9
|
+
redirecionarPara: PaginaFolha;
|
|
10
|
+
} | {
|
|
11
|
+
permitido: false;
|
|
12
|
+
motivo: 'SEM_CAPACIDADE';
|
|
13
|
+
redirecionarPara: PaginaFolha;
|
|
14
|
+
};
|
|
15
|
+
type ResolverMenuInterno = (pagina: PaginaFolha) => readonly PaginaFolha[] | undefined;
|
|
16
|
+
type Opts = {
|
|
17
|
+
resolverMenuInterno?: ResolverMenuInterno;
|
|
18
|
+
redirectNaoAutenticado: PaginaFolha;
|
|
19
|
+
redirectSemCapacidade: PaginaFolha;
|
|
20
|
+
};
|
|
21
|
+
declare function decidirAcessoPagina(pagina: PaginaFolha, ctx: CtxAcesso, opts: Opts): DecisaoAcessoPagina;
|
|
22
|
+
declare function decidirAcessoPagina_Rec(pagina: PaginaFolha, ctx: CtxAcesso, opts: Opts, visitados: Set<string>): DecisaoAcessoPagina;
|
|
23
|
+
declare const PAGINAS: {
|
|
24
|
+
readonly home: PaginaDef<"/", import("../dtos").PaginaInfoBase>;
|
|
25
|
+
readonly acessar: PaginaDef<"/acessar", import("../dtos").PaginaInfoBase>;
|
|
26
|
+
readonly cadastrar: PaginaDef<"/cadastrar", import("../dtos").PaginaInfoBase>;
|
|
27
|
+
readonly definicoes: PaginaDef<"/definicoes/[[...slug]]", import("../dtos").PaginaInfoBase>;
|
|
28
|
+
readonly dicas: PaginaDef<"/dicas/[[...slug]]", import("../dtos").PaginaInfoBase>;
|
|
29
|
+
readonly jogo: {
|
|
30
|
+
readonly admin: {
|
|
31
|
+
readonly gerenciarSalas: PaginaDef<"/jogo/admin/gerenciar-salas", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
32
|
+
};
|
|
33
|
+
readonly mestre: {
|
|
34
|
+
readonly sessoesMestre: PaginaDef<"/jogo/mestre/sessoes-mestre", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
35
|
+
};
|
|
36
|
+
readonly jogador: PaginaDef<"/jogo/jogador", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
37
|
+
readonly emJogo: PaginaDef<"/jogo/em-jogo", import("../dtos").PaginaInfoBase>;
|
|
38
|
+
};
|
|
39
|
+
readonly linhaDoTempo: PaginaDef<"/linha-do-tempo", import("../dtos").PaginaInfoBase>;
|
|
40
|
+
readonly minhaPagina: PaginaDef<"/minha-pagina", import("../dtos").PaginaInfoBase>;
|
|
41
|
+
readonly minhasPaginas: {
|
|
42
|
+
readonly admin: {
|
|
43
|
+
readonly aventura: PaginaDef<"/minhas-paginas/admin/aventura/[id]", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
44
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/admin/aventuras", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
45
|
+
readonly dashboardWs: PaginaDef<"/minhas-paginas/admin/dashboard-ws", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
46
|
+
readonly sessao: PaginaDef<"/minhas-paginas/admin/sessao/[id]", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
47
|
+
readonly variaveisAmbiente: PaginaDef<"/minhas-paginas/admin/variaveis-ambiente", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
48
|
+
readonly dashboardPermissoes: PaginaDef<"/minhas-paginas/admin/permissoes", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
49
|
+
readonly dashboardPermissoesUsuarios: PaginaDef<"/minhas-paginas/admin/permissoes-usuarios", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
50
|
+
readonly deletarArquivosAbsoluto: PaginaDef<"/minhas-paginas/admin/deletar-arquivos-absoluto", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
51
|
+
readonly deletarArquivosFileServer: PaginaDef<"/minhas-paginas/admin/deletar-arquivos-file-server", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
52
|
+
readonly uploadRecursosInternos: PaginaDef<"/minhas-paginas/admin/uploads-recursos-internos", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
53
|
+
readonly label: string;
|
|
54
|
+
readonly comCabecalho?: true;
|
|
55
|
+
readonly acesso?: AcessoPagina;
|
|
56
|
+
readonly acessoPorMenuInterno?: true;
|
|
57
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
58
|
+
readonly template: PaginaTemplate<"/minhas-paginas/admin">;
|
|
59
|
+
readonly hrefTemplate: "/minhas-paginas/admin";
|
|
60
|
+
readonly href: "/minhas-paginas/admin";
|
|
61
|
+
};
|
|
62
|
+
readonly moderador: {
|
|
63
|
+
readonly dashboardAprovacaoImagensArtista: PaginaDef<"/minhas-paginas/moderador/aprovar-imagens-artista", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
64
|
+
readonly label: string;
|
|
65
|
+
readonly comCabecalho?: true;
|
|
66
|
+
readonly acesso?: AcessoPagina;
|
|
67
|
+
readonly acessoPorMenuInterno?: true;
|
|
68
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
69
|
+
readonly template: PaginaTemplate<"/minhas-paginas/moderador">;
|
|
70
|
+
readonly hrefTemplate: "/minhas-paginas/moderador";
|
|
71
|
+
readonly href: "/minhas-paginas/moderador";
|
|
72
|
+
};
|
|
73
|
+
readonly mestre: {
|
|
74
|
+
readonly aventura: PaginaDef<"/minhas-paginas/mestre/aventura/[id]", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
75
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/aventuras", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
76
|
+
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/sessoes-unicas", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
77
|
+
readonly personagens: PaginaDef<"/minhas-paginas/mestre/personagens", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
78
|
+
readonly rascunhos: {
|
|
79
|
+
readonly aventuras: PaginaDef<"/minhas-paginas/mestre/rascunhos/aventuras", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
80
|
+
readonly sessoesUnicas: PaginaDef<"/minhas-paginas/mestre/rascunhos/sessoes-unicas", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
81
|
+
};
|
|
82
|
+
readonly temporario: {
|
|
83
|
+
readonly consultarDisponibilidades: PaginaDef<"/minhas-paginas/mestre/consultar-disponibilidades", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
84
|
+
readonly criarSessaoUnica: PaginaDef<"/minhas-paginas/mestre/criar-sessao-unica", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
85
|
+
};
|
|
86
|
+
readonly sessao: PaginaDef<"/minhas-paginas/mestre/sessao/[id]", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
87
|
+
readonly label: string;
|
|
88
|
+
readonly comCabecalho?: true;
|
|
89
|
+
readonly acesso?: AcessoPagina;
|
|
90
|
+
readonly acessoPorMenuInterno?: true;
|
|
91
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
92
|
+
readonly template: PaginaTemplate<"/minhas-paginas/mestre">;
|
|
93
|
+
readonly hrefTemplate: "/minhas-paginas/mestre";
|
|
94
|
+
readonly href: "/minhas-paginas/mestre";
|
|
95
|
+
};
|
|
96
|
+
readonly artista: {
|
|
97
|
+
readonly minhasImagens: PaginaDef<"/minhas-paginas/artista/minhas-imagens", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
98
|
+
readonly adicionarImagem: PaginaDef<"/minhas-paginas/artista/adicionar-imagem", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
99
|
+
readonly avatares: {
|
|
100
|
+
readonly gerenciarAvatares: PaginaDef<"/minhas-paginas/artista/avatares", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
101
|
+
};
|
|
102
|
+
readonly emblemas: {
|
|
103
|
+
readonly gerenciarEmblemas: PaginaDef<"/minhas-paginas/artista/emblemas", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
104
|
+
};
|
|
105
|
+
readonly label: string;
|
|
106
|
+
readonly comCabecalho?: true;
|
|
107
|
+
readonly acesso?: AcessoPagina;
|
|
108
|
+
readonly acessoPorMenuInterno?: true;
|
|
109
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
110
|
+
readonly template: PaginaTemplate<"/minhas-paginas/artista">;
|
|
111
|
+
readonly hrefTemplate: "/minhas-paginas/artista";
|
|
112
|
+
readonly href: "/minhas-paginas/artista";
|
|
113
|
+
};
|
|
114
|
+
readonly jogador: {
|
|
115
|
+
readonly meusPersonagens: PaginaDef<"/minhas-paginas/jogador/meus-personagens", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
116
|
+
readonly minhasFichas: PaginaDef<"/minhas-paginas/jogador/minhas-fichas", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
117
|
+
readonly criar: {
|
|
118
|
+
readonly ficha: PaginaDef<"/minhas-paginas/jogador/criar/ficha", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
119
|
+
readonly personagem: PaginaDef<"/minhas-paginas/jogador/criar/personagem", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
120
|
+
};
|
|
121
|
+
readonly label: string;
|
|
122
|
+
readonly comCabecalho?: true;
|
|
123
|
+
readonly acesso?: AcessoPagina;
|
|
124
|
+
readonly acessoPorMenuInterno?: true;
|
|
125
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
126
|
+
readonly template: PaginaTemplate<"/minhas-paginas/jogador">;
|
|
127
|
+
readonly hrefTemplate: "/minhas-paginas/jogador";
|
|
128
|
+
readonly href: "/minhas-paginas/jogador";
|
|
129
|
+
};
|
|
130
|
+
readonly minhasDisponibilidades: PaginaDef<"/minhas-paginas/minhas-disponibilidades", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
131
|
+
readonly minhasConfiguracoes: {
|
|
132
|
+
readonly passeDeJogador: PaginaDef<"/minhas-paginas/minhas-configuracoes/passe-de-jogador", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
133
|
+
readonly label: string;
|
|
134
|
+
readonly comCabecalho?: true;
|
|
135
|
+
readonly acesso?: AcessoPagina;
|
|
136
|
+
readonly acessoPorMenuInterno?: true;
|
|
137
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
138
|
+
readonly template: PaginaTemplate<"/minhas-paginas/minhas-configuracoes">;
|
|
139
|
+
readonly hrefTemplate: "/minhas-paginas/minhas-configuracoes";
|
|
140
|
+
readonly href: "/minhas-paginas/minhas-configuracoes";
|
|
141
|
+
};
|
|
142
|
+
readonly label: string;
|
|
143
|
+
readonly comCabecalho?: true;
|
|
144
|
+
readonly acesso?: AcessoPagina;
|
|
145
|
+
readonly acessoPorMenuInterno?: true;
|
|
146
|
+
readonly layoutContextualizadoInicial: import("../dtos").LayoutContextualizadoInicial;
|
|
147
|
+
readonly template: PaginaTemplate<"/minhas-paginas">;
|
|
148
|
+
readonly hrefTemplate: "/minhas-paginas";
|
|
149
|
+
readonly href: "/minhas-paginas";
|
|
150
|
+
};
|
|
151
|
+
readonly fichas: PaginaDef<"/fichas", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
152
|
+
readonly personagens: PaginaDef<"/personagens", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
153
|
+
readonly sessoes: PaginaDef<"/sessoes", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
154
|
+
readonly sessaoAovivo: PaginaDef<"/sessao-aovivo", import("../dtos").PaginaInfoBase>;
|
|
155
|
+
readonly assistir: PaginaDef<"/assistir", import("../dtos").PaginaInfoComLayoutContextualizado>;
|
|
156
|
+
};
|
|
157
|
+
type Folhas<T> = T extends PaginaDef<string> ? T | Folhas<Omit<T, keyof PaginaDef<string>>> : T extends readonly (infer U)[] ? Folhas<U> : T extends object ? {
|
|
158
|
+
[K in keyof T]-?: Folhas<NonNullable<T[K]>>;
|
|
159
|
+
}[keyof T] : never;
|
|
160
|
+
type PaginaFolha = Folhas<typeof PAGINAS>;
|
|
161
|
+
type PaginaTemplateFolha = PaginaFolha['template'];
|
|
162
|
+
type PaginaDestino = PaginaFolha extends infer P ? P extends PaginaFolha ? {
|
|
163
|
+
pagina: P;
|
|
164
|
+
} & ParamsProps<P> : never : never;
|
|
165
|
+
type PaginaDestinoPagina<P extends PaginaFolha> = {
|
|
166
|
+
pagina: P;
|
|
167
|
+
} & ParamsProps<P>;
|
|
168
|
+
type PaginaHrefTemplate = PaginaFolha['hrefTemplate'];
|
|
169
|
+
type PaginaHref = PaginaFolha['href'];
|
|
170
|
+
type PaginaDefAny = PaginaDef<string>;
|
|
171
|
+
type PaginaTemplateAny = PaginaTemplate<string>;
|
|
172
|
+
export { DecisaoAcessoPagina, Folhas, Opts, PAGINAS, PaginaDefAny, PaginaDestino, PaginaDestinoPagina, PaginaFolha, PaginaHref, PaginaHrefTemplate, PaginaTemplateAny, PaginaTemplateFolha, ResolverMenuInterno, decidirAcessoPagina, decidirAcessoPagina_Rec };
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// AUTO-GENERATED FILE - DO NOT EDIT
|
|
2
|
+
// Contratos de páginas
|
|
3
|
+
import { temSudoBurlarCapacidades } from '../acessos';
|
|
4
|
+
import { CAPACIDADES } from '../dominio';
|
|
5
|
+
import { pagina, paginaComLayoutContextualizado } from '../dtos';
|
|
6
|
+
/*
|
|
7
|
+
SSOT: regra de acesso única, usada por:
|
|
8
|
+
- ControladorSlot (bloqueio/redirect)
|
|
9
|
+
- Menu principal (filtrar itens antes de render)
|
|
10
|
+
- Menus internos (filtrar itens antes de render)
|
|
11
|
+
*/
|
|
12
|
+
function decidirAcessoPagina(pagina, ctx, opts) {
|
|
13
|
+
const visitados = new Set();
|
|
14
|
+
return decidirAcessoPagina_Rec(pagina, ctx, opts, visitados);
|
|
15
|
+
}
|
|
16
|
+
function decidirAcessoPagina_Rec(pagina, ctx, opts, visitados) {
|
|
17
|
+
const key = String(pagina.template);
|
|
18
|
+
if (visitados.has(key))
|
|
19
|
+
return { permitido: true };
|
|
20
|
+
visitados.add(key);
|
|
21
|
+
const acesso = pagina.acesso;
|
|
22
|
+
if (acesso != null && 'cadastroPermitido' in acesso) {
|
|
23
|
+
if (!ctx.cadastroPermitido)
|
|
24
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
25
|
+
}
|
|
26
|
+
if (acesso != null && 'listaDeCapacidadesNecessarias' in acesso) {
|
|
27
|
+
if (!ctx.estaAutenticado)
|
|
28
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
29
|
+
if (temSudoBurlarCapacidades(ctx))
|
|
30
|
+
return { permitido: true };
|
|
31
|
+
const lista = acesso.listaDeCapacidadesNecessarias;
|
|
32
|
+
const permitido = Array.isArray(lista) && lista.length > 0 && lista.every((cap) => ctx.verificarCapacidade(cap));
|
|
33
|
+
if (!permitido)
|
|
34
|
+
return { permitido: false, motivo: 'SEM_CAPACIDADE', redirecionarPara: opts.redirectSemCapacidade };
|
|
35
|
+
}
|
|
36
|
+
if (acesso != null && 'autenticado' in acesso) {
|
|
37
|
+
if (!ctx.estaAutenticado)
|
|
38
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
39
|
+
}
|
|
40
|
+
if (pagina.acessoPorMenuInterno === true) {
|
|
41
|
+
if (!ctx.estaAutenticado)
|
|
42
|
+
return { permitido: false, motivo: 'NAO_AUTENTICADO', redirecionarPara: opts.redirectNaoAutenticado };
|
|
43
|
+
if (temSudoBurlarCapacidades(ctx))
|
|
44
|
+
return { permitido: true };
|
|
45
|
+
const folhas = (opts.resolverMenuInterno?.(pagina) ?? []).filter((p) => String(p.template) !== String(pagina.template));
|
|
46
|
+
const permitido = folhas.some((p) => decidirAcessoPagina_Rec(p, ctx, opts, visitados).permitido);
|
|
47
|
+
if (!permitido)
|
|
48
|
+
return { permitido: false, motivo: 'SEM_CAPACIDADE', redirecionarPara: opts.redirectSemCapacidade };
|
|
49
|
+
}
|
|
50
|
+
return { permitido: true };
|
|
51
|
+
}
|
|
52
|
+
const PAGINAS = {
|
|
53
|
+
home: pagina('/', { label: 'Página Inicial', comCabecalho: true }),
|
|
54
|
+
acessar: pagina('/acessar', { label: 'Acessar' }),
|
|
55
|
+
cadastrar: pagina('/cadastrar', { label: 'Cadastrar', acesso: { cadastroPermitido: true } }),
|
|
56
|
+
definicoes: pagina('/definicoes/[[...slug]]', { label: 'Definições', comCabecalho: true }),
|
|
57
|
+
dicas: pagina('/dicas/[[...slug]]', { label: 'Dicas', comCabecalho: true }),
|
|
58
|
+
jogo: {
|
|
59
|
+
admin: {
|
|
60
|
+
gerenciarSalas: paginaComLayoutContextualizado('/jogo/admin/gerenciar-salas', { label: 'Admin - Gerenciar Salas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__SESSAO_DE_JOGO] } }, { titulo: 'Gerenciar Salas', proporcaoConteudo: 84 }),
|
|
61
|
+
},
|
|
62
|
+
mestre: {
|
|
63
|
+
sessoesMestre: paginaComLayoutContextualizado('/jogo/mestre/sessoes-mestre', { label: 'Mestre - Sessões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Criação de Sala', proporcaoConteudo: 84 }),
|
|
64
|
+
},
|
|
65
|
+
jogador: paginaComLayoutContextualizado('/jogo/jogador', { label: 'Jogo - Jogador', acesso: { autenticado: true } }, { titulo: null, proporcaoConteudo: 84 }),
|
|
66
|
+
emJogo: pagina('/jogo/em-jogo', { label: 'Em Jogo', acesso: { autenticado: true } }),
|
|
67
|
+
},
|
|
68
|
+
linhaDoTempo: pagina('/linha-do-tempo', { label: 'Linha do Tempo' }),
|
|
69
|
+
minhaPagina: pagina('/minha-pagina', { label: 'Minha Página', acesso: { autenticado: true } }),
|
|
70
|
+
minhasPaginas: {
|
|
71
|
+
...paginaComLayoutContextualizado('/minhas-paginas', { label: 'Minhas Paginas', acesso: { autenticado: true } }, { titulo: 'Minhas Paginas', proporcaoConteudo: 84 }),
|
|
72
|
+
admin: {
|
|
73
|
+
...paginaComLayoutContextualizado('/minhas-paginas/admin', { label: 'Administração', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Administrador', proporcaoConteudo: 84 }),
|
|
74
|
+
aventura: paginaComLayoutContextualizado('/minhas-paginas/admin/aventura/[id]', { label: 'Admin - Aventura', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'TROCA', proporcaoConteudo: 84 }),
|
|
75
|
+
aventuras: paginaComLayoutContextualizado('/minhas-paginas/admin/aventuras', { label: 'Admin - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'Gerenciamento de Aventuras', proporcaoConteudo: 84 }),
|
|
76
|
+
dashboardWs: paginaComLayoutContextualizado('/minhas-paginas/admin/dashboard-ws', { label: 'Admin - Dashboard WS', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__ACOMPANHAMENTO__WEBSOCKET] } }, { titulo: 'Dashboard: WebSocket', proporcaoConteudo: 84 }),
|
|
77
|
+
sessao: paginaComLayoutContextualizado('/minhas-paginas/admin/sessao/[id]', { label: 'Admin - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__AVENTURAS_E_SESSOES] } }, { titulo: 'Gerenciamento de Sessão', proporcaoConteudo: 84 }),
|
|
78
|
+
variaveisAmbiente: paginaComLayoutContextualizado('/minhas-paginas/admin/variaveis-ambiente', { label: 'Admin - Variáveis de Ambiente', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__VARIAVEIS_DE_AMBIENTE] } }, { titulo: 'Variáveis de Ambiente', proporcaoConteudo: 84 }),
|
|
79
|
+
dashboardPermissoes: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes', { label: 'Admin - Permissões', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__CRIACAO_CAPACIDADES] } }, { titulo: 'Gerenciamento de Permissões', proporcaoConteudo: 84 }),
|
|
80
|
+
dashboardPermissoesUsuarios: paginaComLayoutContextualizado('/minhas-paginas/admin/permissoes-usuarios', { label: 'Admin - Permissões de Usuários', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__PERMISSOES__ALTERACAO_CAPACIDADES_GERAIS_USUARIOS] } }, { titulo: 'Permissões de Usuário', proporcaoConteudo: 84 }),
|
|
81
|
+
deletarArquivosAbsoluto: paginaComLayoutContextualizado('/minhas-paginas/admin/deletar-arquivos-absoluto', { label: 'Admin - Deletar Arquivos SUDO', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__DELETAR_ARQUIVOS_FILE_SERVER] } }, { titulo: 'Deletar Arquivos', proporcaoConteudo: 84 }),
|
|
82
|
+
deletarArquivosFileServer: paginaComLayoutContextualizado('/minhas-paginas/admin/deletar-arquivos-file-server', { label: 'Admin - Deletar Arquivos', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__SUDO__DELETAR_ARQUIVOS_FILE_SERVER] } }, { titulo: 'Deletar Arquivos', proporcaoConteudo: 84 }),
|
|
83
|
+
uploadRecursosInternos: paginaComLayoutContextualizado('/minhas-paginas/admin/uploads-recursos-internos', { label: 'Admin - Uploads', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ADMINISTRADOR__GERENCIAMENTO__UPLOAD_RECURSOS_INTERNOS] } }, { titulo: 'Upload de Recursos Internos', proporcaoConteudo: 84 }),
|
|
84
|
+
},
|
|
85
|
+
moderador: {
|
|
86
|
+
...paginaComLayoutContextualizado('/minhas-paginas/moderador', { label: 'Área do Moderador', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Moderador', proporcaoConteudo: 84 }),
|
|
87
|
+
dashboardAprovacaoImagensArtista: paginaComLayoutContextualizado('/minhas-paginas/moderador/aprovar-imagens-artista', { label: 'Aprovar Imagens de Artistas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MODERADOR__IMAGENS] } }, { titulo: 'Aprovar Imagens de Artistas', proporcaoConteudo: 84 }),
|
|
88
|
+
},
|
|
89
|
+
mestre: {
|
|
90
|
+
...paginaComLayoutContextualizado('/minhas-paginas/mestre', { label: 'Área do Mestre', acessoPorMenuInterno: true }, { titulo: 'Página de Mestre', proporcaoConteudo: 84 }),
|
|
91
|
+
aventura: paginaComLayoutContextualizado('/minhas-paginas/mestre/aventura/[id]', { label: 'Mestre - Aventura', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] } }, { titulo: 'TROCAR', proporcaoConteudo: 84 }),
|
|
92
|
+
aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/aventuras', { label: 'Mestre - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] } }, { titulo: 'Minhas Aventuras', proporcaoConteudo: 84 }),
|
|
93
|
+
sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessoes-unicas', { label: 'Mestre - Sessões Únicas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Minhas Sessões Únicas', proporcaoConteudo: 84 }),
|
|
94
|
+
personagens: paginaComLayoutContextualizado('/minhas-paginas/mestre/personagens', { label: 'Mestre - Personagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__AVENTURA] } }, { titulo: 'Meus Personagens de Mestre', proporcaoConteudo: 84 }),
|
|
95
|
+
rascunhos: {
|
|
96
|
+
aventuras: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/aventuras', { label: 'Rascunhos - Aventuras', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_AVENTURA] } }, { titulo: 'Meus Rascunhos de Aventuras', proporcaoConteudo: 84 }),
|
|
97
|
+
sessoesUnicas: paginaComLayoutContextualizado('/minhas-paginas/mestre/rascunhos/sessoes-unicas', { label: 'Rascunhos - Sessões Únicas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__RASCUNHO_SESSAO_UNICA] } }, { titulo: 'Meus Rascunhos de Sessões Únicas', proporcaoConteudo: 84 }),
|
|
98
|
+
},
|
|
99
|
+
temporario: {
|
|
100
|
+
consultarDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/mestre/consultar-disponibilidades', { label: 'Consultando Disponibilidades', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Consultando Disponibilidades', proporcaoConteudo: 100 }),
|
|
101
|
+
criarSessaoUnica: paginaComLayoutContextualizado('/minhas-paginas/mestre/criar-sessao-unica', { label: 'Criando Sessão Única', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'Criando Sessão Única', proporcaoConteudo: 100 }),
|
|
102
|
+
},
|
|
103
|
+
sessao: paginaComLayoutContextualizado('/minhas-paginas/mestre/sessao/[id]', { label: 'Mestre - Sessão', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.MESTRE__CRIACAO__SESSAO_DE_JOGO] } }, { titulo: 'TROCAR', proporcaoConteudo: 84 }),
|
|
104
|
+
},
|
|
105
|
+
artista: {
|
|
106
|
+
...paginaComLayoutContextualizado('/minhas-paginas/artista', { label: 'Área do Artista', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Artista', proporcaoConteudo: 84 }),
|
|
107
|
+
minhasImagens: paginaComLayoutContextualizado('/minhas-paginas/artista/minhas-imagens', { label: 'Minhas Imagens', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] } }, { titulo: 'Minhas Imagens', proporcaoConteudo: 84 }),
|
|
108
|
+
adicionarImagem: paginaComLayoutContextualizado('/minhas-paginas/artista/adicionar-imagem', { label: 'Adicionar Imagem', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__UPLOAD_IMAGEM] } }, { titulo: 'Adicionar Nova Imagem', proporcaoConteudo: 84 }),
|
|
109
|
+
avatares: {
|
|
110
|
+
gerenciarAvatares: paginaComLayoutContextualizado('/minhas-paginas/artista/avatares', { label: 'Gerenciar Avatares', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__AVATARES] } }, { titulo: 'Gerenciar Avatares', proporcaoConteudo: 84 }),
|
|
111
|
+
},
|
|
112
|
+
emblemas: {
|
|
113
|
+
gerenciarEmblemas: paginaComLayoutContextualizado('/minhas-paginas/artista/emblemas', { label: 'Gerenciar Emblemas', acesso: { listaDeCapacidadesNecessarias: [CAPACIDADES.ARTISTA__CRIACAO__RESPONSABILIDADES__EMBLEMAS] } }, { titulo: 'Gerenciar Emblemas', proporcaoConteudo: 84 }),
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
jogador: {
|
|
117
|
+
...paginaComLayoutContextualizado('/minhas-paginas/jogador', { label: 'Área do Jogador', acesso: { autenticado: true }, acessoPorMenuInterno: true }, { titulo: 'Página de Jogador', proporcaoConteudo: 84 }),
|
|
118
|
+
meusPersonagens: paginaComLayoutContextualizado('/minhas-paginas/jogador/meus-personagens', { label: 'Meus Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
|
|
119
|
+
minhasFichas: paginaComLayoutContextualizado('/minhas-paginas/jogador/minhas-fichas', { label: 'Minhas Fichas', acesso: { autenticado: true } }, { titulo: 'Minhas Fichas', proporcaoConteudo: 84 }),
|
|
120
|
+
criar: {
|
|
121
|
+
ficha: paginaComLayoutContextualizado('/minhas-paginas/jogador/criar/ficha', { label: 'Criando Ficha', acesso: { autenticado: true } }, { titulo: 'Criando Ficha', proporcaoConteudo: 100 }),
|
|
122
|
+
personagem: paginaComLayoutContextualizado('/minhas-paginas/jogador/criar/personagem', { label: 'Criando Personagem', acesso: { autenticado: true } }, { titulo: 'Criando Personagem', proporcaoConteudo: 100 }),
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
minhasDisponibilidades: paginaComLayoutContextualizado('/minhas-paginas/minhas-disponibilidades', { label: 'Minhas Disponibilidades', acesso: { autenticado: true } }, { titulo: 'Minhas Disponibilidades', proporcaoConteudo: 100 }),
|
|
126
|
+
minhasConfiguracoes: {
|
|
127
|
+
...paginaComLayoutContextualizado('/minhas-paginas/minhas-configuracoes', { label: 'Minhas Configurações', acesso: { autenticado: true } }, { titulo: 'Minhas Configurações', proporcaoConteudo: 84 }),
|
|
128
|
+
passeDeJogador: paginaComLayoutContextualizado('/minhas-paginas/minhas-configuracoes/passe-de-jogador', { label: 'Meu Passe de Jogador', acesso: { autenticado: true } }, { titulo: 'Meu Passe de Jogador', proporcaoConteudo: 84 }),
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
fichas: paginaComLayoutContextualizado('/fichas', { label: 'Fichas', acesso: { autenticado: true } }, { titulo: 'Minhas Fichas', proporcaoConteudo: 84 }),
|
|
132
|
+
personagens: paginaComLayoutContextualizado('/personagens', { label: 'Personagens', acesso: { autenticado: true } }, { titulo: 'Meus Personagens', proporcaoConteudo: 84 }),
|
|
133
|
+
sessoes: paginaComLayoutContextualizado('/sessoes', { label: 'Sessões' }, { titulo: 'TROCA', proporcaoConteudo: 100 }),
|
|
134
|
+
sessaoAovivo: pagina('/sessao-aovivo', { label: 'Sessão Ao Vivo', acesso: { autenticado: true } }),
|
|
135
|
+
assistir: paginaComLayoutContextualizado('/assistir', { label: 'Assistir' }, { titulo: 'Assistir', proporcaoConteudo: 80 }),
|
|
136
|
+
};
|
|
137
|
+
export { PAGINAS, decidirAcessoPagina, decidirAcessoPagina_Rec };
|