From b72763d9ffcffa8c7ff160dcd1b1022a136cc4c1 Mon Sep 17 00:00:00 2001 From: JohnDoe6345789 Date: Tue, 30 Dec 2025 00:13:12 +0000 Subject: [PATCH] feat: add minLevel property to metadata.json files and update permission levels in levels.lua --- .../editors/lua/useLuaDiagnostics.ts | 2 +- .../lib/db/comments/crud/add-comment.test.ts | 9 +++++--- .../src/lib/db/comments/crud/get-comments.ts | 13 ++++++++++-- .../db/lua-scripts/set-lua-scripts.test.ts | 7 +++++-- .../src/lib/db/lua-scripts/set-lua-scripts.ts | 8 +++++-- .../lib/db/workflows/crud/get-workflows.ts | 13 ++++++++++-- .../db/workflows/crud/set-workflows.test.ts | 7 ++++++- .../lib/db/workflows/crud/set-workflows.ts | 8 +++++-- .../db/workflows/crud/update-workflow.test.ts | 3 ++- packages/admin_dialog/seed/metadata.json | 3 ++- packages/arcade_lobby/seed/metadata.json | 5 +++-- packages/code_editor/seed/metadata.json | 18 ++++++++++++---- packages/codegen_studio/seed/metadata.json | 5 +++-- packages/dashboard/seed/metadata.json | 14 ++++++++++--- packages/data_table/seed/metadata.json | 3 ++- packages/form_builder/seed/metadata.json | 16 +++++++++++--- packages/forum_forge/seed/metadata.json | 5 +++-- packages/nav_menu/seed/metadata.json | 18 ++++++++++++---- .../notification_center/seed/metadata.json | 3 ++- packages/schema_editor/seed/metadata.json | 21 ++++++++++++++----- packages/social_hub/seed/metadata.json | 5 +++-- packages/stream_cast/seed/metadata.json | 5 +++-- packages/ui_auth/seed/metadata.json | 20 +++++++++++++----- packages/ui_dialogs/seed/metadata.json | 16 ++++++++++---- packages/ui_footer/seed/metadata.json | 13 ++++++++---- packages/ui_header/seed/metadata.json | 17 ++++++++++----- packages/ui_home/seed/metadata.json | 18 +++++++++++----- packages/ui_intro/seed/metadata.json | 13 ++++++++---- packages/ui_level2/seed/metadata.json | 21 ++++++++++++++----- packages/ui_level3/seed/metadata.json | 21 ++++++++++++++----- packages/ui_level4/seed/metadata.json | 21 ++++++++++++++----- packages/ui_level5/seed/metadata.json | 21 ++++++++++++++----- packages/ui_login/seed/metadata.json | 18 +++++++++++----- packages/ui_pages/seed/metadata.json | 5 +++-- packages/ui_permissions/seed/metadata.json | 9 +++++--- .../ui_permissions/seed/scripts/levels.lua | 9 ++++---- packages/user_manager/seed/metadata.json | 21 ++++++++++++++----- packages/workflow_editor/seed/metadata.json | 17 +++++++++++---- 38 files changed, 333 insertions(+), 118 deletions(-) diff --git a/frontends/nextjs/src/components/editors/lua/useLuaDiagnostics.ts b/frontends/nextjs/src/components/editors/lua/useLuaDiagnostics.ts index d40f49a1f..35039694d 100644 --- a/frontends/nextjs/src/components/editors/lua/useLuaDiagnostics.ts +++ b/frontends/nextjs/src/components/editors/lua/useLuaDiagnostics.ts @@ -15,7 +15,7 @@ export const useLuaDiagnostics = (monaco: Monaco | null) => endColumn: word.endColumn, } - const suggestions: any[] = [ + const suggestions: monaco.languages.CompletionItem[] = [ { label: 'context.data', kind: monaco.languages.CompletionItemKind.Property, diff --git a/frontends/nextjs/src/lib/db/comments/crud/add-comment.test.ts b/frontends/nextjs/src/lib/db/comments/crud/add-comment.test.ts index 5c5dd6f65..9d920621d 100644 --- a/frontends/nextjs/src/lib/db/comments/crud/add-comment.test.ts +++ b/frontends/nextjs/src/lib/db/comments/crud/add-comment.test.ts @@ -1,4 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import type { Comment } from '../../types/level-types' const mockCreate = vi.fn() const mockAdapter = { create: mockCreate } @@ -14,7 +15,7 @@ describe('addComment', () => { mockCreate.mockReset() }) - it.each([ + const cases: Array<{ name: string; comment: Comment }> = [ { name: 'basic comment', comment: { id: 'c1', userId: 'u1', content: 'Hello', createdAt: 1000 }, @@ -23,10 +24,12 @@ describe('addComment', () => { name: 'reply comment', comment: { id: 'c2', userId: 'u1', content: 'Reply', createdAt: 2000, parentId: 'c1' }, }, - ])('should add $name', async ({ comment }) => { + ] + + it.each(cases)('should add $name', async ({ comment }) => { mockCreate.mockResolvedValue(undefined) - await addComment(comment as any) + await addComment(comment) expect(mockCreate).toHaveBeenCalledWith( 'Comment', diff --git a/frontends/nextjs/src/lib/db/comments/crud/get-comments.ts b/frontends/nextjs/src/lib/db/comments/crud/get-comments.ts index 2282b4366..f1f7b54f6 100644 --- a/frontends/nextjs/src/lib/db/comments/crud/get-comments.ts +++ b/frontends/nextjs/src/lib/db/comments/crud/get-comments.ts @@ -1,13 +1,22 @@ import { getAdapter } from '../../core/dbal-client' import type { Comment } from '../../types/level-types' +type DBALCommentRecord = { + id: string + userId: string + content: string + createdAt: number | string | Date + updatedAt?: number | string | Date | null + parentId?: string | null +} + /** * Get all comments from database */ export async function getComments(): Promise { const adapter = getAdapter() - const result = await adapter.list('Comment') - return (result.data as any[]).map(c => ({ + const result = (await adapter.list('Comment')) as { data: DBALCommentRecord[] } + return result.data.map(c => ({ id: c.id, userId: c.userId, content: c.content, diff --git a/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.test.ts b/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.test.ts index 0a3ade0c6..ccfcf9308 100644 --- a/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.test.ts +++ b/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.test.ts @@ -1,4 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import type { LuaScript } from '../../types/level-types' const mockList = vi.fn() const mockDelete = vi.fn() @@ -23,7 +24,7 @@ describe('setLuaScripts', () => { mockDelete.mockResolvedValue(undefined) mockCreate.mockResolvedValue(undefined) - await setLuaScripts([ + const scripts: LuaScript[] = [ { id: 'new', name: 'New', @@ -32,7 +33,9 @@ describe('setLuaScripts', () => { allowedGlobals: ['math'], timeoutMs: 1500, }, - ] as any) + ] + + await setLuaScripts(scripts) expect(mockDelete).toHaveBeenCalledTimes(1) expect(mockCreate).toHaveBeenCalledTimes(1) diff --git a/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.ts b/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.ts index 99077a709..b3af349bd 100644 --- a/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.ts +++ b/frontends/nextjs/src/lib/db/lua-scripts/set-lua-scripts.ts @@ -2,6 +2,10 @@ import type { LuaScript } from '../../types/level-types' import { getAdapter } from '../core/dbal-client' import { serializeLuaScript } from './serialization/serialize-lua-script' +type DBALLuaScriptRecord = { + id: string +} + /** * Set all Lua scripts (replaces existing) */ @@ -9,8 +13,8 @@ export async function setLuaScripts(scripts: LuaScript[]): Promise { const adapter = getAdapter() // Delete existing scripts - const existing = await adapter.list('LuaScript') - for (const s of existing.data as any[]) { + const existing = (await adapter.list('LuaScript')) as { data: DBALLuaScriptRecord[] } + for (const s of existing.data) { await adapter.delete('LuaScript', s.id) } diff --git a/frontends/nextjs/src/lib/db/workflows/crud/get-workflows.ts b/frontends/nextjs/src/lib/db/workflows/crud/get-workflows.ts index 6bdc24831..c379a89db 100644 --- a/frontends/nextjs/src/lib/db/workflows/crud/get-workflows.ts +++ b/frontends/nextjs/src/lib/db/workflows/crud/get-workflows.ts @@ -1,13 +1,22 @@ import { getAdapter } from '../../core/dbal-client' import type { Workflow } from '../../types/level-types' +type DBALWorkflowRecord = { + id: string + name: string + description?: string | null + nodes: string + edges: string + enabled: boolean +} + /** * Get all workflows */ export async function getWorkflows(): Promise { const adapter = getAdapter() - const result = await adapter.list('Workflow') - return (result.data as any[]).map(w => ({ + const result = (await adapter.list('Workflow')) as { data: DBALWorkflowRecord[] } + return result.data.map(w => ({ id: w.id, name: w.name, description: w.description || undefined, diff --git a/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.test.ts b/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.test.ts index dc3048b09..58d9f9681 100644 --- a/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.test.ts +++ b/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.test.ts @@ -1,4 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import type { Workflow } from '../../types/level-types' const mockList = vi.fn() const mockDelete = vi.fn() @@ -23,7 +24,11 @@ describe('setWorkflows', () => { mockDelete.mockResolvedValue(undefined) mockCreate.mockResolvedValue(undefined) - await setWorkflows([{ id: 'new', name: 'New', nodes: [], edges: [], enabled: true }] as any) + const workflows: Workflow[] = [ + { id: 'new', name: 'New', nodes: [], edges: [], enabled: true }, + ] + + await setWorkflows(workflows) expect(mockDelete).toHaveBeenCalledTimes(1) expect(mockCreate).toHaveBeenCalledTimes(1) diff --git a/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.ts b/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.ts index dbff52ea6..c92f7dcb2 100644 --- a/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.ts +++ b/frontends/nextjs/src/lib/db/workflows/crud/set-workflows.ts @@ -1,6 +1,10 @@ import { getAdapter } from '../../core/dbal-client' import type { Workflow } from '../../types/level-types' +type DBALWorkflowRecord = { + id: string +} + /** * Set all workflows (replaces existing) */ @@ -8,8 +12,8 @@ export async function setWorkflows(workflows: Workflow[]): Promise { const adapter = getAdapter() // Delete existing workflows - const existing = await adapter.list('Workflow') - for (const w of existing.data as any[]) { + const existing = (await adapter.list('Workflow')) as { data: DBALWorkflowRecord[] } + for (const w of existing.data) { await adapter.delete('Workflow', w.id) } diff --git a/frontends/nextjs/src/lib/db/workflows/crud/update-workflow.test.ts b/frontends/nextjs/src/lib/db/workflows/crud/update-workflow.test.ts index df8ddd3aa..901eb859c 100644 --- a/frontends/nextjs/src/lib/db/workflows/crud/update-workflow.test.ts +++ b/frontends/nextjs/src/lib/db/workflows/crud/update-workflow.test.ts @@ -1,4 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import type { Workflow } from '../../types/level-types' const mockUpdate = vi.fn() const mockAdapter = { update: mockUpdate } @@ -20,7 +21,7 @@ describe('updateWorkflow', () => { ])('should update $id', async ({ id, updates }) => { mockUpdate.mockResolvedValue(undefined) - await updateWorkflow(id, updates as any) + await updateWorkflow(id, updates as Partial) expect(mockUpdate).toHaveBeenCalledWith('Workflow', id, expect.any(Object)) }) diff --git a/packages/admin_dialog/seed/metadata.json b/packages/admin_dialog/seed/metadata.json index 6c95ef652..81800d917 100644 --- a/packages/admin_dialog/seed/metadata.json +++ b/packages/admin_dialog/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } + }, + "minLevel": 4 } \ No newline at end of file diff --git a/packages/arcade_lobby/seed/metadata.json b/packages/arcade_lobby/seed/metadata.json index 6357b42ff..0fb6caa53 100644 --- a/packages/arcade_lobby/seed/metadata.json +++ b/packages/arcade_lobby/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } -} + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/code_editor/seed/metadata.json b/packages/code_editor/seed/metadata.json index 06069694a..456dd6608 100644 --- a/packages/code_editor/seed/metadata.json +++ b/packages/code_editor/seed/metadata.json @@ -8,7 +8,17 @@ "category": "editors", "dependencies": [], "exports": { - "scripts": ["json", "lua", "theme"], - "components": ["CodeEditor", "JsonEditor", "LuaEditor", "ThemeEditor"] - } -} + "scripts": [ + "json", + "lua", + "theme" + ], + "components": [ + "CodeEditor", + "JsonEditor", + "LuaEditor", + "ThemeEditor" + ] + }, + "minLevel": 5 +} \ No newline at end of file diff --git a/packages/codegen_studio/seed/metadata.json b/packages/codegen_studio/seed/metadata.json index c3374da0f..b45293cfa 100644 --- a/packages/codegen_studio/seed/metadata.json +++ b/packages/codegen_studio/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } -} + }, + "minLevel": 5 +} \ No newline at end of file diff --git a/packages/dashboard/seed/metadata.json b/packages/dashboard/seed/metadata.json index 193a8e73f..41d514e76 100644 --- a/packages/dashboard/seed/metadata.json +++ b/packages/dashboard/seed/metadata.json @@ -8,7 +8,15 @@ "category": "ui", "dependencies": [], "exports": { - "components": ["StatCard", "DashboardGrid", "Widget"], - "scripts": ["stats", "layout"] - } + "components": [ + "StatCard", + "DashboardGrid", + "Widget" + ], + "scripts": [ + "stats", + "layout" + ] + }, + "minLevel": 2 } \ No newline at end of file diff --git a/packages/data_table/seed/metadata.json b/packages/data_table/seed/metadata.json index d8b69acd8..26d561c08 100644 --- a/packages/data_table/seed/metadata.json +++ b/packages/data_table/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } + }, + "minLevel": 1 } \ No newline at end of file diff --git a/packages/form_builder/seed/metadata.json b/packages/form_builder/seed/metadata.json index 80c88cb7a..f5bf08f96 100644 --- a/packages/form_builder/seed/metadata.json +++ b/packages/form_builder/seed/metadata.json @@ -8,7 +8,17 @@ "category": "ui", "dependencies": [], "exports": { - "components": ["FormField", "EmailField", "PasswordField", "NumberField", "SearchBar"], - "scripts": ["fields", "validate"] - } + "components": [ + "FormField", + "EmailField", + "PasswordField", + "NumberField", + "SearchBar" + ], + "scripts": [ + "fields", + "validate" + ] + }, + "minLevel": 1 } \ No newline at end of file diff --git a/packages/forum_forge/seed/metadata.json b/packages/forum_forge/seed/metadata.json index c0351c27d..8eeaa1618 100644 --- a/packages/forum_forge/seed/metadata.json +++ b/packages/forum_forge/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } -} + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/nav_menu/seed/metadata.json b/packages/nav_menu/seed/metadata.json index 83cffbfc6..15680c740 100644 --- a/packages/nav_menu/seed/metadata.json +++ b/packages/nav_menu/seed/metadata.json @@ -6,9 +6,19 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions"], + "dependencies": [ + "ui_permissions" + ], "exports": { - "components": ["Sidebar", "NavigationMenu", "Breadcrumbs"], - "scripts": ["sidebar", "menu"] - } + "components": [ + "Sidebar", + "NavigationMenu", + "Breadcrumbs" + ], + "scripts": [ + "sidebar", + "menu" + ] + }, + "minLevel": 2 } \ No newline at end of file diff --git a/packages/notification_center/seed/metadata.json b/packages/notification_center/seed/metadata.json index c444bbd71..ba26b0acf 100644 --- a/packages/notification_center/seed/metadata.json +++ b/packages/notification_center/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } + }, + "minLevel": 1 } \ No newline at end of file diff --git a/packages/schema_editor/seed/metadata.json b/packages/schema_editor/seed/metadata.json index 8d3ec4d45..30cf07fa2 100644 --- a/packages/schema_editor/seed/metadata.json +++ b/packages/schema_editor/seed/metadata.json @@ -6,9 +6,20 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "editors", - "dependencies": ["form_builder"], + "dependencies": [ + "form_builder" + ], "exports": { - "scripts": ["fields", "tables", "relations"], - "components": ["SchemaEditor", "TableEditor", "FieldEditor"] - } -} + "scripts": [ + "fields", + "tables", + "relations" + ], + "components": [ + "SchemaEditor", + "TableEditor", + "FieldEditor" + ] + }, + "minLevel": 5 +} \ No newline at end of file diff --git a/packages/social_hub/seed/metadata.json b/packages/social_hub/seed/metadata.json index ce8dbb377..d19c0070a 100644 --- a/packages/social_hub/seed/metadata.json +++ b/packages/social_hub/seed/metadata.json @@ -39,5 +39,6 @@ "social_hub_feed_post_2_body", "social_hub_feed_post_2_badge" ] - } -} + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/stream_cast/seed/metadata.json b/packages/stream_cast/seed/metadata.json index 0ddcc79b3..f8aa45b2b 100644 --- a/packages/stream_cast/seed/metadata.json +++ b/packages/stream_cast/seed/metadata.json @@ -9,5 +9,6 @@ "dependencies": [], "exports": { "components": [] - } -} + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/ui_auth/seed/metadata.json b/packages/ui_auth/seed/metadata.json index 5450a2e67..3242a2a90 100644 --- a/packages/ui_auth/seed/metadata.json +++ b/packages/ui_auth/seed/metadata.json @@ -6,9 +6,19 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions"], + "dependencies": [ + "ui_permissions" + ], "exports": { - "components": ["AccessDenied", "AuthGate", "PageLoader"], - "scripts": ["denied", "gate"] - } -} + "components": [ + "AccessDenied", + "AuthGate", + "PageLoader" + ], + "scripts": [ + "denied", + "gate" + ] + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/ui_dialogs/seed/metadata.json b/packages/ui_dialogs/seed/metadata.json index e206acc49..7a3f852c1 100644 --- a/packages/ui_dialogs/seed/metadata.json +++ b/packages/ui_dialogs/seed/metadata.json @@ -8,7 +8,15 @@ "category": "ui", "dependencies": [], "exports": { - "components": ["ConfirmDialog", "AlertDialog", "FormDialog"], - "scripts": ["confirm", "alert"] - } -} + "components": [ + "ConfirmDialog", + "AlertDialog", + "FormDialog" + ], + "scripts": [ + "confirm", + "alert" + ] + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_footer/seed/metadata.json b/packages/ui_footer/seed/metadata.json index 4d45b8f94..67ee7bfd4 100644 --- a/packages/ui_footer/seed/metadata.json +++ b/packages/ui_footer/seed/metadata.json @@ -8,8 +8,13 @@ "category": "ui", "dependencies": [], "exports": { - "components": ["AppFooter"], - "scripts": ["footer"], + "components": [ + "AppFooter" + ], + "scripts": [ + "footer" + ], "pages": [] - } -} + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_header/seed/metadata.json b/packages/ui_header/seed/metadata.json index 252387c24..0b77d058e 100644 --- a/packages/ui_header/seed/metadata.json +++ b/packages/ui_header/seed/metadata.json @@ -6,10 +6,17 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions"], + "dependencies": [ + "ui_permissions" + ], "exports": { - "components": ["AppHeader"], - "scripts": ["header"], + "components": [ + "AppHeader" + ], + "scripts": [ + "header" + ], "pages": [] - } -} + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/ui_home/seed/metadata.json b/packages/ui_home/seed/metadata.json index 3dd04c0be..faa31ba7d 100644 --- a/packages/ui_home/seed/metadata.json +++ b/packages/ui_home/seed/metadata.json @@ -6,10 +6,18 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions"], + "dependencies": [ + "ui_permissions" + ], "exports": { - "pages": ["level1"], - "scripts": ["home_ui", "navigate"], + "pages": [ + "level1" + ], + "scripts": [ + "home_ui", + "navigate" + ], "components": [] - } -} + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_intro/seed/metadata.json b/packages/ui_intro/seed/metadata.json index ac0d4c021..72905da6d 100644 --- a/packages/ui_intro/seed/metadata.json +++ b/packages/ui_intro/seed/metadata.json @@ -8,8 +8,13 @@ "category": "ui", "dependencies": [], "exports": { - "components": ["IntroSection"], - "scripts": ["intro"], + "components": [ + "IntroSection" + ], + "scripts": [ + "intro" + ], "pages": [] - } -} + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_level2/seed/metadata.json b/packages/ui_level2/seed/metadata.json index 23839022f..d825bdcf9 100644 --- a/packages/ui_level2/seed/metadata.json +++ b/packages/ui_level2/seed/metadata.json @@ -6,10 +6,21 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions", "ui_header", "ui_intro"], + "dependencies": [ + "ui_permissions", + "ui_header", + "ui_intro" + ], "exports": { - "pages": ["level2"], - "scripts": ["layout", "profile", "comments"], + "pages": [ + "level2" + ], + "scripts": [ + "layout", + "profile", + "comments" + ], "components": [] - } -} + }, + "minLevel": 2 +} \ No newline at end of file diff --git a/packages/ui_level3/seed/metadata.json b/packages/ui_level3/seed/metadata.json index 533a6c515..9abae0f9f 100644 --- a/packages/ui_level3/seed/metadata.json +++ b/packages/ui_level3/seed/metadata.json @@ -6,10 +6,21 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions", "ui_header", "ui_intro"], + "dependencies": [ + "ui_permissions", + "ui_header", + "ui_intro" + ], "exports": { - "pages": ["level3"], - "scripts": ["layout", "users", "moderation"], + "pages": [ + "level3" + ], + "scripts": [ + "layout", + "users", + "moderation" + ], "components": [] - } -} + }, + "minLevel": 3 +} \ No newline at end of file diff --git a/packages/ui_level4/seed/metadata.json b/packages/ui_level4/seed/metadata.json index 8d23ffea8..b47556cd9 100644 --- a/packages/ui_level4/seed/metadata.json +++ b/packages/ui_level4/seed/metadata.json @@ -6,10 +6,21 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions", "ui_header", "ui_intro"], + "dependencies": [ + "ui_permissions", + "ui_header", + "ui_intro" + ], "exports": { - "pages": ["level4"], - "scripts": ["layout", "schemas", "workflows"], + "pages": [ + "level4" + ], + "scripts": [ + "layout", + "schemas", + "workflows" + ], "components": [] - } -} + }, + "minLevel": 4 +} \ No newline at end of file diff --git a/packages/ui_level5/seed/metadata.json b/packages/ui_level5/seed/metadata.json index 7e2b3fc60..f8f464aff 100644 --- a/packages/ui_level5/seed/metadata.json +++ b/packages/ui_level5/seed/metadata.json @@ -6,10 +6,21 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions", "ui_header", "ui_intro"], + "dependencies": [ + "ui_permissions", + "ui_header", + "ui_intro" + ], "exports": { - "pages": ["level5"], - "scripts": ["layout", "tenants", "transfer"], + "pages": [ + "level5" + ], + "scripts": [ + "layout", + "tenants", + "transfer" + ], "components": [] - } -} + }, + "minLevel": 5 +} \ No newline at end of file diff --git a/packages/ui_login/seed/metadata.json b/packages/ui_login/seed/metadata.json index 94aac1a4a..774692a53 100644 --- a/packages/ui_login/seed/metadata.json +++ b/packages/ui_login/seed/metadata.json @@ -6,10 +6,18 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "ui", - "dependencies": ["ui_permissions"], + "dependencies": [ + "ui_permissions" + ], "exports": { - "pages": ["login"], - "scripts": ["login_ui", "login_actions"], + "pages": [ + "login" + ], + "scripts": [ + "login_ui", + "login_actions" + ], "components": [] - } -} + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_pages/seed/metadata.json b/packages/ui_pages/seed/metadata.json index b947b6009..371235075 100644 --- a/packages/ui_pages/seed/metadata.json +++ b/packages/ui_pages/seed/metadata.json @@ -22,5 +22,6 @@ "pages": [], "scripts": [], "components": [] - } -} + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_permissions/seed/metadata.json b/packages/ui_permissions/seed/metadata.json index 9e598080e..86e6c832c 100644 --- a/packages/ui_permissions/seed/metadata.json +++ b/packages/ui_permissions/seed/metadata.json @@ -8,7 +8,10 @@ "category": "ui", "dependencies": [], "exports": { - "scripts": ["permissions"], + "scripts": [ + "permissions" + ], "components": [] - } -} + }, + "minLevel": 1 +} \ No newline at end of file diff --git a/packages/ui_permissions/seed/scripts/levels.lua b/packages/ui_permissions/seed/scripts/levels.lua index 083e5d89d..8b42ec8fa 100644 --- a/packages/ui_permissions/seed/scripts/levels.lua +++ b/packages/ui_permissions/seed/scripts/levels.lua @@ -1,8 +1,9 @@ --- Permission level constants (5-level system) +-- Permission level constants (6-level system) return { PUBLIC = 1, USER = 2, - ADMIN = 3, - GOD = 4, - SUPERGOD = 5 + MODERATOR = 3, + ADMIN = 4, + GOD = 5, + SUPERGOD = 6 } diff --git a/packages/user_manager/seed/metadata.json b/packages/user_manager/seed/metadata.json index 6431cba59..ac3be6e4e 100644 --- a/packages/user_manager/seed/metadata.json +++ b/packages/user_manager/seed/metadata.json @@ -6,9 +6,20 @@ "icon": "static_content/icon.svg", "author": "MetaBuilder", "category": "managers", - "dependencies": ["ui_permissions", "data_table"], + "dependencies": [ + "ui_permissions", + "data_table" + ], "exports": { - "scripts": ["list", "actions"], - "components": ["UserManagement", "UserList", "UserActions"] - } -} + "scripts": [ + "list", + "actions" + ], + "components": [ + "UserManagement", + "UserList", + "UserActions" + ] + }, + "minLevel": 4 +} \ No newline at end of file diff --git a/packages/workflow_editor/seed/metadata.json b/packages/workflow_editor/seed/metadata.json index 6b877fe36..c0327c6cd 100644 --- a/packages/workflow_editor/seed/metadata.json +++ b/packages/workflow_editor/seed/metadata.json @@ -8,7 +8,16 @@ "category": "editors", "dependencies": [], "exports": { - "scripts": ["editor", "status", "run"], - "components": ["WorkflowEditor", "WorkflowRunCard", "WorkflowRunStatus"] - } -} + "scripts": [ + "editor", + "status", + "run" + ], + "components": [ + "WorkflowEditor", + "WorkflowRunCard", + "WorkflowRunStatus" + ] + }, + "minLevel": 5 +} \ No newline at end of file