@adminiumjs/adminium 0.1.0-rc.1
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/LICENSE +661 -0
- package/README.md +94 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js +2 -0
- package/dashboard/assets/DeltaPill-dxlsGh-1.js.map +1 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js +2 -0
- package/dashboard/assets/DistributionCorrelationWidgets-ztVy_W_R.js.map +1 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js +2 -0
- package/dashboard/assets/PartWholeWidgets-BDn0i0jt.js.map +1 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js +2 -0
- package/dashboard/assets/RemapEditor-z3vRY12e.js.map +1 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js +2 -0
- package/dashboard/assets/ReviewScreen-COkLQ3T7.js.map +1 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js +2 -0
- package/dashboard/assets/Sparkline-Cvwo368J.js.map +1 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js +2 -0
- package/dashboard/assets/WidgetMissingCard-D0bPJKIs.js.map +1 -0
- package/dashboard/assets/arc-CPxb74pf.js +2 -0
- package/dashboard/assets/arc-CPxb74pf.js.map +1 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js +2 -0
- package/dashboard/assets/bars-ranking-components-9Asn_0gR.js.map +1 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js +2 -0
- package/dashboard/assets/blocks-track-components-BST-NjK2.js.map +1 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js +2 -0
- package/dashboard/assets/calendar-track-components-RgNtGtZR.js.map +1 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js +2 -0
- package/dashboard/assets/chrome-track-components-ClNsentC.js.map +1 -0
- package/dashboard/assets/common-BY1j__bD.js +2 -0
- package/dashboard/assets/common-BY1j__bD.js.map +1 -0
- package/dashboard/assets/common-BdlXKpcB.js +2 -0
- package/dashboard/assets/common-BdlXKpcB.js.map +1 -0
- package/dashboard/assets/common-BqqhgMgB.js +2 -0
- package/dashboard/assets/common-BqqhgMgB.js.map +1 -0
- package/dashboard/assets/common-BribWmIo.js +2 -0
- package/dashboard/assets/common-BribWmIo.js.map +1 -0
- package/dashboard/assets/common-Cmf0_lKV.js +2 -0
- package/dashboard/assets/common-Cmf0_lKV.js.map +1 -0
- package/dashboard/assets/common-i0r48qY9.js +2 -0
- package/dashboard/assets/common-i0r48qY9.js.map +1 -0
- package/dashboard/assets/common-x8cfkwpc.js +2 -0
- package/dashboard/assets/common-x8cfkwpc.js.map +1 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js +2 -0
- package/dashboard/assets/communication-track-components-CNLZXOH_.js.map +1 -0
- package/dashboard/assets/components-Bp5cFm2d.js +2 -0
- package/dashboard/assets/components-Bp5cFm2d.js.map +1 -0
- package/dashboard/assets/components-C4-O3_gD.js +2 -0
- package/dashboard/assets/components-C4-O3_gD.js.map +1 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js +2 -0
- package/dashboard/assets/domain-ops-track-components-BPa41AU7.js.map +1 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js +2 -0
- package/dashboard/assets/domain-track-components-CQ1i1X1t.js.map +1 -0
- package/dashboard/assets/errors-BHUWiAQ3.js +2 -0
- package/dashboard/assets/errors-BHUWiAQ3.js.map +1 -0
- package/dashboard/assets/errors-BbyKweDG.js +2 -0
- package/dashboard/assets/errors-BbyKweDG.js.map +1 -0
- package/dashboard/assets/errors-CMQ6JC31.js +2 -0
- package/dashboard/assets/errors-CMQ6JC31.js.map +1 -0
- package/dashboard/assets/errors-D3nVgTmf.js +2 -0
- package/dashboard/assets/errors-D3nVgTmf.js.map +1 -0
- package/dashboard/assets/errors-IqJSoANC.js +2 -0
- package/dashboard/assets/errors-IqJSoANC.js.map +1 -0
- package/dashboard/assets/errors-gmIkO9F6.js +2 -0
- package/dashboard/assets/errors-gmIkO9F6.js.map +1 -0
- package/dashboard/assets/errors-vFk058Vh.js +2 -0
- package/dashboard/assets/errors-vFk058Vh.js.map +1 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js +2 -0
- package/dashboard/assets/feeds-track-f-components-Cl_8SkGs.js.map +1 -0
- package/dashboard/assets/format-Lx4cQ8k-.js +2 -0
- package/dashboard/assets/format-Lx4cQ8k-.js.map +1 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js +2 -0
- package/dashboard/assets/forms-track-components-Bc2Hoxdh.js.map +1 -0
- package/dashboard/assets/generated-1EfWhCMA.js +2 -0
- package/dashboard/assets/generated-1EfWhCMA.js.map +1 -0
- package/dashboard/assets/generated-BB3ZMxvx.js +2 -0
- package/dashboard/assets/generated-BB3ZMxvx.js.map +1 -0
- package/dashboard/assets/generated-C0JVNBRX.js +2 -0
- package/dashboard/assets/generated-C0JVNBRX.js.map +1 -0
- package/dashboard/assets/generated-C1W48_-3.js +2 -0
- package/dashboard/assets/generated-C1W48_-3.js.map +1 -0
- package/dashboard/assets/generated-CluiB_xY.js +2 -0
- package/dashboard/assets/generated-CluiB_xY.js.map +1 -0
- package/dashboard/assets/generated-DDGtlf-4.js +2 -0
- package/dashboard/assets/generated-DDGtlf-4.js.map +1 -0
- package/dashboard/assets/generated-DPCHvNto.js +2 -0
- package/dashboard/assets/generated-DPCHvNto.js.map +1 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js +3 -0
- package/dashboard/assets/geo-track-components-Ct4-MSRw.js.map +1 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
- package/dashboard/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
- package/dashboard/assets/index-DPi4cduu.css +1 -0
- package/dashboard/assets/index-PB1II0WV.js +137 -0
- package/dashboard/assets/index-PB1II0WV.js.map +1 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-italic-BrDczivE.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-italic-B2M6KQje.woff2 +0 -0
- package/dashboard/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
- package/dashboard/assets/leaflet-CIGW-MKW.css +1 -0
- package/dashboard/assets/leaflet-src-D12shr04.js +2 -0
- package/dashboard/assets/leaflet-src-D12shr04.js.map +1 -0
- package/dashboard/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
- package/dashboard/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js +2 -0
- package/dashboard/assets/media-track-components-CpeII-tT.js.map +1 -0
- package/dashboard/assets/scales-e0tkfEy1.js +2 -0
- package/dashboard/assets/scales-e0tkfEy1.js.map +1 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js +2 -0
- package/dashboard/assets/sparkline-2JUGDrMW.js.map +1 -0
- package/dashboard/assets/stats-BNgXz5BD.js +2 -0
- package/dashboard/assets/stats-BNgXz5BD.js.map +1 -0
- package/dashboard/assets/studio-B7hMOwAF.js +2 -0
- package/dashboard/assets/studio-B7hMOwAF.js.map +1 -0
- package/dashboard/assets/studio-BN_9xHY3.js +2 -0
- package/dashboard/assets/studio-BN_9xHY3.js.map +1 -0
- package/dashboard/assets/studio-Cn2MObe8.js +2 -0
- package/dashboard/assets/studio-Cn2MObe8.js.map +1 -0
- package/dashboard/assets/studio-DZEZCCkw.js +2 -0
- package/dashboard/assets/studio-DZEZCCkw.js.map +1 -0
- package/dashboard/assets/studio-DzatTvLl.js +2 -0
- package/dashboard/assets/studio-DzatTvLl.js.map +1 -0
- package/dashboard/assets/studio-cBlD8x90.js +2 -0
- package/dashboard/assets/studio-cBlD8x90.js.map +1 -0
- package/dashboard/assets/studio-cglZPbJK.js +2 -0
- package/dashboard/assets/studio-cglZPbJK.js.map +1 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js +2 -0
- package/dashboard/assets/system-track-components-GTYYpnfB.js.map +1 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js +2 -0
- package/dashboard/assets/tables-tail-components-DiA5GeHB.js.map +1 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js +2 -0
- package/dashboard/assets/tables-track-f-components-CVNPd7rq.js.map +1 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js +2 -0
- package/dashboard/assets/time-flow-components-nKsaryry.js.map +1 -0
- package/dashboard/assets/ui-B-kZetor.js +2 -0
- package/dashboard/assets/ui-B-kZetor.js.map +1 -0
- package/dashboard/assets/ui-BEStJ5Pw.js +2 -0
- package/dashboard/assets/ui-BEStJ5Pw.js.map +1 -0
- package/dashboard/assets/ui-BS5_eDN4.js +2 -0
- package/dashboard/assets/ui-BS5_eDN4.js.map +1 -0
- package/dashboard/assets/ui-BZ0EyxRH.js +2 -0
- package/dashboard/assets/ui-BZ0EyxRH.js.map +1 -0
- package/dashboard/assets/ui-BloJDdt6.js +2 -0
- package/dashboard/assets/ui-BloJDdt6.js.map +1 -0
- package/dashboard/assets/ui-CpdrplJH.js +2 -0
- package/dashboard/assets/ui-CpdrplJH.js.map +1 -0
- package/dashboard/assets/ui-YJfT644k.js +2 -0
- package/dashboard/assets/ui-YJfT644k.js.map +1 -0
- package/dashboard/assets/widgets-uDqZWw4A.js +2 -0
- package/dashboard/assets/widgets-uDqZWw4A.js.map +1 -0
- package/dashboard/index.html +41 -0
- package/dist/app.d.ts +48 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +250 -0
- package/dist/app.js.map +1 -0
- package/dist/auth/audit.d.ts +22 -0
- package/dist/auth/audit.d.ts.map +1 -0
- package/dist/auth/audit.js +17 -0
- package/dist/auth/audit.js.map +1 -0
- package/dist/auth/desktop-session.d.ts +53 -0
- package/dist/auth/desktop-session.d.ts.map +1 -0
- package/dist/auth/desktop-session.js +111 -0
- package/dist/auth/desktop-session.js.map +1 -0
- package/dist/auth/passwords.d.ts +17 -0
- package/dist/auth/passwords.d.ts.map +1 -0
- package/dist/auth/passwords.js +40 -0
- package/dist/auth/passwords.js.map +1 -0
- package/dist/auth/sessions.d.ts +77 -0
- package/dist/auth/sessions.d.ts.map +1 -0
- package/dist/auth/sessions.js +137 -0
- package/dist/auth/sessions.js.map +1 -0
- package/dist/auth/totp.d.ts +30 -0
- package/dist/auth/totp.d.ts.map +1 -0
- package/dist/auth/totp.js +97 -0
- package/dist/auth/totp.js.map +1 -0
- package/dist/backup/backup-service.d.ts +157 -0
- package/dist/backup/backup-service.d.ts.map +1 -0
- package/dist/backup/backup-service.js +354 -0
- package/dist/backup/backup-service.js.map +1 -0
- package/dist/backup/format.d.ts +300 -0
- package/dist/backup/format.d.ts.map +1 -0
- package/dist/backup/format.js +304 -0
- package/dist/backup/format.js.map +1 -0
- package/dist/backup/notify.d.ts +55 -0
- package/dist/backup/notify.d.ts.map +1 -0
- package/dist/backup/notify.js +60 -0
- package/dist/backup/notify.js.map +1 -0
- package/dist/backup/snapshot.d.ts +78 -0
- package/dist/backup/snapshot.d.ts.map +1 -0
- package/dist/backup/snapshot.js +142 -0
- package/dist/backup/snapshot.js.map +1 -0
- package/dist/capabilities/catalog.d.ts +33 -0
- package/dist/capabilities/catalog.d.ts.map +1 -0
- package/dist/capabilities/catalog.js +32 -0
- package/dist/capabilities/catalog.js.map +1 -0
- package/dist/capabilities/grants.d.ts +44 -0
- package/dist/capabilities/grants.d.ts.map +1 -0
- package/dist/capabilities/grants.js +65 -0
- package/dist/capabilities/grants.js.map +1 -0
- package/dist/cli/allowlist.d.ts +46 -0
- package/dist/cli/allowlist.d.ts.map +1 -0
- package/dist/cli/allowlist.js +99 -0
- package/dist/cli/allowlist.js.map +1 -0
- package/dist/cli/args.d.ts +63 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +92 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/command.d.ts +32 -0
- package/dist/cli/command.d.ts.map +1 -0
- package/dist/cli/command.js +64 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands/apply-llm-response.d.ts +32 -0
- package/dist/cli/commands/apply-llm-response.d.ts.map +1 -0
- package/dist/cli/commands/apply-llm-response.js +209 -0
- package/dist/cli/commands/apply-llm-response.js.map +1 -0
- package/dist/cli/commands/export-zip.d.ts +17 -0
- package/dist/cli/commands/export-zip.d.ts.map +1 -0
- package/dist/cli/commands/export-zip.js +111 -0
- package/dist/cli/commands/export-zip.js.map +1 -0
- package/dist/cli/commands/generate-prompt.d.ts +29 -0
- package/dist/cli/commands/generate-prompt.d.ts.map +1 -0
- package/dist/cli/commands/generate-prompt.js +154 -0
- package/dist/cli/commands/generate-prompt.js.map +1 -0
- package/dist/cli/commands/import-zip.d.ts +13 -0
- package/dist/cli/commands/import-zip.d.ts.map +1 -0
- package/dist/cli/commands/import-zip.js +95 -0
- package/dist/cli/commands/import-zip.js.map +1 -0
- package/dist/cli/commands/init.d.ts +47 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +372 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/introspect.d.ts +11 -0
- package/dist/cli/commands/introspect.d.ts.map +1 -0
- package/dist/cli/commands/introspect.js +100 -0
- package/dist/cli/commands/introspect.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +11 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +80 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/start.d.ts +22 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +101 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/exit.d.ts +37 -0
- package/dist/cli/exit.d.ts.map +1 -0
- package/dist/cli/exit.js +39 -0
- package/dist/cli/exit.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +17 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +49 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +77 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/run.d.ts +35 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +139 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/cli/runtime.d.ts +116 -0
- package/dist/cli/runtime.d.ts.map +1 -0
- package/dist/cli/runtime.js +181 -0
- package/dist/cli/runtime.js.map +1 -0
- package/dist/cli/static-root.d.ts +42 -0
- package/dist/cli/static-root.d.ts.map +1 -0
- package/dist/cli/static-root.js +58 -0
- package/dist/cli/static-root.js.map +1 -0
- package/dist/compose.d.ts +135 -0
- package/dist/compose.d.ts.map +1 -0
- package/dist/compose.js +383 -0
- package/dist/compose.js.map +1 -0
- package/dist/config/bootstrap.d.ts +33 -0
- package/dist/config/bootstrap.d.ts.map +1 -0
- package/dist/config/bootstrap.js +81 -0
- package/dist/config/bootstrap.js.map +1 -0
- package/dist/config/env.d.ts +95 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +236 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/secrets.d.ts +24 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +74 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/connections/crypto.d.ts +9 -0
- package/dist/connections/crypto.d.ts.map +1 -0
- package/dist/connections/crypto.js +16 -0
- package/dist/connections/crypto.js.map +1 -0
- package/dist/connections/dsn.d.ts +42 -0
- package/dist/connections/dsn.d.ts.map +1 -0
- package/dist/connections/dsn.js +131 -0
- package/dist/connections/dsn.js.map +1 -0
- package/dist/connections/effective-schema.d.ts +65 -0
- package/dist/connections/effective-schema.d.ts.map +1 -0
- package/dist/connections/effective-schema.js +249 -0
- package/dist/connections/effective-schema.js.map +1 -0
- package/dist/connections/introspect.d.ts +52 -0
- package/dist/connections/introspect.d.ts.map +1 -0
- package/dist/connections/introspect.js +111 -0
- package/dist/connections/introspect.js.map +1 -0
- package/dist/connections/manager.d.ts +97 -0
- package/dist/connections/manager.d.ts.map +1 -0
- package/dist/connections/manager.js +224 -0
- package/dist/connections/manager.js.map +1 -0
- package/dist/connections/register-adapters.d.ts +42 -0
- package/dist/connections/register-adapters.d.ts.map +1 -0
- package/dist/connections/register-adapters.js +92 -0
- package/dist/connections/register-adapters.js.map +1 -0
- package/dist/crud/filters.d.ts +57 -0
- package/dist/crud/filters.d.ts.map +1 -0
- package/dist/crud/filters.js +177 -0
- package/dist/crud/filters.js.map +1 -0
- package/dist/crud/identifiers.d.ts +58 -0
- package/dist/crud/identifiers.d.ts.map +1 -0
- package/dist/crud/identifiers.js +99 -0
- package/dist/crud/identifiers.js.map +1 -0
- package/dist/crud/list.d.ts +51 -0
- package/dist/crud/list.d.ts.map +1 -0
- package/dist/crud/list.js +126 -0
- package/dist/crud/list.js.map +1 -0
- package/dist/crud/mask.d.ts +23 -0
- package/dist/crud/mask.d.ts.map +1 -0
- package/dist/crud/mask.js +41 -0
- package/dist/crud/mask.js.map +1 -0
- package/dist/crud/records.d.ts +33 -0
- package/dist/crud/records.d.ts.map +1 -0
- package/dist/crud/records.js +126 -0
- package/dist/crud/records.js.map +1 -0
- package/dist/crud/undo.d.ts +55 -0
- package/dist/crud/undo.d.ts.map +1 -0
- package/dist/crud/undo.js +74 -0
- package/dist/crud/undo.js.map +1 -0
- package/dist/data-io/coerce.d.ts +28 -0
- package/dist/data-io/coerce.d.ts.map +1 -0
- package/dist/data-io/coerce.js +123 -0
- package/dist/data-io/coerce.js.map +1 -0
- package/dist/data-io/csv.d.ts +38 -0
- package/dist/data-io/csv.d.ts.map +1 -0
- package/dist/data-io/csv.js +138 -0
- package/dist/data-io/csv.js.map +1 -0
- package/dist/data-io/snapshot-view.d.ts +10 -0
- package/dist/data-io/snapshot-view.d.ts.map +1 -0
- package/dist/data-io/snapshot-view.js +19 -0
- package/dist/data-io/snapshot-view.js.map +1 -0
- package/dist/desktop/demo-seed.d.ts +23 -0
- package/dist/desktop/demo-seed.d.ts.map +1 -0
- package/dist/desktop/demo-seed.js +28 -0
- package/dist/desktop/demo-seed.js.map +1 -0
- package/dist/desktop/lan-share.d.ts +94 -0
- package/dist/desktop/lan-share.d.ts.map +1 -0
- package/dist/desktop/lan-share.js +150 -0
- package/dist/desktop/lan-share.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -0
- package/dist/export/bundle.d.ts +235 -0
- package/dist/export/bundle.d.ts.map +1 -0
- package/dist/export/bundle.js +172 -0
- package/dist/export/bundle.js.map +1 -0
- package/dist/export/import-service.d.ts +99 -0
- package/dist/export/import-service.d.ts.map +1 -0
- package/dist/export/import-service.js +515 -0
- package/dist/export/import-service.js.map +1 -0
- package/dist/export/readme.d.ts +25 -0
- package/dist/export/readme.d.ts.map +1 -0
- package/dist/export/readme.js +154 -0
- package/dist/export/readme.js.map +1 -0
- package/dist/export/redaction.d.ts +118 -0
- package/dist/export/redaction.d.ts.map +1 -0
- package/dist/export/redaction.js +233 -0
- package/dist/export/redaction.js.map +1 -0
- package/dist/export/zip-service.d.ts +66 -0
- package/dist/export/zip-service.d.ts.map +1 -0
- package/dist/export/zip-service.js +306 -0
- package/dist/export/zip-service.js.map +1 -0
- package/dist/files/storage.d.ts +50 -0
- package/dist/files/storage.d.ts.map +1 -0
- package/dist/files/storage.js +100 -0
- package/dist/files/storage.js.map +1 -0
- package/dist/generate/materialize-llm.d.ts +45 -0
- package/dist/generate/materialize-llm.d.ts.map +1 -0
- package/dist/generate/materialize-llm.js +167 -0
- package/dist/generate/materialize-llm.js.map +1 -0
- package/dist/generate/run.d.ts +48 -0
- package/dist/generate/run.d.ts.map +1 -0
- package/dist/generate/run.js +123 -0
- package/dist/generate/run.js.map +1 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +116 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/export-run.d.ts +38 -0
- package/dist/jobs/export-run.d.ts.map +1 -0
- package/dist/jobs/export-run.js +172 -0
- package/dist/jobs/export-run.js.map +1 -0
- package/dist/jobs/import-run.d.ts +43 -0
- package/dist/jobs/import-run.d.ts.map +1 -0
- package/dist/jobs/import-run.js +290 -0
- package/dist/jobs/import-run.js.map +1 -0
- package/dist/jobs/llm-run.d.ts +73 -0
- package/dist/jobs/llm-run.d.ts.map +1 -0
- package/dist/jobs/llm-run.js +225 -0
- package/dist/jobs/llm-run.js.map +1 -0
- package/dist/jobs/register.d.ts +90 -0
- package/dist/jobs/register.d.ts.map +1 -0
- package/dist/jobs/register.js +121 -0
- package/dist/jobs/register.js.map +1 -0
- package/dist/jobs/registry.d.ts +74 -0
- package/dist/jobs/registry.d.ts.map +1 -0
- package/dist/jobs/registry.js +78 -0
- package/dist/jobs/registry.js.map +1 -0
- package/dist/jobs/report-run.d.ts +64 -0
- package/dist/jobs/report-run.d.ts.map +1 -0
- package/dist/jobs/report-run.js +221 -0
- package/dist/jobs/report-run.js.map +1 -0
- package/dist/jobs/scheduler.d.ts +72 -0
- package/dist/jobs/scheduler.d.ts.map +1 -0
- package/dist/jobs/scheduler.js +121 -0
- package/dist/jobs/scheduler.js.map +1 -0
- package/dist/jobs/worker.d.ts +110 -0
- package/dist/jobs/worker.d.ts.map +1 -0
- package/dist/jobs/worker.js +282 -0
- package/dist/jobs/worker.js.map +1 -0
- package/dist/llm/apply-service.d.ts +150 -0
- package/dist/llm/apply-service.d.ts.map +1 -0
- package/dist/llm/apply-service.js +463 -0
- package/dist/llm/apply-service.js.map +1 -0
- package/dist/llm/apply-undo-store.d.ts +50 -0
- package/dist/llm/apply-undo-store.d.ts.map +1 -0
- package/dist/llm/apply-undo-store.js +60 -0
- package/dist/llm/apply-undo-store.js.map +1 -0
- package/dist/llm/direct-runner.d.ts +146 -0
- package/dist/llm/direct-runner.d.ts.map +1 -0
- package/dist/llm/direct-runner.js +204 -0
- package/dist/llm/direct-runner.js.map +1 -0
- package/dist/llm/prompt-service.d.ts +90 -0
- package/dist/llm/prompt-service.d.ts.map +1 -0
- package/dist/llm/prompt-service.js +93 -0
- package/dist/llm/prompt-service.js.map +1 -0
- package/dist/llm/provider-resolver.d.ts +25 -0
- package/dist/llm/provider-resolver.d.ts.map +1 -0
- package/dist/llm/provider-resolver.js +81 -0
- package/dist/llm/provider-resolver.js.map +1 -0
- package/dist/llm/run-service.d.ts +215 -0
- package/dist/llm/run-service.d.ts.map +1 -0
- package/dist/llm/run-service.js +343 -0
- package/dist/llm/run-service.js.map +1 -0
- package/dist/llm/stats-collector.d.ts +40 -0
- package/dist/llm/stats-collector.d.ts.map +1 -0
- package/dist/llm/stats-collector.js +74 -0
- package/dist/llm/stats-collector.js.map +1 -0
- package/dist/log-scrub.d.ts +58 -0
- package/dist/log-scrub.d.ts.map +1 -0
- package/dist/log-scrub.js +103 -0
- package/dist/log-scrub.js.map +1 -0
- package/dist/meta/store.d.ts +96 -0
- package/dist/meta/store.d.ts.map +1 -0
- package/dist/meta/store.js +192 -0
- package/dist/meta/store.js.map +1 -0
- package/dist/notifications/notify.d.ts +43 -0
- package/dist/notifications/notify.d.ts.map +1 -0
- package/dist/notifications/notify.js +42 -0
- package/dist/notifications/notify.js.map +1 -0
- package/dist/plugins/auth.d.ts +42 -0
- package/dist/plugins/auth.d.ts.map +1 -0
- package/dist/plugins/auth.js +84 -0
- package/dist/plugins/auth.js.map +1 -0
- package/dist/plugins/core.d.ts +48 -0
- package/dist/plugins/core.d.ts.map +1 -0
- package/dist/plugins/core.js +248 -0
- package/dist/plugins/core.js.map +1 -0
- package/dist/plugins/rbac.d.ts +54 -0
- package/dist/plugins/rbac.d.ts.map +1 -0
- package/dist/plugins/rbac.js +103 -0
- package/dist/plugins/rbac.js.map +1 -0
- package/dist/plugins/static.d.ts +12 -0
- package/dist/plugins/static.d.ts.map +1 -0
- package/dist/plugins/static.js +36 -0
- package/dist/plugins/static.js.map +1 -0
- package/dist/rbac/api-keys.d.ts +30 -0
- package/dist/rbac/api-keys.d.ts.map +1 -0
- package/dist/rbac/api-keys.js +41 -0
- package/dist/rbac/api-keys.js.map +1 -0
- package/dist/rbac/index.d.ts +6 -0
- package/dist/rbac/index.d.ts.map +1 -0
- package/dist/rbac/index.js +6 -0
- package/dist/rbac/index.js.map +1 -0
- package/dist/rbac/permissions.d.ts +107 -0
- package/dist/rbac/permissions.d.ts.map +1 -0
- package/dist/rbac/permissions.js +250 -0
- package/dist/rbac/permissions.js.map +1 -0
- package/dist/rbac/principal.d.ts +33 -0
- package/dist/rbac/principal.d.ts.map +1 -0
- package/dist/rbac/principal.js +31 -0
- package/dist/rbac/principal.js.map +1 -0
- package/dist/rbac/resolver.d.ts +26 -0
- package/dist/rbac/resolver.d.ts.map +1 -0
- package/dist/rbac/resolver.js +46 -0
- package/dist/rbac/resolver.js.map +1 -0
- package/dist/realtime/hub.d.ts +90 -0
- package/dist/realtime/hub.d.ts.map +1 -0
- package/dist/realtime/hub.js +146 -0
- package/dist/realtime/hub.js.map +1 -0
- package/dist/realtime/sse.d.ts +35 -0
- package/dist/realtime/sse.d.ts.map +1 -0
- package/dist/realtime/sse.js +88 -0
- package/dist/realtime/sse.js.map +1 -0
- package/dist/realtime/ws.d.ts +38 -0
- package/dist/realtime/ws.d.ts.map +1 -0
- package/dist/realtime/ws.js +124 -0
- package/dist/realtime/ws.js.map +1 -0
- package/dist/reports/schedule.d.ts +14 -0
- package/dist/reports/schedule.d.ts.map +1 -0
- package/dist/reports/schedule.js +63 -0
- package/dist/reports/schedule.js.map +1 -0
- package/dist/routes/about/index.d.ts +39 -0
- package/dist/routes/about/index.d.ts.map +1 -0
- package/dist/routes/about/index.js +73 -0
- package/dist/routes/about/index.js.map +1 -0
- package/dist/routes/about/schema.d.ts +50 -0
- package/dist/routes/about/schema.d.ts.map +1 -0
- package/dist/routes/about/schema.js +53 -0
- package/dist/routes/about/schema.js.map +1 -0
- package/dist/routes/api-keys/index.d.ts +11 -0
- package/dist/routes/api-keys/index.d.ts.map +1 -0
- package/dist/routes/api-keys/index.js +79 -0
- package/dist/routes/api-keys/index.js.map +1 -0
- package/dist/routes/api-keys/schema.d.ts +62 -0
- package/dist/routes/api-keys/schema.d.ts.map +1 -0
- package/dist/routes/api-keys/schema.js +37 -0
- package/dist/routes/api-keys/schema.js.map +1 -0
- package/dist/routes/audit/index.d.ts +11 -0
- package/dist/routes/audit/index.d.ts.map +1 -0
- package/dist/routes/audit/index.js +107 -0
- package/dist/routes/audit/index.js.map +1 -0
- package/dist/routes/audit/schema.d.ts +129 -0
- package/dist/routes/audit/schema.d.ts.map +1 -0
- package/dist/routes/audit/schema.js +43 -0
- package/dist/routes/audit/schema.js.map +1 -0
- package/dist/routes/auth/desktop-session.d.ts +48 -0
- package/dist/routes/auth/desktop-session.d.ts.map +1 -0
- package/dist/routes/auth/desktop-session.js +132 -0
- package/dist/routes/auth/desktop-session.js.map +1 -0
- package/dist/routes/auth/handlers.d.ts +21 -0
- package/dist/routes/auth/handlers.d.ts.map +1 -0
- package/dist/routes/auth/handlers.js +256 -0
- package/dist/routes/auth/handlers.js.map +1 -0
- package/dist/routes/auth/index.d.ts +27 -0
- package/dist/routes/auth/index.d.ts.map +1 -0
- package/dist/routes/auth/index.js +67 -0
- package/dist/routes/auth/index.js.map +1 -0
- package/dist/routes/auth/schema.d.ts +129 -0
- package/dist/routes/auth/schema.d.ts.map +1 -0
- package/dist/routes/auth/schema.js +84 -0
- package/dist/routes/auth/schema.js.map +1 -0
- package/dist/routes/bootstrap/handlers.d.ts +34 -0
- package/dist/routes/bootstrap/handlers.d.ts.map +1 -0
- package/dist/routes/bootstrap/handlers.js +96 -0
- package/dist/routes/bootstrap/handlers.js.map +1 -0
- package/dist/routes/bootstrap/index.d.ts +9 -0
- package/dist/routes/bootstrap/index.d.ts.map +1 -0
- package/dist/routes/bootstrap/index.js +16 -0
- package/dist/routes/bootstrap/index.js.map +1 -0
- package/dist/routes/bootstrap/schema.d.ts +177 -0
- package/dist/routes/bootstrap/schema.d.ts.map +1 -0
- package/dist/routes/bootstrap/schema.js +55 -0
- package/dist/routes/bootstrap/schema.js.map +1 -0
- package/dist/routes/connections/index.d.ts +21 -0
- package/dist/routes/connections/index.d.ts.map +1 -0
- package/dist/routes/connections/index.js +260 -0
- package/dist/routes/connections/index.js.map +1 -0
- package/dist/routes/connections/schema.d.ts +161 -0
- package/dist/routes/connections/schema.d.ts.map +1 -0
- package/dist/routes/connections/schema.js +91 -0
- package/dist/routes/connections/schema.js.map +1 -0
- package/dist/routes/data/index.d.ts +46 -0
- package/dist/routes/data/index.d.ts.map +1 -0
- package/dist/routes/data/index.js +508 -0
- package/dist/routes/data/index.js.map +1 -0
- package/dist/routes/data/schema.d.ts +128 -0
- package/dist/routes/data/schema.d.ts.map +1 -0
- package/dist/routes/data/schema.js +83 -0
- package/dist/routes/data/schema.js.map +1 -0
- package/dist/routes/desktop/index.d.ts +61 -0
- package/dist/routes/desktop/index.d.ts.map +1 -0
- package/dist/routes/desktop/index.js +91 -0
- package/dist/routes/desktop/index.js.map +1 -0
- package/dist/routes/desktop/schema.d.ts +71 -0
- package/dist/routes/desktop/schema.d.ts.map +1 -0
- package/dist/routes/desktop/schema.js +58 -0
- package/dist/routes/desktop/schema.js.map +1 -0
- package/dist/routes/desktop-capabilities/index.d.ts +9 -0
- package/dist/routes/desktop-capabilities/index.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/index.js +62 -0
- package/dist/routes/desktop-capabilities/index.js.map +1 -0
- package/dist/routes/desktop-capabilities/schema.d.ts +46 -0
- package/dist/routes/desktop-capabilities/schema.d.ts.map +1 -0
- package/dist/routes/desktop-capabilities/schema.js +30 -0
- package/dist/routes/desktop-capabilities/schema.js.map +1 -0
- package/dist/routes/desktop-demo/handlers.d.ts +94 -0
- package/dist/routes/desktop-demo/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-demo/handlers.js +182 -0
- package/dist/routes/desktop-demo/handlers.js.map +1 -0
- package/dist/routes/desktop-demo/index.d.ts +39 -0
- package/dist/routes/desktop-demo/index.d.ts.map +1 -0
- package/dist/routes/desktop-demo/index.js +73 -0
- package/dist/routes/desktop-demo/index.js.map +1 -0
- package/dist/routes/desktop-demo/schema.d.ts +17 -0
- package/dist/routes/desktop-demo/schema.d.ts.map +1 -0
- package/dist/routes/desktop-demo/schema.js +30 -0
- package/dist/routes/desktop-demo/schema.js.map +1 -0
- package/dist/routes/desktop-lan/index.d.ts +54 -0
- package/dist/routes/desktop-lan/index.d.ts.map +1 -0
- package/dist/routes/desktop-lan/index.js +33 -0
- package/dist/routes/desktop-lan/index.js.map +1 -0
- package/dist/routes/desktop-lan/schema.d.ts +24 -0
- package/dist/routes/desktop-lan/schema.d.ts.map +1 -0
- package/dist/routes/desktop-lan/schema.js +40 -0
- package/dist/routes/desktop-lan/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/handlers.d.ts +92 -0
- package/dist/routes/desktop-local-db/handlers.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/handlers.js +300 -0
- package/dist/routes/desktop-local-db/handlers.js.map +1 -0
- package/dist/routes/desktop-local-db/index.d.ts +39 -0
- package/dist/routes/desktop-local-db/index.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/index.js +83 -0
- package/dist/routes/desktop-local-db/index.js.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts +75 -0
- package/dist/routes/desktop-local-db/placeholder.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/placeholder.js +420 -0
- package/dist/routes/desktop-local-db/placeholder.js.map +1 -0
- package/dist/routes/desktop-local-db/schema.d.ts +50 -0
- package/dist/routes/desktop-local-db/schema.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/schema.js +71 -0
- package/dist/routes/desktop-local-db/schema.js.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts +104 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.d.ts.map +1 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js +419 -0
- package/dist/routes/desktop-local-db/sqlite-ddl.js.map +1 -0
- package/dist/routes/email-templates/index.d.ts +7 -0
- package/dist/routes/email-templates/index.d.ts.map +1 -0
- package/dist/routes/email-templates/index.js +70 -0
- package/dist/routes/email-templates/index.js.map +1 -0
- package/dist/routes/email-templates/schema.d.ts +54 -0
- package/dist/routes/email-templates/schema.d.ts.map +1 -0
- package/dist/routes/email-templates/schema.js +35 -0
- package/dist/routes/email-templates/schema.js.map +1 -0
- package/dist/routes/exports/index.d.ts +19 -0
- package/dist/routes/exports/index.d.ts.map +1 -0
- package/dist/routes/exports/index.js +145 -0
- package/dist/routes/exports/index.js.map +1 -0
- package/dist/routes/exports/schema.d.ts +183 -0
- package/dist/routes/exports/schema.d.ts.map +1 -0
- package/dist/routes/exports/schema.js +37 -0
- package/dist/routes/exports/schema.js.map +1 -0
- package/dist/routes/generate/index.d.ts +23 -0
- package/dist/routes/generate/index.d.ts.map +1 -0
- package/dist/routes/generate/index.js +80 -0
- package/dist/routes/generate/index.js.map +1 -0
- package/dist/routes/generate/schema.d.ts +43 -0
- package/dist/routes/generate/schema.d.ts.map +1 -0
- package/dist/routes/generate/schema.js +37 -0
- package/dist/routes/generate/schema.js.map +1 -0
- package/dist/routes/imports/index.d.ts +21 -0
- package/dist/routes/imports/index.d.ts.map +1 -0
- package/dist/routes/imports/index.js +288 -0
- package/dist/routes/imports/index.js.map +1 -0
- package/dist/routes/imports/schema.d.ts +292 -0
- package/dist/routes/imports/schema.d.ts.map +1 -0
- package/dist/routes/imports/schema.js +78 -0
- package/dist/routes/imports/schema.js.map +1 -0
- package/dist/routes/index.d.ts +11 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +8 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/jobs/index.d.ts +29 -0
- package/dist/routes/jobs/index.d.ts.map +1 -0
- package/dist/routes/jobs/index.js +175 -0
- package/dist/routes/jobs/index.js.map +1 -0
- package/dist/routes/jobs/schema.d.ts +170 -0
- package/dist/routes/jobs/schema.d.ts.map +1 -0
- package/dist/routes/jobs/schema.js +57 -0
- package/dist/routes/jobs/schema.js.map +1 -0
- package/dist/routes/llm/config-service.d.ts +48 -0
- package/dist/routes/llm/config-service.d.ts.map +1 -0
- package/dist/routes/llm/config-service.js +102 -0
- package/dist/routes/llm/config-service.js.map +1 -0
- package/dist/routes/llm/index.d.ts +69 -0
- package/dist/routes/llm/index.d.ts.map +1 -0
- package/dist/routes/llm/index.js +412 -0
- package/dist/routes/llm/index.js.map +1 -0
- package/dist/routes/llm/schema.d.ts +605 -0
- package/dist/routes/llm/schema.d.ts.map +1 -0
- package/dist/routes/llm/schema.js +238 -0
- package/dist/routes/llm/schema.js.map +1 -0
- package/dist/routes/me/handlers.d.ts +14 -0
- package/dist/routes/me/handlers.d.ts.map +1 -0
- package/dist/routes/me/handlers.js +88 -0
- package/dist/routes/me/handlers.js.map +1 -0
- package/dist/routes/me/index.d.ts +8 -0
- package/dist/routes/me/index.d.ts.map +1 -0
- package/dist/routes/me/index.js +17 -0
- package/dist/routes/me/index.js.map +1 -0
- package/dist/routes/me/schema.d.ts +270 -0
- package/dist/routes/me/schema.d.ts.map +1 -0
- package/dist/routes/me/schema.js +59 -0
- package/dist/routes/me/schema.js.map +1 -0
- package/dist/routes/me-views/index.d.ts +23 -0
- package/dist/routes/me-views/index.d.ts.map +1 -0
- package/dist/routes/me-views/index.js +76 -0
- package/dist/routes/me-views/index.js.map +1 -0
- package/dist/routes/me-views/schema.d.ts +44 -0
- package/dist/routes/me-views/schema.d.ts.map +1 -0
- package/dist/routes/me-views/schema.js +13 -0
- package/dist/routes/me-views/schema.js.map +1 -0
- package/dist/routes/notifications/index.d.ts +19 -0
- package/dist/routes/notifications/index.d.ts.map +1 -0
- package/dist/routes/notifications/index.js +123 -0
- package/dist/routes/notifications/index.js.map +1 -0
- package/dist/routes/notifications/schema.d.ts +122 -0
- package/dist/routes/notifications/schema.d.ts.map +1 -0
- package/dist/routes/notifications/schema.js +83 -0
- package/dist/routes/notifications/schema.js.map +1 -0
- package/dist/routes/onboarding/derive.d.ts +41 -0
- package/dist/routes/onboarding/derive.d.ts.map +1 -0
- package/dist/routes/onboarding/derive.js +30 -0
- package/dist/routes/onboarding/derive.js.map +1 -0
- package/dist/routes/onboarding/index.d.ts +26 -0
- package/dist/routes/onboarding/index.d.ts.map +1 -0
- package/dist/routes/onboarding/index.js +95 -0
- package/dist/routes/onboarding/index.js.map +1 -0
- package/dist/routes/onboarding/schema.d.ts +22 -0
- package/dist/routes/onboarding/schema.d.ts.map +1 -0
- package/dist/routes/onboarding/schema.js +22 -0
- package/dist/routes/onboarding/schema.js.map +1 -0
- package/dist/routes/pages/index.d.ts +26 -0
- package/dist/routes/pages/index.d.ts.map +1 -0
- package/dist/routes/pages/index.js +119 -0
- package/dist/routes/pages/index.js.map +1 -0
- package/dist/routes/pages/layout-schema.d.ts +19 -0
- package/dist/routes/pages/layout-schema.d.ts.map +1 -0
- package/dist/routes/pages/layout-schema.js +19 -0
- package/dist/routes/pages/layout-schema.js.map +1 -0
- package/dist/routes/pages/schema.d.ts +52 -0
- package/dist/routes/pages/schema.d.ts.map +1 -0
- package/dist/routes/pages/schema.js +35 -0
- package/dist/routes/pages/schema.js.map +1 -0
- package/dist/routes/roles/index.d.ts +17 -0
- package/dist/routes/roles/index.d.ts.map +1 -0
- package/dist/routes/roles/index.js +255 -0
- package/dist/routes/roles/index.js.map +1 -0
- package/dist/routes/roles/schema.d.ts +94 -0
- package/dist/routes/roles/schema.d.ts.map +1 -0
- package/dist/routes/roles/schema.js +57 -0
- package/dist/routes/roles/schema.js.map +1 -0
- package/dist/routes/scheduled-reports/index.d.ts +15 -0
- package/dist/routes/scheduled-reports/index.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/index.js +195 -0
- package/dist/routes/scheduled-reports/index.js.map +1 -0
- package/dist/routes/scheduled-reports/schema.d.ts +154 -0
- package/dist/routes/scheduled-reports/schema.d.ts.map +1 -0
- package/dist/routes/scheduled-reports/schema.js +49 -0
- package/dist/routes/scheduled-reports/schema.js.map +1 -0
- package/dist/routes/schema/index.d.ts +24 -0
- package/dist/routes/schema/index.d.ts.map +1 -0
- package/dist/routes/schema/index.js +224 -0
- package/dist/routes/schema/index.js.map +1 -0
- package/dist/routes/schema/schema.d.ts +92 -0
- package/dist/routes/schema/schema.d.ts.map +1 -0
- package/dist/routes/schema/schema.js +64 -0
- package/dist/routes/schema/schema.js.map +1 -0
- package/dist/routes/schema-import/fallback-parser.d.ts +35 -0
- package/dist/routes/schema-import/fallback-parser.d.ts.map +1 -0
- package/dist/routes/schema-import/fallback-parser.js +349 -0
- package/dist/routes/schema-import/fallback-parser.js.map +1 -0
- package/dist/routes/schema-import/index.d.ts +43 -0
- package/dist/routes/schema-import/index.d.ts.map +1 -0
- package/dist/routes/schema-import/index.js +167 -0
- package/dist/routes/schema-import/index.js.map +1 -0
- package/dist/routes/schema-import/schema.d.ts +65 -0
- package/dist/routes/schema-import/schema.d.ts.map +1 -0
- package/dist/routes/schema-import/schema.js +40 -0
- package/dist/routes/schema-import/schema.js.map +1 -0
- package/dist/routes/search/index.d.ts +71 -0
- package/dist/routes/search/index.d.ts.map +1 -0
- package/dist/routes/search/index.js +361 -0
- package/dist/routes/search/index.js.map +1 -0
- package/dist/routes/search/schema.d.ts +125 -0
- package/dist/routes/search/schema.d.ts.map +1 -0
- package/dist/routes/search/schema.js +70 -0
- package/dist/routes/search/schema.js.map +1 -0
- package/dist/routes/settings/index.d.ts +24 -0
- package/dist/routes/settings/index.d.ts.map +1 -0
- package/dist/routes/settings/index.js +164 -0
- package/dist/routes/settings/index.js.map +1 -0
- package/dist/routes/settings/schema.d.ts +110 -0
- package/dist/routes/settings/schema.d.ts.map +1 -0
- package/dist/routes/settings/schema.js +71 -0
- package/dist/routes/settings/schema.js.map +1 -0
- package/dist/routes/setup/index.d.ts +29 -0
- package/dist/routes/setup/index.d.ts.map +1 -0
- package/dist/routes/setup/index.js +68 -0
- package/dist/routes/setup/index.js.map +1 -0
- package/dist/routes/setup/schema.d.ts +61 -0
- package/dist/routes/setup/schema.d.ts.map +1 -0
- package/dist/routes/setup/schema.js +47 -0
- package/dist/routes/setup/schema.js.map +1 -0
- package/dist/routes/system/handlers.d.ts +63 -0
- package/dist/routes/system/handlers.d.ts.map +1 -0
- package/dist/routes/system/handlers.js +121 -0
- package/dist/routes/system/handlers.js.map +1 -0
- package/dist/routes/system/index.d.ts +34 -0
- package/dist/routes/system/index.d.ts.map +1 -0
- package/dist/routes/system/index.js +18 -0
- package/dist/routes/system/index.js.map +1 -0
- package/dist/routes/system/schema.d.ts +93 -0
- package/dist/routes/system/schema.d.ts.map +1 -0
- package/dist/routes/system/schema.js +109 -0
- package/dist/routes/system/schema.js.map +1 -0
- package/dist/routes/views/index.d.ts +21 -0
- package/dist/routes/views/index.d.ts.map +1 -0
- package/dist/routes/views/index.js +155 -0
- package/dist/routes/views/index.js.map +1 -0
- package/dist/routes/views/schema.d.ts +127 -0
- package/dist/routes/views/schema.d.ts.map +1 -0
- package/dist/routes/views/schema.js +56 -0
- package/dist/routes/views/schema.js.map +1 -0
- package/dist/routes/widget-data/index.d.ts +29 -0
- package/dist/routes/widget-data/index.d.ts.map +1 -0
- package/dist/routes/widget-data/index.js +152 -0
- package/dist/routes/widget-data/index.js.map +1 -0
- package/dist/routes/widget-data/schema.d.ts +252 -0
- package/dist/routes/widget-data/schema.d.ts.map +1 -0
- package/dist/routes/widget-data/schema.js +44 -0
- package/dist/routes/widget-data/schema.js.map +1 -0
- package/dist/setup/service.d.ts +63 -0
- package/dist/setup/service.d.ts.map +1 -0
- package/dist/setup/service.js +103 -0
- package/dist/setup/service.js.map +1 -0
- package/dist/start.d.ts +12 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +28 -0
- package/dist/start.js.map +1 -0
- package/dist/telemetry/payload.d.ts +66 -0
- package/dist/telemetry/payload.d.ts.map +1 -0
- package/dist/telemetry/payload.js +69 -0
- package/dist/telemetry/payload.js.map +1 -0
- package/dist/telemetry/service.d.ts +67 -0
- package/dist/telemetry/service.d.ts.map +1 -0
- package/dist/telemetry/service.js +103 -0
- package/dist/telemetry/service.js.map +1 -0
- package/dist/telemetry/update-check.d.ts +79 -0
- package/dist/telemetry/update-check.d.ts.map +1 -0
- package/dist/telemetry/update-check.js +103 -0
- package/dist/telemetry/update-check.js.map +1 -0
- package/dist/version.d.ts +14 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/dist/widget-data/cache.d.ts +35 -0
- package/dist/widget-data/cache.d.ts.map +1 -0
- package/dist/widget-data/cache.js +67 -0
- package/dist/widget-data/cache.js.map +1 -0
- package/dist/widget-data/compiler.d.ts +107 -0
- package/dist/widget-data/compiler.d.ts.map +1 -0
- package/dist/widget-data/compiler.js +362 -0
- package/dist/widget-data/compiler.js.map +1 -0
- package/dist/widget-data/shapers.d.ts +75 -0
- package/dist/widget-data/shapers.d.ts.map +1 -0
- package/dist/widget-data/shapers.js +128 -0
- package/dist/widget-data/shapers.js.map +1 -0
- package/dist/widget-data/stream-publisher.d.ts +42 -0
- package/dist/widget-data/stream-publisher.d.ts.map +1 -0
- package/dist/widget-data/stream-publisher.js +34 -0
- package/dist/widget-data/stream-publisher.js.map +1 -0
- package/package.json +79 -0
- package/vocabulary/llm-allowlist.json +76 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e={common:{dismiss:"إغلاق",notifications:"الإشعارات",retry:"إعادة المحاولة",undo:"تراجع",close:"إغلاق",cancel:"إلغاء",back:"رجوع",loading:"جارٍ التحميل",clearSearch:"مسح البحث",clear:"مسح",save:"حفظ"},auth:{headline:"حوِّل أي قاعدة بيانات إلى لوحة معلومات.",trust:"نواة AGPL · استضافة ذاتية · بياناتك تبقى ملكك",signIn:{title:"مرحبًا بعودتك",subtitle:"سجِّل الدخول إلى مساحة عمل Adminium الخاصة بك.",email:"البريد الإلكتروني",emailInvalid:"أدخل عنوان بريد إلكتروني صالحًا.",password:"كلمة المرور",passwordRequired:"أدخل كلمة المرور.",showPassword:"إظهار كلمة المرور",hidePassword:"إخفاء كلمة المرور",remember:"إبقائي مسجَّل الدخول",forgot:"نسيتها؟",submit:"تسجيل الدخول",invalid:"البريد الإلكتروني أو كلمة المرور غير صحيحة.",rateLimited:"محاولات كثيرة جدًا — حاول مجددًا بعد دقيقة.",failed:"فشل تسجيل الدخول. تحقق من اتصالك وحاول مجددًا."},forgot:{title:"إعادة تعيين كلمة المرور",email:"البريد الإلكتروني",emailInvalid:"أدخل عنوان بريد إلكتروني صالحًا.",submit:"إرسال رابط إعادة التعيين",sentTitle:"تحقق من بريدك الإلكتروني",resend:"إعادة الإرسال",back:"العودة إلى تسجيل الدخول",done:"العودة إلى تسجيل الدخول",rateLimited:"طلبات كثيرة جدًا — حاول مجددًا لاحقًا.",failed:"حدث خطأ ما. حاول مجددًا.",smtpUnconfigured:"لا يوجد خادم بريد مُهيّأ في نسخة Adminium هذه، لذا لا يمكنها إرسال رابط إعادة التعيين. اطلب من المسؤول إعادة تعيين كلمة المرور نيابةً عنك."},reset:{title:"تعيين كلمة مرور جديدة",subtitle:"يجب ألا تقل عن 8 أحرف.",password:"كلمة المرور الجديدة",confirm:"تأكيد كلمة المرور",showPassword:"إظهار كلمة المرور",hidePassword:"إخفاء كلمة المرور",strength:"قوة كلمة المرور",weak:"ضعيفة",fair:"مقبولة",good:"جيدة",strong:"قوية",tooShort:"استخدم 8 أحرف على الأقل.",submit:"إعادة تعيين كلمة المرور",failed:"فشلت إعادة التعيين. حاول مجددًا."},otp:{title:"المصادقة الثنائية",subtitle:"أدخل الرمز المكوَّن من 6 أرقام من تطبيق المصادقة.",code:"رمز لمرة واحدة",recoveryCode:"رمز الاسترداد",useRecovery:"فقدت جهازك؟ استخدم رمز استرداد",useAuthenticator:"استخدم تطبيق المصادقة بدلًا من ذلك",submit:"تحقق",invalid:"هذا الرمز لم يعمل. حاول مجددًا.",failed:"فشل التحقق. تحقق من اتصالك وحاول مجددًا."}},nav:{home:"الرئيسية",primary:"الأساسية",account:"الحساب",signOut:"تسجيل الخروج",empty:"ستظهر الصفحات هنا بمجرد توصيل قاعدة بيانات.",connection:{shared:"مشترك",unnamed:"اتصال"},imports:"استيراد البيانات",exports:"عمليات تصدير البيانات",emailTemplates:"قوالب البريد الإلكتروني",notificationSettings:"إعدادات الإشعارات",scheduledReports:"التقارير المجدولة",group:{workspace:"مساحة العمل",library:"المكتبة",planning:"التخطيط",people:"الأشخاص",account:"الحساب"}},topbar:{search:"بحث…",notifications:"الإشعارات",notificationsLoading:"جارٍ تحميل الإشعارات",notificationsError:"تعذّر تحميل الإشعارات.",notificationsEmpty:"لا إشعارات جديدة.",theme:"التبديل بين الفاتح / الداكن",userMenu:"قائمة الحساب",profile:"الملف الشخصي",preferences:"التفضيلات",signOut:"تسجيل الخروج"},palette:{dialog:"لوحة الأوامر",placeholder:"اكتب أمرًا أو ابحث…",navigate:"التنقل",actions:"إجراءات",askAi:"اسأل الذكاء الاصطناعي",shortcuts:"اختصارات لوحة المفاتيح",signOut:"تسجيل الخروج",themeDark:"التبديل إلى السمة الداكنة",themeLight:"التبديل إلى السمة الفاتحة",footerNavigate:"تنقّل",footerOpen:"اختيار",footerClose:"إغلاق"},shortcuts:{title:"اختصارات لوحة المفاتيح",subtitle:"اعمل أسرع في كل أنحاء Adminium",close:"إغلاق",dismiss:"إغلاق أو صرف",palette:"فتح لوحة الأوامر",panel:"إظهار لوحة الاختصارات",search:"التركيز على البحث",sidebar:"إظهار/إخفاء الشريط الجانبي",theme:"التبديل بين الفاتح / الداكن",then:"ثم",footerPre:"اضغط",footerPost:"في أي وقت لفتح هذه اللوحة."},states:{checked:"آخر فحص قبل 8 ثوانٍ",diagnostics:"التشخيصات"},notFound:{title:"هذه الصفحة مفقودة",errorLine:"خطأ 404",searchPlaceholder:"ابحث عن صفحة…",matches:"صفحات مطابقة",popular:"وجهات شائعة",goBack:"رجوع",backToDashboard:"العودة إلى لوحة المعلومات"},page:{invalid:{title:"إعدادات هذه الصفحة غير صالحة",body:"مستند الصفحة المخزَّن لم يجتز التحقق ولا يمكن عرضه."},renderError:{title:"تعذَّر عرض هذه الصفحة"},tooNew:{title:"تحتاج هذه الصفحة إلى إصدار أحدث من Adminium"},unknownTemplate:{title:"قالب صفحة غير معروف"}},mutation:{created:"تم إنشاء السجل",updated:"تم تحديث السجل",deleted:"تم حذف السجل"},undo:{done:"تم التراجع عن التغيير",failed:"تعذَّر التراجع عن هذا التغيير"},prefs:{theme:{label:"السمة",light:"فاتحة",dark:"داكنة",system:"حسب النظام"},accent:{label:"لون التمييز",indigo:"نيلي",blue:"أزرق",teal:"أزرق مخضرّ",violet:"بنفسجي",rose:"وردي",red:"أحمر",orange:"برتقالي",black:"أسود"},density:{label:"الكثافة",comfortable:"مريحة",compact:"مضغوطة"},locale:{label:"اللغة",directionNote:"اتجاه النص: من اليمين إلى اليسار (يُضبط تلقائيًا حسب اللغة)"}},account:{title:"الحساب",subtitle:"هوية جلستك الحالية. يمكنك إدارة تفضيلات العرض وإعدادات الإشعارات من صفحاتها المخصصة.",preferencesLink:"التفضيلات",notificationsLink:"إعدادات الإشعارات",name:"الاسم",email:"البريد الإلكتروني",roles:"الأدوار",twoFactor:"المصادقة الثنائية",on:"مفعَّلة",off:"متوقفة",preferences:{title:"التفضيلات",subtitle:"كيف يبدو Adminium ويُقرأ بالنسبة لك — على هذا الجهاز وكل جهاز تسجّل الدخول منه.",workspaceDefault:"افتراضي مساحة العمل",personal:"شخصي",usingDefault:"يُستخدم افتراضي مساحة العمل ({value})",reset:"إعادة التعيين إلى افتراضي مساحة العمل",resetFailed:"تعذَّرت إعادة تعيين هذا التفضيل. حاول مجددًا.",appliesInstantly:"تسري التغييرات فورًا وتُحفظ في ملفك الشخصي."}},settings:{defaults:{title:"الإعدادات الافتراضية العامة",subtitle:"إعدادات المظهر واللغة الافتراضية على مستوى مساحة العمل.",explainer:"تسري هذه الإعدادات الافتراضية على جميع المستخدمين ما لم يتجاوزوها. يمكن لأي شخص ضبط تفضيله الخاص من الملف الشخصي ← التفضيلات — التفضيلات الشخصية لها الأولوية دائمًا لذلك المستخدم.",appearanceHeading:"افتراضيات المظهر",languageHeading:"افتراضيات اللغة والمنطقة",adoption:"يتبع هذا الإعداد الافتراضي {following, number} من أصل {total, plural, zero {# مستخدم} one {مستخدم واحد} two {مستخدمَين} few {# مستخدمين} many {# مستخدمًا} other {# مستخدم}}.",weekStartNote:"بداية الأسبوع وتنسيقات الأرقام تتبع اللغة.",save:"حفظ الإعدادات الافتراضية",saved:"تم تحديث افتراضيات مساحة العمل",saveFailed:"تعذَّر حفظ افتراضيات مساحة العمل. حاول مجددًا.",liveNote:"عند الحفظ يُبث التغيير مباشرة — فيراه المستخدمون المسجَّلون الذين يتبعون الإعداد الافتراضي دون إعادة تحميل."},notifications:{subtitle:"اختر ما تريد أن يصلك من إشعارات وكيفية وصولها",matrixLabel:"إشعاري بشأن",rowHeader:"الحدث",saving:"جارٍ الحفظ…",saved:"تم الحفظ",unavailable:"غير متاح بعد",loading:"جارٍ تحميل التفضيلات",errorTitle:"تعذّر تحميل هذه الإعدادات",emptyTitle:"لا يوجد ما يمكن ضبطه بعد",emptyBody:"تظهر أحداث الإشعارات هنا مع توفر مصادرها.",saveFailed:"تعذّر حفظ هذا التغيير."}},studio:{source:{engine:{label:"محرّك قاعدة البيانات",postgres:"PostgreSQL",mysql:"MySQL / MariaDB",sqlite:"SQLite"},format:{label:"تنسيق المخطط",helper:"اترك الاكتشاف التلقائي مفعّلًا ما لم يخطئ في التعرّف.",auto:"اكتشاف تلقائي",sql:"SQL DDL / pg_dump",prisma:"مخطط Prisma",drizzle:"Drizzle ORM",typeorm:"كيانات TypeORM",sequelize:"نماذج Sequelize",rails:"Rails schema.rb",django:"Django models.py",json:"Adminium JSON"},sqlite:{file:"مسار ملف قاعدة البيانات",helper:"SQLite ملف وليس خادمًا — أدخل المسار المطلق على الجهاز الذي يشغّل Adminium."},file:{detectedAs:"تم اكتشاف: {format}",moreWarnings:"+{count} تحذيرات إضافية — تظهر القائمة الكاملة في خطوة التحليل.",dropTitle:"أسقط ملف المخطط هنا، أو تصفّح",dropHint:"SQL DDL / pg_dump وPrisma وDrizzle وTypeORM وSequelize وRails schema.rb ونماذج Django وAdminium JSON",pitch:"لا حاجة إلى اتصال بقاعدة البيانات — نحلّل ملف المخطط ونبني اللوحات نفسها.",parsing:"جارٍ قراءة ملف المخطط المرفوع…",tables:"جداول",columns:"أعمدة",warnings:"تحذيرات",errorTitle:"تعذّر تحليل الملف",parseFailed:"تعذّر تحليل هذا الملف. إذا أخطأ الاكتشاف التلقائي، فاختر التنسيق صراحةً وأعد المحاولة.",unsupported:"تنسيق غير معروف — المدعوم: SQL DDL وPrisma وDrizzle وTypeORM وSequelize وRails schema.rb ونماذج Django وAdminium JSON. اختر واحدًا صراحةً وأعد المحاولة.",requestFailed:"فشل الرفع — تحقّق من اتصالك وأعد المحاولة."},title:"اربط قاعدة بياناتك",subtitle:"وجّه Adminium إلى قاعدة بيانات وسننشئ لوحة إدارة من مخططها.",name:"اسم الاتصال",namePlaceholder:"Postgres للإنتاج",modeLabel:"وضع إدخال المصدر",mode:{dsn:"سلسلة الاتصال",fields:"حقول منفصلة",file:"ملف المخطط"},dsn:{label:"سلسلة الاتصال",helper:"postgres://user:password@host:5432/database — يعمل أيضًا mysql:// وsqlite:.",incomplete:"أضف المضيف وقاعدة البيانات، مثل postgres://user@host:5432/db",invalidScheme:"مخطط غير معروف — المتوقع postgres:// أو mysql:// أو mariadb:// أو sqlite:",quickFill:"تعبئة سريعة:"},fields:{host:"المضيف",port:"المنفذ",database:"قاعدة البيانات",user:"المستخدم",password:"كلمة المرور",ssl:"وضع SSL",preview:"معاينة سلسلة الاتصال:"},readOnlyRole:{title:"استخدم دورًا للقراءة فقط",body:"لا يكتب Adminium أبدًا في قاعدة بياناتك — يستخدم الإعداد بيانات المخطط الوصفية فقط. نوصي بمستخدم مخصّص بصلاحيات SELECT فقط؛ ويمكنك تحديد مكان جداول Adminium الخاصة في خطوة تخزين البيانات الوصفية."}},capability:{mysqlApproxRows:"أعداد الصفوف في MySQL تقديرات من محرّك التخزين (قد تنحرف حتى ±40%) — تُعرض مع ≈.",mysqlFkEnum:"البيانات الوصفية للمفاتيح الخارجية والتعدادات في MySQL أضعف: جداول MyISAM لا تعلن مفاتيح خارجية، والتعدادات أنواع enum(…) على مستوى العمود، وقيود CHECK تتطلب MySQL 8.0.16+ / MariaDB 10.2+.",sqliteCheckEnums:"لا يملك SQLite نوع تعداد أصليًا — تُركَّب التعدادات من قيود CHECK (col IN (…)).",sqliteNoComments:"لا يدعم SQLite تعليقات الأعمدة — استخدم محرّر إعادة تعيين المخطط لإضافة التسميات.",importNoRowCounts:"ملفات المخطط لا تحمل أعداد صفوف — تعرض قائمة الجداول — بدلًا من أرقام مختلَقة.",importNoLiveHealth:"لا يوجد اتصال مباشر بقاعدة بيانات — فحوصات الصحة واكتشاف انحراف المخطط غير متاحة لهذا المصدر.",rowsUnavailable:"ملفات المخطط بلا قاعدة بيانات مباشرة — تظل أعداد الصفوف مجهولة حتى توصيل واحدة.",rowsRunAnalyze:"لا يوجد تقدير بعد — شغّل ANALYZE على قاعدة البيانات للحصول على أعداد الصفوف.",rowsNoEstimate:"لم يبلّغ المحرّك عن أي تقدير لهذا الجدول.",rowsApproximate:"تقدير من محرّك التخزين — قد ينحرف حتى ±40% على InnoDB."},test:{log:{moreWarnings:"+{count} تحذيرات إضافية من المحلّل",connecting:"جارٍ إنشاء اتصال آمن…",connected:"متصل ({latency} م.ث) · استبطان للقراءة فقط",connectFailed:"فشل الاتصال.",readingSchema:"جارٍ قراءة المخطط: public",readingFile:"جارٍ قراءة ملف المخطط المرفوع…",parsingFile:"جارٍ تحليل {file}…",detected:"تم اكتشاف {tables} جدولًا · {columns} عمودًا",found:"تم العثور على {tables} جدولًا · {columns} عمودًا",mapping:"جارٍ ربط أنواع الأعمدة ← عناصر الإدخال",relations:"جارٍ اكتشاف العلاقات…",piiScan:"جارٍ البحث عن أعمدة البيانات الشخصية…",piiDone:"اكتمل فحص البيانات الشخصية — تم إخفاء {count} عمودًا افتراضيًا",piiDoneUnknown:"اكتمل فحص البيانات الشخصية",jobFailed:"فشل الاستبطان.",networkFailed:"فشل الطلب — تحقّق من اتصالك وأعد المحاولة.",ready:"جاهز"},title:"جارٍ تحليل مخططك",subtitle:"جارٍ استبطان الجداول والأعمدة والعلاقات. يستغرق ذلك بضع ثوانٍ.",trust:"نقرأ مخططك وبياناتك فقط. لا يتم تعديل أي شيء.",errorTitle:"فشل الاتصال",retry:"إعادة المحاولة",logLabel:"سجل الاستبطان",hint:{auth:"فشلت المصادقة — تحقّق من اسم المستخدم وكلمة المرور في DSN.",hostUnreachable:"تعذّر الوصول إلى المضيف — تحقّق من اسم المضيف والمنفذ، ومن أن قاعدة البيانات تقبل الاتصالات من هذا الجهاز (أضف عناوين IP الخاصة بنا إلى قائمة السماح).",metaPlacement:"لا يمكن لهذا المصدر استضافة جداول Adminium الوصفية — تابع بقاعدة بيانات وصفية منفصلة.",permission:"اتصل الدور لكنه يفتقر إلى صلاحيات قراءة المخطط — امنح دور الاستبطان صلاحية USAGE على المخطط.",timeout:"لم تُجب قاعدة البيانات في الوقت المناسب — تحقّق من مسار الشبكة والحمل ثم أعد المحاولة.",tls:"فشل تفاوض TLS — جرّب sslmode=require، أو ارفع شهادة CA التي يتوقعها خادمك.",unknown:"فشل الاتصال — تحقّق من DSN وأعد المحاولة."}},tables:{importNoCounts:"ملفات المخطط لا تحمل أعداد صفوف — يعرض العمود — حتى يتم توصيل قاعدة بيانات مباشرة.",title:"اختر جداولك",subtitle:"اختر ما تريد تضمينه. يمكنك تغيير ذلك في أي وقت.",search:"تصفية الجداول…",listLabel:"الجداول القابلة للتضمين",emptyFilter:"لا توجد جداول مطابقة لعامل التصفية.",pii:"PII",highVolume:"حجم كبير",highVolumeNote:"الجداول التي تتجاوز 100,000 صف تبدأ غير محددة — نادرًا ما تنتمي جداول التشغيل إلى لوحة معلومات.",joinHidden:"تم إخفاء {count} من جداول الربط/النظام مسبقًا — لكنها لا تزال تشغّل علاقات متعدد-إلى-متعدد."},hub:{title:"اتصالات البيانات",subtitle:"{healthy, number} من {total, plural, one {اتصال واحد} two {اتصالين} few {# اتصالات} many {# اتصالًا} other {# اتصال}} بحالة سليمة",connectNew:"اتصال جديد",stats:{connections:"الاتصالات",healthy:"سليمة",tables:"الجداول المضمّنة",pages:"الصفحات المولّدة"},status:{connected:"متصل",error:"خطأ",unconfigured:"مسودة",testing:"جارٍ الاختبار…"},card:{readOnly:"للقراءة فقط",tables:"الجداول",pages:"الصفحات",latency:"زمن الاستجابة",latencyMs:"{latency, number} م.ث",lastIntrospected:"آخر فحص للمخطط",never:"أبدًا"},action:{test:"اختبار",reintrospect:"إعادة فحص المخطط",reintrospectFile:"مصادر ملفات المخطط لا تملك قاعدة بيانات حيّة — أعد رفع الملف بدلًا من ذلك.",remap:"إعادة تعيين المخطط",delete:"حذف"},test:{ok:"الاتصال سليم · {latency, number} م.ث",failed:"فشل اختبار الاتصال"},introspect:{noChanges:"المخطط دون تغيير — لا لقطة جديدة.",updated:"أُعيد فحص المخطط",masksProposed:"{count, plural, one {عمود واحد مقترح} two {عمودان مقترحان} few {# أعمدة مقترحة} many {# عمودًا مقترحًا} other {# عمود مقترح}} للإخفاء — راجعها في محرر إعادة التعيين.",failed:"فشل فحص المخطط. حاول مرة أخرى."},delete:{title:"حذف الاتصال",body:"سيؤدي هذا إلى حذف «{name}» وصفحاته المولّدة. لن تُمسّ قاعدة بياناتك نفسها أبدًا.",prompt:"اكتب {name} للتأكيد",confirm:"حذف الاتصال",cancel:"إلغاء",close:"إغلاق",success:"حُذف الاتصال «{name}»",failed:"تعذّر حذف الاتصال. حاول مرة أخرى."},empty:{title:"لا مصادر بيانات بعد",body:"اربط قاعدة بيانات وسيولّد Adminium لوحة الإدارة من مخططها.",cta:"ربط قاعدة بيانات"}},settingsHub:{title:"إعدادات مساحة العمل",subtitle:"الهوية والأمان والإجراءات الخطرة لمساحة العمل هذه.",save:"حفظ التغييرات",saved:"تم تحديث إعدادات مساحة العمل",saveFailed:"تعذّر حفظ إعدادات مساحة العمل. حاول مرة أخرى.",superAdminOnlyTitle:"يتطلب مشرفًا أعلى",superAdminOnly:"لا يمكن تغيير هوية مساحة العمل وإعدادات الأمان إلا لمشرف أعلى.",identity:{heading:"هوية مساحة العمل",appName:{label:"اسم التطبيق",helper:"يظهر في الشريط الجانبي وعنوان المتصفح ورسائل البريد الإلكتروني.",error:"أدخل اسمًا لا يتجاوز 60 حرفًا."}},security:{heading:"الأمان",require2fa:{label:"فرض المصادقة الثنائية",desc:"يجب على كل عضو تفعيل المصادقة الثنائية لتسجيل الدخول."},allowSignup:{label:"السماح بالتسجيل الذاتي",desc:"يمكن لأي شخص إنشاء حساب — عند الإيقاف تبقى مساحة العمل بالدعوة فقط."},sessionTtl:{label:"مدة الجلسة (بالساعات)",error:"بين {min, number} و{max, number} ساعة."},passwordMin:{label:"الحد الأدنى لطول كلمة المرور",error:"بين {min, number} و{max, number} حرفًا."}},review:{title:"حفظ إعدادات مساحة العمل",subtitle:"راجع تغييراتك قبل الحفظ.",confirm:"حفظ التغييرات",cancel:"إلغاء",close:"إغلاق",on:"مفعّل",off:"متوقف",change:"{before} → {after}"},defaultsCard:{heading:"الإعدادات الافتراضية للمظهر واللغة",body:"إعدادات السمة ولون التمييز والكثافة واللغة على مستوى مساحة العمل موجودة ضمن الإعدادات الافتراضية العامة.",cta:"فتح الإعدادات الافتراضية العامة"},danger:{heading:"منطقة الخطر",subtitle:"إجراءات لا يمكن التراجع عنها.",empty:"لا شيء للحذف — لا اتصالات بعد.",deleteDesc:"يحذف الاتصال والصفحات المولّدة منه. لن تُمسّ قاعدة بياناتك. لا يمكن التراجع عن هذا الإجراء.",deleteCta:"حذف الاتصال"},aiCard:{heading:"الإثراء بالذكاء الاصطناعي",body:"هيّئ مزوّد ذكاء اصطناعي (أو رحلة النسخ واللصق) لإثراء التسميات والمجموعات والعلاقات.",cta:"فتح إعدادات الذكاء الاصطناعي"}},settingsAi:{title:"الإثراء بالذكاء الاصطناعي",subtitle:"اربط نموذجًا ليقترح Adminium التسميات والمجموعات والعلاقات والمزيد — تُراجَع دائمًا كفرق قبل تطبيق أي شيء.",saved:"تم حفظ مزوّد الذكاء الاصطناعي",saveFailed:"تعذّر حفظ مزوّد الذكاء الاصطناعي. حاول مرة أخرى.",save:"حفظ المزوّد",test:"اختبار الاتصال",testHintDirty:"احفظ تغييراتك قبل الاختبار.",testing:"جارٍ التواصل مع المزوّد…",testError:"فشل الاختبار",testErrorBody:"تعذّر الوصول إلى المزوّد. تحقق من المفتاح وعنوان URL الأساسي.",testOk:"تم الاتصال بـ {model} خلال {latency} مللي ثانية",testUnknownModel:"المزوّد",provider:{heading:"مزوّد الذكاء الاصطناعي",subtitle:"اختر كيف يصل Adminium إلى نموذج لإثراء مخططك. تُخزَّن المفاتيح مشفّرة ولا تُعرض مرة أخرى أبدًا.",active:"نشط",anthropic:{label:"Anthropic",desc:"نماذج Claude عبر واجهة Anthropic البرمجية."},openai:{label:"OpenAI",desc:"نماذج GPT عبر واجهة OpenAI البرمجية."},openaiCompatible:{label:"متوافق مع OpenAI",desc:"أي نقطة نهاية تتحدث بتنسيق OpenAI — Groq وTogether وvLLM وLM Studio."},ollama:{label:"Ollama (محلي)",desc:"نماذج تعمل محليًا عبر Ollama — بدون مفتاح وبدون سحابة."},requiresNetwork:"يتطلب اتصالاً بالإنترنت ومفتاح API",networkDisabledTitle:"مزوّدو الذكاء الاصطناعي المباشرون معطَّلون في هذا التثبيت",networkDisabledBody:"تم إعداد نسخة Adminium هذه دون وصول صادر إلى الإنترنت، لذا لا يمكنها الوصول إلى واجهة أي مزوّد. استخدم دورة النسخ واللصق أدناه — لا تحتاج إلى مفتاح ولا إلى شبكة."},configure:{heading:"تهيئة {provider}"},field:{baseUrl:"عنوان URL الأساسي",baseUrlOptional:"اتركه كما هو ما لم يكن Ollama يعمل على مضيف آخر.",baseUrlHelper:"جذر نقطة النهاية الذي يخدم /chat/completions.",model:"النموذج",modelFreeText:"أدخل معرّف النموذج الدقيق الذي تخدمه نقطة النهاية لديك.",modelLive:"تم التحميل مباشرة من المزوّد.",modelStatic:"قائمة موثوقة؛ اكتب معرّفًا مخصصًا بعد الحفظ لتحديثها.",modelLoading:"جارٍ التحميل…",modelPlaceholder:"اختر نموذجًا…",key:"مفتاح API",keyStored:"مخزَّن مشفّرًا. استبدله لاستخدام مفتاح مختلف.",keyMask:"sk-…{last4}",keyReplace:"استبدال المفتاح",keyOptional:"اختياري — بعض نقاط النهاية لا تحتاج إلى مفتاح.",keyWriteOnly:"للكتابة فقط: بمجرد حفظه لا يُعرض مرة أخرى أبدًا.",noKeyTitle:"لا حاجة إلى مفتاح API",noKeyBody:"يعمل Ollama محليًا، لذا لا يغادر أي شيء هذا الجهاز."},runStatus:{draft:"مسودة",running:"قيد التشغيل",awaitingResponse:"في انتظار الرد",validated:"تم التحقق",applied:"مطبَّق",partiallyApplied:"مطبَّق جزئيًا",failed:"فشل",discarded:"مُهمَل"},byo:{heading:"لا مفتاح؟ استخدم أداة الذكاء الاصطناعي الخاصة بك",subtitle:"رحلة النسخ واللصق — لا يغادر أي شيء هذا الجهاز.",body:"يستطيع Studio توليد مطالبة مكتفية ذاتيًا من مخططك. شغّلها في Claude Code أو ChatGPT أو أي أداة تفضّلها، ثم الصق JSON الذي تعيده في معالج الاتصال. نفس التحقق ونفس المراجعة ونفس النتيجة كالمسار المباشر.",guaranteeTitle:"ضمان الخلو من القياس عن بُعد",guarantee1:"تحمل المطالبة مخططك والإحصاءات المجمّعة فقط — ولا تحمل بيانات الصفوف افتراضيًا أبدًا.",guarantee2:"لا تُضمَّن أي بيانات اعتماد أو عنوان URL للنسخة أو معرّفات.",guarantee3:"عمليات BYO لا تُجري أي اتصالات شبكية.",promptVersion:"المطالبة {version}",schemaVersion:"المخطط {version}",headingRecommended:"استخدم أداة الذكاء الاصطناعي الخاصة بك — دون الحاجة إلى مفتاح",recommended:"موصى به"},history:{heading:"سجل العمليات",subtitle:"عمليات الإثراء السابقة. افتح إحداها لمراجعة اقتراحاتها.",tableLabel:"عمليات الإثراء",colDate:"التاريخ",colSource:"المصدر",colStatus:"الحالة",colChunks:"الأجزاء",openReview:"افتح مراجعة العملية بتاريخ {date}",connection:"الاتصال",empty:"لا توجد عمليات إثراء بعد. أثرِ مخططًا من معالج الاتصال لعرض السجل هنا.",errorTitle:"تعذّر تحميل العمليات",errorBody:"أعد تحميل الصفحة للمحاولة مرة أخرى.",noConnections:"اربط قاعدة بيانات أولًا — تُسجَّل عمليات الإثراء لكل اتصال على حدة.",byo:"BYO",directPath:"مباشر"}},enrich:{title:"الإثراء بالذكاء الاصطناعي",subtitle:"يمكنك اختياريًا تحسين التسميات والمجموعات والتعدادات ولوحات المعلومات المُولّدة باستخدام نموذج لغوي كبير. يعمل الأساس الاستدلالي بدونه — وهذا يضيف فقط اقتراحات تراجعها قبل تطبيق أي شيء.",intentLabel:"كيف تريد الإثراء؟",sectionsLegend:"ما الذي ينبغي للذكاء الاصطناعي أن يقرره؟",localesLegend:"ترجمة التسميات إلى",localeLocked:"(مطلوب)",samplingTitle:"تضمين قيم عينة",samplingHint:"يضمّن ما يصل إلى 20 قيمة حقيقية لكل عمود غير حاوٍ على بيانات شخصية في المُوجّه.",samplingPreviewTitle:"ما الذي يغادر هذا الجهاز",samplingPreviewBody:"ما يصل إلى 20 قيمة من الأكثر شيوعًا لكل عمود غير حاوٍ على بيانات شخصية، إضافةً إلى الحد الأدنى/الأقصى للأعمدة الرقمية والتاريخية. لا تُؤخذ عينات من الأعمدة المُعلَّمة كبيانات شخصية أبدًا. يبقى كل ما عداها مُجمَّعًا فقط. راجع المُوجّه الدقيق قبل النسخ (BYO) — لا يُرسَل أي شيء دون إجراء منك.",noSections:"اختر مجموعة قرار واحدة على الأقل للإثراء.",generatePrompt:"إنشاء المُوجّه",startProvider:"بدء الإثراء",startOver:"البدء من جديد",copied:"تم النسخ",createFailed:"تعذّر إنشاء مُوجّه الإثراء — أعد المحاولة.",createFailedTitle:"تعذّر البدء",providerFallback:"مزوّد الذكاء الاصطناعي الخاص بك",fileTitle:"يتطلّب الإثراء بالذكاء الاصطناعي قاعدة بيانات حيّة",fileBody:"لا تملك مصادر ملفات المخطط لقطة للإثراء بعد. اتصل بقاعدة بيانات حيّة لاستخدام الإثراء بالذكاء الاصطناعي، أو تابع — فالأساس الاستدلالي يُولّد تطبيقًا كاملًا رغم ذلك.",section:{labels:"التسميات والأوصاف",groups:"مجموعات التنقّل",enums:"دلالات التعداد",relations:"العلاقات",keys:"الأعمدة المفتاحية",templates:"قوالب الصفحات",widgets:"أدوات لوحة المعلومات",pii:"البيانات الشخصية والإخفاء",icons:"الأيقونات",microcopy:"النصوص الدقيقة"},provider:{title:"استخدام مزوّد الذكاء الاصطناعي الخاص بي",description:"شغّل الإثراء الآن باستخدام مزوّدك المُهيّأ. تراجع كل اقتراح على هيئة فرق.",unconfigured:"لم يُهيّأ أي مزوّد ذكاء اصطناعي بعد — انسخ مُوجّهًا إلى أداتك الخاصة أدناه، أو هيّئ مزوّدًا أولًا.",settingsHint:"هل تريد تشغيله مباشرةً؟",settingsLink:"هيّئ مزوّدًا في الإعدادات ← الذكاء الاصطناعي",networkDisabled:"لا تملك نسخة Adminium هذه وصولاً صادرًا إلى الإنترنت، لذا لا يمكنها الوصول إلى واجهة أي مزوّد. استخدم بدلاً من ذلك دورة النسخ واللصق — الموجّه نفسه والمراجعة نفسها."},byo:{cardTitle:"نسخ مُوجّه إلى أداة الذكاء الاصطناعي الخاصة بي",cardDescription:"انسخ مُوجّهًا مكتفيًا بذاته إلى Claude Code أو ChatGPT أو أي أداة — ثم الصق JSON مرة أخرى. لا حاجة إلى مفتاح، ولا يغادر أي شيء هذا الجهاز تلقائيًا.",guidance:"شغّل هذا في أي أداة ذكاء اصطناعي — Claude Code أو ChatGPT أو غيرها. الصق JSON الذي تُعيده أدناه.",promptLabel:"مُوجّه الإثراء",promptLabelN:"مُوجّه الإثراء {index} من {total}",tokenChip:"≈ {tokens} رمزًا",copyPrompt:"نسخ المُوجّه",copyPromptDone:"تم نسخ المُوجّه",download:"تنزيل .md",chunkTabs:"أجزاء المُوجّه",chunkTab:"المُوجّه {index}",chunkValid:"تم التحقّق من الجزء {index}",pasteLabel:"الصق استجابة JSON",pastePlaceholder:"الصق استجابة JSON هنا…",validate:"تحقّق",valid:"تم التحقّق من الاستجابة",mergedTitle:"تم التحقّق من كل الأجزاء البالغة {count} ودمجها",mergedTitleSingle:"تم التحقّق من الاستجابة",mergedBody:"الاقتراحات جاهزة للمراجعة مقابل الأساس الاستدلالي.",errorsTitle:"عثر التحقّق على {count} مشكلة",copyErrors:"نسخ الأخطاء لأداة الذكاء الاصطناعي",copyErrorsDone:"تم نسخ الأخطاء",copyErrorsHint:"الصق هذا مجددًا في أداة الذكاء الاصطناعي للحصول على استجابة مُصحّحة.",droppedItems:"أُسقِط {count} اقتراح أثناء التحقّق — تعرض المراجعة البقية.",pendingTitle:"تحقّق من كل مُوجّه للمتابعة",pendingBody:"الصق استجابة JSON أعلاه وتحقّق منها للمتابعة إلى المراجعة.",pendingBodyChunked:"يجب التحقّق من كل جزء قبل دمج الاقتراحات. الصق كل مُوجّه أعلاه وتحقّق منه.",requestFailed:"تعذّر الوصول إلى الخادم للتحقّق — أعد المحاولة.",continueReview:"المتابعة إلى المراجعة",wholeDocument:"المستند بأكمله",cardTitleRecommended:"انسخ موجّهًا إلى أداة الذكاء الاصطناعي الخاصة بي — موصى به"},direct:{title:"الإثراء بالذكاء الاصطناعي",subtitle:"يجري إرسال مخططك إلى",building:"يجري إنشاء المُوجّه…",logLabel:"سجلّ الإثراء",cancel:"إلغاء",back:"العودة إلى الخيارات",retry:"إعادة المحاولة",done:"اكتمل الإثراء — راجع الاقتراحات.",continueReview:"المتابعة إلى المراجعة",failed:"فشل تشغيل المزوّد. تحقّق من إعدادات الذكاء الاصطناعي وأعد المحاولة.",jobFailed:"لم يكتمل تشغيل الإثراء.",startFailed:"تعذّر بدء التشغيل — أعد المحاولة.",errorTitle:"فشل الإثراء"},skip:{title:"تخطٍّ — استخدام الاستدلال فقط",description:"التوليد من الأساس الاستدلالي. يمكنك الإثراء لاحقًا من الإعدادات ← الذكاء الاصطناعي — لا يُعاقَب التخطّي أبدًا.",confirmTitle:"المتابعة بالاستدلال",confirmBody:"سيستخدم التطبيق المُولّد التسميات والمجموعات ولوحات المعلومات الاستدلالية. تابع للتوليد — يمكنك تشغيل الإثراء بالذكاء الاصطناعي في أي وقت من الإعدادات ← الذكاء الاصطناعي."}},review:{unavailableTitle:"شاشة المراجعة غير متوفرة",unavailableBody:"لا يتضمّن هذا الإصدار شاشة مراجعة الإثراء بعد (06-T14). ستصل مع تدفق الفرق والتطبيق."},llmRuns:{review:{header:{title:"مراجعة اقتراحات الذكاء الاصطناعي",model:"النموذج",snapshot:"لقطة",byo:"مفتاحك الخاص",pathDirect:"واجهة مباشرة",pathByo:"نسخ ولصق",agree:"{n} متوافقة",conflict:"{n} متعارضة",new:"{n} جديدة",rejects:"{n} مرفوضة",countsAria:"أعداد الاقتراحات"},bulk:{thresholdLabel:"حد الثقة",thresholdAria:"حد الثقة لخيار «قبول الكل»",acceptAll:"قبول الكل ≥ {pct}%",clear:"مسح التحديد"},section:{selectAllAria:"تحديد الكل في {group}",acceptedCount:"{n} مقبولة"},group:{labels:"التسميات والترجمات",navigation:"التنقل والمجالات",enums:"دلالات التعدادات",relations:"العلاقات",keys:"الأعمدة المفتاحية",templates:"قوالب الصفحات",dashboards:"لوحات المعلومات والأدوات",pii:"البيانات الشخصية والإخفاء",icons:"الأيقونات",microcopy:"النصوص المصغّرة"},status:{agree:"متوافق",conflict:"تعارض",new:"جديد",heuristicOnly:"إرشادي فقط",rejects:"يرفض الإرشادي",locked:"مقفل"},row:{acceptAria:"قبول اقتراح {noun} لـ {target}",keptEdited:"محتفَظ به — عدّلته بنفسك",rejectsCallout:"يرفض الذكاء الاصطناعي قرارًا إرشاديًا — أكِّد قبل القبول.",showTranslations:"عرض الترجمات",hideTranslations:"إخفاء الترجمات",confidenceAria:"الثقة {pct}%",noAi:"لا يوجد اقتراح من الذكاء الاصطناعي"},value:{none:"لا قيمة",absent:"لا شيء",dash:"—",display:"العرض",key:"المفتاح",rank:"الترتيب {n}",span:"العرض {n}",tableCount:"{n} جداول",widgetCount:"{n} أدوات",enumWorkflow:"سير عمل",enumCategory:"فئة",notPii:"ليست بيانات شخصية",label:"التسمية",description:"الوصف",subtitle:"العنوان الفرعي للصفحة",headline:"عنوان الحالة الفارغة",guidance:"إرشاد الحالة الفارغة"},apply:{title:"تطبيق {n} اقتراحات",subtitle:"تُكتب هذه التغييرات في معاملة واحدة ويمكن التراجع عنها.",empty:"لم يتم تحديد شيء للتطبيق.",confirm:"تطبيق التغييرات"},footer:{count:"تم تحديد {n} اقتراحات",apply:"تطبيق {n} اقتراحات مقبولة",failed:"فشل التطبيق"},toast:{applied:"تم تطبيق {n} اقتراحات",appliedPartial:"تم تطبيق {n} اقتراحات (تم تخطي بعضها)",applyFailed:"تعذّر تطبيق الاقتراحات",undoFailed:"تعذّر التراجع عن هذا التغيير"},error:{title:"تعذّر تحميل هذا التشغيل"},notReady:{title:"لا يحتوي هذا التشغيل على اقتراحات للمراجعة بعد",body:"يجب التحقق من التشغيل قبل إمكانية مراجعة اقتراحاته. أنشئ استجابة أو الصقها أولًا."},applied:{title:"تم تطبيق هذا التشغيل",body:"الاقتراحات المقبولة أدناه للقراءة فقط."},empty:{title:"لا اقتراحات",body:"لم يُنتج هذا التشغيل أي اقتراحات للمراجعة."},cat:{label:"تسمية",key:"أعمدة مفتاحية",enum:"تعداد",relation:"علاقة",pii:"بيانات شخصية",template:"قالب صفحة",group:"مجموعة تنقل",dashboard:"لوحة معلومات",widget:"أداة",copy:"نص مصغّر"}}},wizard:{title:"اتصال جديد",back:"رجوع",continue:"متابعة",progress:"تقدّم الإعداد",persistFailed:"تعذّر حفظ اختيار الجداول — أعد المحاولة.",persistFailedTitle:"فشل الحفظ",step:{source:"المصدر",test:"تحليل",tables:"الجداول",meta:"تخزين البيانات الوصفية",intent:"الغرض",enrich:"إثراء",generate:"توليد"}},meta:{title:"أين يجب أن يحتفظ Adminium بجداوله الخاصة؟",subtitle:"تُخزَّن الصفحات والأدوار وسجل التدقيق والإعدادات في جداول تبدأ بـ adminium_ — ولا تُخلط أبدًا ببياناتك.",sameDb:{title:"قاعدة البيانات نفسها",description:"تُنشأ جداول adminium_* بجانب جداول المصدر. أبسط إعداد — يتطلب دورًا بصلاحيات الكتابة وCREATE TABLE.",disabledReadOnly:"دورك للقراءة فقط — لا يكتب Adminium أبدًا في هذه القاعدة. اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.",disabledNoDdl:"لا يمكن لهذا الدور تنفيذ DDL — تحتاج ترحيلات Adminium إلى CREATE TABLE. اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة.",disabledFile:"ملف المخطط ليس له قاعدة بيانات حيّة — اختر قاعدة بيانات منفصلة لجداول Adminium الخاصة."},separate:{title:"قاعدة بيانات منفصلة",description:"يحتفظ Adminium بجداوله في قاعدة بيانات مختلفة. يبقى مصدرك كما هو — وهذا مطلوب للمصادر ذات القراءة فقط.",dsn:"سلسلة اتصال قاعدة البيانات الوصفية",helper:"يتطلب صلاحيات الكتابة وDDL — يشغّل Adminium ترحيلاته الخاصة هناك.",test:"اختبار الاتصال",ok:"متوافق — كتابة ✓ · DDL ✓",insufficient:"لا يمكن لهذا الدور استضافة المخزن الوصفي — يحتاج Adminium هناك إلى صلاحيات الكتابة وCREATE TABLE.",errorTitle:"مخزن البيانات الوصفية غير متوافق"},testFailed:"فشل الاتصال.",v1Note:{title:"حول هذا التثبيت",body:"اختار هذا الخادم مخزنه الوصفي عند أول تشغيل. تتحقق هذه الخطوة من توافق اختيارك مع هذا الاتصال وتسجّله — ويفرض الخادم القاعدة نفسها بشكل مستقل (409 META_PLACEMENT_INVALID). نقل مخزن وصفي قائم مهمة تشغيلية (M10)."}},intent:{title:"ما الذي تحتاجه؟",subtitle:"يحدد الغرض الصفحات التي سيتم توليدها. يمكنك تغييره لاحقًا — تغييره يقترح إعادة توليد، ولا يعيد الكتابة بصمت أبدًا.",trust:"نقرأ مخططك فقط — ولا نقرأ بيانات صفوفك أبدًا أثناء الإعداد.",fullAdmin:{title:"لوحة إدارة كاملة",description:"لوحات معلومات وصفحات CRUD وبحث واستيراد وتصدير — كل ما يدعمه مخططك."},analytics:{title:"تحليلات للقراءة فقط",description:"لوحات معلومات ورسوم بيانية وجداول للقراءة فقط. لا نماذج ولا كتابة — كل دور محدود بمشاهد."},crud:{title:"جداول CRUD",description:"صفحة تحرير واحدة لكل جدول مع البحث والاستيراد/التصدير — صفحة رئيسية بسيطة، دون لوحات معلومات."},support:{title:"وحدة تحكم الدعم",description:"قوائم الانتظار وصفحات التذاكر وتفاصيل العملاء أولًا. الحذف معطّل افتراضيًا. (تصل قوالب قوائم الانتظار في M7 — مجموعة صفحات v1 تطابق لوحة الإدارة الكاملة.)"}},generate:{title:"ولّد تطبيقك",subtitle:"صفحة لكل جدول مضمّن مع لوحات معلومات لكل مجال — الغرض:",run:"توليد لوحة المعلومات",openApp:"افتح تطبيقك",logLabel:"سجل التوليد",log:{classifying:"جارٍ تصنيف المخطط…",composing:"جارٍ تركيب القوالب…",writing:"جارٍ كتابة الصفحات…",done:"تم توليد {pages} صفحة عبر {groups} مجموعات تنقّل"},successTitle:"لوحة معلوماتك جاهزة",successBody:"{pages} صفحة عبر {groups} مجموعات تنقّل — وُلّدت من مخططك، وقابلة للتحرير في الاستوديو.",errorTitle:"فشل التوليد",failed:"فشل التوليد — أعد المحاولة، أو أعد تشغيل الاستبطان أولًا.",fileTitle:"تم تحليل ملف المخطط — يحتاج التوليد إلى قاعدة بيانات حيّة",fileBody:"تم تحليل مخططك بنجاح والمعاينة أعلاه حقيقية. توليد تطبيق يعمل مباشرةً من ملف مخطط (بصفوف بديلة) غير متاح بعد — اربط قاعدة بيانات حيّة للتوليد اليوم."},remap:{column:{nullable:"يقبل NULL",labelOverride:"تسمية العرض",labelHelper:"المستنتج: {name}",logicalType:"النوع المنطقي",logicalTypeHelper:"المستنتج: {type} (من {dbType}) — يربطه المهايئ؛ ولا يمكن تجاوزه في v1.",semantic:"النوع الدلالي",unclassified:"لم يُصنَّف بعد.",semanticHelper:"المصنِّف: {tag} · الثقة {confidence}% · المصدر: {source}",semanticInferred:"المستنتج: {tag}",currency:"العملة",currencyHelper:"رمز ISO 4217 المطبَّق على تنسيق المبالغ المالية.",pii:"الإخفاء افتراضيًا",piiHelper:"تُعرض القيم المخفية محجوبة؛ ويتطلب كشفها صلاحية data.unmask_pii ويُسجَّل في سجل التدقيق.",enum:"دلالات التعداد",enumKind:"نوع التعداد",enumWorkflow:"سير عمل",enumCategory:"فئة",enumLabelFor:"تسمية {value}",enumToneFor:"درجة لون {value}",enumToneAuto:"تلقائي",enumHelper:"تعدادات سير العمل تُشغّل شارات الحالة وأعمدة اللوحات؛ وتربط درجات الألوان القيم بمقياس التظليل الدلالي."},diff:{one:"تغيير واحد",count:"{count} تغييرات",saved:"تم حفظ التجاوزات.",revertOne:"التراجع عن {change}",regenerate:"إعادة توليد الصفحات",revertAll:"التراجع عن الكل",save:"حفظ التجاوزات"},table:{iconPicker:"أيقونة الجدول",system:"نظام",labelOverride:"تسمية العرض",labelHelper:"المستنتج: {name}",icon:"الأيقونة",navGroup:"مجموعة التنقل",navGroupHelper:"يقرر المولِّد موضع التنقل — تجاوز table.navGroup ليس ضمن مفردات v1.",include:"التضمين في التطبيق المولَّد",includeHelper:"الجداول المستبعدة لا تحصل على صفحات وتختفي من التنقل.",shape:"شكل الجدول (مصنَّف)",role:"الدور",unclassified:"غير مصنَّف",kind:"النوع",hierarchy:"التسلسل الهرمي",selfFk:"مرجع ذاتي عبر {column}",polymorphic:"أزواج متعددة الأشكال",rows:"تقدير عدد الصفوف",shapeHelper:"يُعاد حساب التصنيف مع كل استبطان؛ وتُطبَّق التجاوزات فوقه وتبقى بعد إعادة التوليد."},relations:{declared:"المفاتيح الخارجية المعلنة",noneDeclared:"لا توجد مفاتيح خارجية معلنة تمسّ هذا الجدول.",inferred:"العلاقات المستنتجة",noneInferred:"لا شيء مستنتج لهذا الجدول.",confidence:"مستنتجة · {pct}%",accepted:"مقبولة",suppressed:"مستبعدة",accept:"قبول",suppress:"استبعاد",overrides:"علاقات التجاوز (المطبَّقة)",overrideBadge:"تجاوز",add:"إضافة علاقة افتراضية",fromColumn:"من العمود",noColumns:"لا يوجد عمود مطابق",fromPlaceholder:"customer_id",toTable:"إلى الجدول",noTables:"لا يوجد جدول مطابق",toColumn:"إلى العمود",cardinality:"التعددية",addButton:"إضافة علاقة"},toast:{saved:"تم حفظ تجاوزات المخطط",savedDetail:"يعكس المخطط المطبَّق أدناه تغييراتك.",regenerated:"{created} أُنشئت · {updated} حُدّثت · {unchanged} لم تتغير",regeneratedDetail:"تُحفظ الصفحات التي حرّرتها يدويًا — لم يُعَد التوليد في مكانه إلا للصفحات التي بقي generated_hash الخاص بها دون تعديل.",regenerateFailed:"فشلت إعادة التوليد"},title:"إعادة تعيين المخطط",subtitle:"{tables} جدولًا · {applied} تجاوزًا مطبَّقًا",saveFailed:"فشل الحفظ: {message}",loadFailed:"تعذّر تحميل المخطط لهذا الاتصال.",inspector:"الفاحص",empty:{title:"اختر جدولًا أو عمودًا",description:"حدد عنصرًا في شجرة المخطط لإعادة تعيين تسميته أو نوعه أو علاقاته أو إخفائه."},tabs:{details:"التفاصيل",relations:"العلاقات"},tree:{label:"المخطط",search:"البحث في الجداول والأعمدة",searchPlaceholder:"ابحث في الجداول…",noMatches:"لا توجد جداول تطابق بحثك.",collapse:"طي الجدول",expand:"توسيع الجدول",unsaved:"تغيير غير محفوظ",excluded:"مستبعد"},badge:{pk:"PK",fk:"FK",unique:"UNIQUE",pii:"بيانات شخصية",masked:"مخفي"}}},onboarding:{title:"البدء",subtitle:"بضع خطوات لتجهيز مساحة العمل الخاصة بك.",loading:"جارٍ تحميل قائمة الإعداد…",welcome:"مرحبًا بك في Adminium، {name} 👋",progressBody:"لقد أكملت {done} من {total} خطوات الإعداد. أكمل الباقي لفتح مساحة العمل بالكامل.",completeBody:"كل شيء جاهز — تم إعداد مساحة عملك بالكامل.",ringLabel:"اكتملت {done} من {total} خطوات",done:"تم",skip:"تخطٍّ الآن",goToWorkspace:"الانتقال إلى مساحة العمل",help:{title:"تحتاج مساعدة؟",body:"نحن هنا لمساعدتك على الإعداد بسرعة."},steps:{connectDatabase:{title:"توصيل قاعدة بيانات",desc:"وجّه Adminium إلى قاعدة بيانات Postgres أو MySQL أو SQLite — يكفي دور للقراءة فقط.",time:"5 دقائق",action:"توصيل"},chooseTables:{title:"اختر جداولك",desc:"اختر الجداول التي ستصبح صفحات — يتم إخفاء البيانات الشخصية افتراضيًا.",time:"دقيقتان",action:"اختيار"},inviteTeammates:{title:"دعوة زملاء الفريق",desc:"اجلب فريقك للاستكشاف والتعاون.",time:"دقيقتان",action:"دعوة"},workspaceDefaults:{title:"تعيين الإعدادات الافتراضية",desc:"السمة واللون المميز والكثافة واللغة للجميع.",time:"دقيقة واحدة",action:"تعيين"}},entry:{wayBack:"البدء · {done}/{total}",dismiss:"إخفاء قائمة الإعداد",continue:"متابعة الإعداد",banner:"أكمل إعداد مساحة عملك — تم {done} من {total} خطوات."}},views:{baseView:"كل السجلات",menuLabel:"طرق العرض المحفوظة",saveAs:"حفظ الحالي كطريقة عرض…",updateActive:"تحديث «{name}»",rename:"إعادة تسمية…",setDefault:"تعيين كافتراضي",delete:"حذف…",saveTitle:"حفظ طريقة العرض",save:"حفظ طريقة العرض",renameTitle:"إعادة تسمية طريقة العرض",saveName:"حفظ الاسم",nameLabel:"اسم طريقة العرض",namePlaceholder:"مثال: النشطون هذا الشهر",nameRequired:"أدخل اسمًا لطريقة العرض هذه.",saveFailed:"تعذّر حفظ طريقة العرض.",deleteTitle:"حذف طريقة العرض",deleteBody:"يؤدي هذا إلى إزالة طريقة العرض المحفوظة. لن تتأثر بياناتك.",deletePrompt:"اكتب اسم طريقة العرض للتأكيد",deleteConfirm:"حذف طريقة العرض",savedToast:"تم حفظ طريقة العرض «{name}».",updatedToast:"تم تحديث طريقة العرض «{name}».",defaultToast:"«{name}» أصبحت الآن طريقة العرض الافتراضية.",deletedToast:"تم حذف طريقة العرض «{name}»."},builder:{view:"عرض",edit:"تحرير",done:"تم",addWidget:"إضافة عنصر واجهة",saveLayout:"حفظ التخطيط",saving:"جارٍ الحفظ…",savedShort:"تم الحفظ",options:"خيارات لوحة المعلومات",resetLayout:"إعادة تعيين التخطيط",resetTitle:"إعادة التعيين إلى التخطيط المشترك؟",resetBody:"يؤدي هذا إلى إزالة تغييراتك الشخصية واستعادة لوحة المعلومات التي يراها الجميع. لن تتأثر بياناتك.",resetConfirm:"إعادة تعيين التخطيط",resetDone:"تمت إعادة تعيين التخطيط إلى الوضع الافتراضي المشترك.",sharedNote:"أنت تحرر لوحة المعلومات المشتركة التي يراها الجميع.",personalNote:"أنت تحرر تخطيطك الشخصي — أنت وحدك من يرى هذه التغييرات.",savedShared:"تم حفظ لوحة المعلومات لكل من لديه صلاحية الوصول.",empty:"لا تحتوي لوحة المعلومات هذه على أي عناصر واجهة بعد.",emptyAction:"إضافة عنصر واجهة",palette:{title:"إضافة عنصر واجهة",count:"{count} عنصر واجهة",searchLabel:"البحث في عناصر الواجهة",searchPlaceholder:"البحث في عناصر الواجهة…",clear:"مسح البحث",noResults:"لا توجد عناصر واجهة تطابق ”{query}“.",add:"إضافة {name}",added:"تمت إضافة {name}."},inspector:{title:"تكوين عنصر الواجهة",empty:"لا يحتوي عنصر الواجهة هذا على خيارات للتكوين.",locked:"مقفل",lockedHint:"يتم تعيين هذا الحقل بواسطة المصدر ولا يمكن تحريره هنا.",selectPlaceholder:"اختر…",increment:"زيادة",decrement:"إنقاص",done:"تم"},item:{configure:"تكوين {name}",duplicate:"تكرار {name}",remove:"إزالة {name}",removed:"تمت إزالة {name}.",duplicated:"تم تكرار {name}."},families:{kpi:"المؤشرات",charts:"الرسوم البيانية",tables:"الجداول",feeds:"الموجزات",calendar:"التقويم",boards:"اللوحات",geo:"الخرائط",media:"الوسائط",communication:"التواصل",forms:"النماذج",chrome:"التنقل",system:"النظام",domain:"المجال"},versions:"الإصدارات",versionsEmpty:"لا توجد إصدارات محفوظة بعد",saveAsVersion:"حفظ كإصدار",saveVersionTitle:"حفظ إصدار",saveVersionBody:"يلتقط نسخة من المستند الحالي. يمكنك استعادتها في أي وقت من الإصدارات.",versionName:"اسم الإصدار",versionNamePlaceholder:"مثل: قبل تغيير أسعار الربع الثالث"},setup:{title:"إعداد Adminium",subtitle:"أنشئ أول مسؤول. يحدث هذا مرة واحدة فقط.",progress:"تقدُّم الإعداد",steps:{account:"حساب المسؤول",consent:"الخصوصية"},account:{name:"اسمك",email:"البريد الإلكتروني",emailInvalid:"أدخل عنوان بريد إلكتروني صالحًا.",password:"كلمة المرور",passwordHelper:"{min} أحرف على الأقل.",passwordTooShort:"استخدم {min} أحرف على الأقل.",confirm:"تأكيد كلمة المرور",passwordMismatch:"كلمتا المرور غير متطابقتين.",continue:"متابعة",strength:"قوة كلمة المرور",strengthLevels:{weak:"ضعيفة",fair:"مقبولة",good:"جيدة",strong:"قوية"}},consent:{telemetry:{title:"مشاركة بيانات استخدام مجهولة المصدر",description:"تساعدنا على معرفة محركات قواعد البيانات التي ينبغي إعطاؤها الأولوية. مُعطَّلة ما لم تُفعِّلها."},updates:{title:"التحقق من الإصدارات الجديدة",description:"يعرض تنبيهًا عند توفر إصدار جديد — بما في ذلك إصلاحات الأمان. يستعلم هذا من GitHub عن أحدث إصدار، مما يكشف لـ GitHub عن عنوان IP لهذه النسخة وإصدارها. ولا يُرسَل أي شيء آخر."},sentTitle:"هذا بالضبط ما يُرسَل:",sent:{instanceId:"معرِّف نسخة عشوائي (UUID يُولَّد هنا؛ وليس مشتقًا من اسمك أو مضيفك أو قاعدة بياناتك)",version:"إصدار Adminium الذي تعمل به هذه النسخة",engines:"أنواع محركات قواعد البيانات المتصلة (مثل «postgres») — الأنواع فقط"},neverTitle:"لا يُرسَل أبدًا:",never:{schema:"مخطط بياناتك — لا أسماء جداول ولا أعمدة ولا تعدادات",rows:"بياناتك — ولا صف واحد، أبدًا",connections:"سلاسل الاتصال أو أسماء المضيفين أو بيانات الاعتماد",people:"عناوين البريد الإلكتروني للمستخدمين أو أسماؤهم أو معرِّفاتهم",llm:"مُوجَّهات الذكاء الاصطناعي أو محتويات عمليات التشغيل"},reversible:"كلاهما مُعطَّل افتراضيًا، ويمكنك تغيير أيٍّ منهما لاحقًا من الإعدادات.",back:"رجوع",finish:"إنشاء حساب المسؤول"},error:{alreadyCompleted:"سبق إعداد هذه النسخة. سجِّل الدخول باستخدام حساب المسؤول الحالي.",rejected:"رفض الخادم هذه البيانات. تحقق من البريد الإلكتروني وكلمة المرور ثم حاول مجددًا.",failed:"فشل الإعداد. تحقق من اتصالك وحاول مجددًا."}},about:{title:"حول Adminium",subtitle:"الإصدار والترخيص وموضع الشفرة المصدرية لهذه النسخة.",version:"الإصدار",license:"الترخيص",metaStore:"مخزن البيانات الوصفية",node:"Node.js",engine:{postgres:"PostgreSQL",mysql:"MySQL / MariaDB",sqlite:"SQLite"},licenseCard:{title:"حر ومفتوح المصدر",body:"يخضع Adminium لرخصة جنو أفيرو العمومية العامة الإصدار 3.0. لك حرية تشغيله ودراسته وتعديله ومشاركته. وإذا قدَّمت نسخة معدَّلة للآخرين عبر شبكة، فإن رخصة AGPL تطالبك بأن تقدِّم لهم شفرتها المصدرية أيضًا."},viewLicense:"قراءة الترخيص",viewSource:"الحصول على الشفرة المصدرية",updates:{title:"التحديثات",description:"ما إذا كانت هذه النسخة تتحقق من الإصدارات الجديدة."},update:{disabled:"التحقق من التحديثات مُعطَّل، لذا لا تتصل هذه النسخة بـ GitHub إطلاقًا. فعِّله من الإعدادات لتعرف بالإصدارات الجديدة.",current:"أنت تستخدم أحدث إصدار.",available:"الإصدار {version} من Adminium متاح",availableBody:"أنت تستخدم حاليًا {version}.",viewRelease:"عرض ملاحظات الإصدار"},desktop:{unknown:"غير معروف",appVersion:"إصدار التطبيق",serverVersion:"إصدار الخادم",migration:"ترحيل مخزن البيانات الوصفية",electron:"Electron",chromium:"Chromium",runtimeNode:"بيئة تشغيل Node",system:{title:"النظام"},dataDir:"دليل البيانات",reveal:"إظهار في المجلد",secret:{title:"تخزين السرّ",safe:"مُشفَّر بواسطة نظام التشغيل لديك",plainWarning:"لا تتوفر سلسلة مفاتيح للنظام على هذا الحاسوب، لذا يُخزَّن سرّ Adminium غير مُشفَّر على القرص. يمكن لأي شخص يستطيع قراءة ملفات هذا الجهاز قراءته. أعِدّ سلسلة مفاتيح تسجيل الدخول (أو خدمة أسرار في لينكس) وأعِد تشغيل Adminium لحمايته."},updates:{title:"التحديثات",mode:{notify:"أعلِمني بالإصدارات الجديدة",manual:"فقط عند التحقق",disabled:"مُعطَّل (بلا اتصال)"},disabledBody:"التحديثات التلقائية مُعطَّلة (بلا اتصال). ثبِّت الإصدارات الجديدة يدويًا.",check:"التحقق من التحديثات",checking:"جارٍ التحقق…",lastChecked:"آخر تحقق {when}",available:"الإصدار {version} متوفر",none:"أنت على أحدث إصدار.",unavailable:"التحديثات مُعطَّلة في هذا التثبيت.",error:"تعذّر التحقق من التحديثات.",download:"تنزيل التحديث",downloading:"جارٍ التنزيل… {percent}٪",downloaded:"الإصدار {version} جاهز للتثبيت",restart:"أعد التشغيل للتثبيت",downloadError:"لم يكتمل التنزيل. يمكنك المحاولة مرة أخرى.",toast:{available:"يتوفّر إصدار جديد من Adminium",view:"عرض",downloaded:"التحديث جاهز للتثبيت",restart:"أعد التشغيل الآن"}},legal:{title:"التراخيص",agpl:"Adminium Desktop برنامج حر بموجب رخصة GNU Affero General Public License v3.0.",viewLicense:"عرض الترخيص",licenseTitle:"GNU Affero General Public License v3.0",licenseUnavailable:"ملف الترخيص المُضمَّن غير متوفر في هذه النسخة.",viewNotices:"تراخيص الأطراف الثالثة",noticesTitle:"إشعارات الأطراف الثالثة",noticesUnavailable:"تُنشأ إشعارات الأطراف الثالثة عند تحزيم التطبيق وهي غير متوفرة في هذه النسخة.",source:"الشيفرة المصدرية",close:"إغلاق"},telemetry:{title:"بيانات استخدام مجهولة",label:"مشاركة بيانات استخدام مجهولة",description:"يساعدنا على تحديد محركات قواعد البيانات ذات الأولوية. مُعطَّل ما لم تُفعِّله؛ ولا يُرسَل أبدًا أي مخطط أو بيانات أو معلومات شخصية.",saveFailed:"تعذّر حفظ هذا الإعداد. حاوِل مرة أخرى."},diagnostics:{title:"التشخيص",description:"تفاصيل تساعد عند الإبلاغ عن مشكلة. لا تتضمّن أي مخطط أو بيانات.",copy:"نسخ معلومات التشخيص",copied:"تم النسخ",showLogs:"عرض السجلات",dataSize:"حجم البيانات: {size}"}}},apiKeys:{title:"مفاتيح API والرموز",subtitle:"تحكَّم في الوصول البرمجي إلى مساحة عملك.",createButton:"إنشاء مفتاح",copy:"نسخ",copied:"تم النسخ",revoke:"إبطال المفتاح",neverUsed:"لم يُستخدم قط",lastUsed:"آخر استخدام {since}",scopesOverflow:"و{count} أخرى",status:{active:"نشط",revoked:"مُبطَل",expired:"منتهي الصلاحية"},list:{title:"المفاتيح",activeCount:"{count, plural, zero {لا مفاتيح نشطة} one {مفتاح نشط واحد} two {مفتاحان نشطان} few {# مفاتيح نشطة} many {# مفتاحًا نشطًا} other {# مفتاح نشط}}"},empty:{title:"لا توجد مفاتيح API بعد",body:"أنشئ مفتاحًا لاستدعاء واجهة Adminium من شفرتك الخاصة."},revealed:{title:"تم إنشاء مفتاح جديد",body:"انسخه الآن — لن تتمكن من رؤيته مرة أخرى."},rolesUnavailable:{title:"الأدوار غير ظاهرة لك",body:"إنشاء مفتاح يعني اختيار الدور الذي يعمل به، وحسابك لا يستطيع قراءة قائمة الأدوار. اطلب من المسؤول صلاحية “إدارة الأدوار”."},quickStart:{title:"بداية سريعة",body:"وثِّق طلباتك بوضع المفتاح في ترويسة Authorization."},create:{title:"إنشاء مفتاح API",description:"يعمل المفتاح بصلاحيات الدور الذي تختاره.",name:"الاسم",namePlaceholder:"مثال: خط بيانات التحليلات",role:"الدور",roleHelper:"اختر أقل الأدوار صلاحيةً مما يفي بالغرض.",expires:"ينتهي في",expiresHelper:"اتركه فارغًا لمفتاح لا تنتهي صلاحيته.",submit:"إنشاء المفتاح",failed:"تعذَّر إنشاء المفتاح"},revokeConfirm:{title:"إبطال مفتاح API",body:"أي شفرة ما زالت تستدعي الواجهة بـ “{name}” ستفشل فورًا. لا يمكن التراجع عن ذلك.",prompt:"اكتب “{name}” للتأكيد",confirm:"إبطال المفتاح"}},changelog:{title:"سجل التغييرات",subtitle:"تحديثات المنتج والإصدارات.",allReleases:"كل الإصدارات",tag:{new:"جديد",improved:"تحسين",fixed:"إصلاح",security:"أمان"},filter:{all:"الكل",label:"تصفية التغييرات حسب النوع"},empty:{title:"لا شيء ضمن هذه التصفية",body:"لم يحمل أي إصدار تغييرًا من هذا النوع بعد.",clear:"عرض كل التغييرات"}},kb:{title:"قاعدة المعرفة",subtitle:"{count, plural, zero {لا أدلة} one {دليل واحد} two {دليلان} few {# أدلة} many {# دليلًا} other {# دليل}} · التوثيق الكامل على docs.adminium.dev",openDocs:"فتح التوثيق",browse:"تصفَّح حسب الموضوع",hero:{title:"كيف يمكننا المساعدة؟",subtitle:"ابحث في الأدلة وتوثيق الواجهة وحل المشكلات.",placeholder:"ابحث في قاعدة المعرفة…",label:"ابحث في قاعدة المعرفة",clear:"مسح البحث"},category:{start:"البداية",connect:"توصيل البيانات",api:"الواجهة والمطورون",security:"الأمان والوصول",selfhost:"الاستضافة الذاتية",trouble:"حل المشكلات",count:"{count, plural, zero {لا مقالات} one {مقال واحد} two {مقالان} few {# مقالات} many {# مقالًا} other {# مقال}}",selected:"قيد التصفية"},list:{all:"كل الأدلة",clear:"مسح التصفية"},empty:{title:"لا يوجد دليل يطابق بحثك",body:"جرِّب كلمة أخرى، أو ابحث في التوثيق الكامل على docs.adminium.dev.",openDocs:"فتح التوثيق"},article:{install:{title:"تثبيت Adminium",excerpt:"شغِّل من نسخة المصدر أو عبر docker run، وستصل إلى معالج التشغيل الأول خلال دقيقة."},firstAdmin:{title:"إنشاء أول مسؤول أعلى",excerpt:"ما يطلبه معالج التشغيل الأول، ولماذا لا يعمل إلا مرة واحدة."},connectDb:{title:"توصيل قاعدة بياناتك الأولى",excerpt:"وجِّه Adminium إلى PostgreSQL أو MySQL أو SQLite وولِّد تطبيق إدارة."},schemaFile:{title:"التوليد من ملف مخطط",excerpt:"ارفع مخطط Prisma أو models.py من Django أو schema.rb من Rails أو ملف .sql — دون أي اتصال."},readOnly:{title:"استخدام دور للقراءة فقط",excerpt:"الاستكشاف يقرأ بيانات المخطط الوصفية فقط. امنح Adminium أقل صلاحية ممكنة."},apiKeys:{title:"التوثيق بمفاتيح API",excerpt:"إنشاء المفاتيح وإبطالها، ولماذا يُعرض المفتاح عليك مرة واحدة فقط."},rest:{title:"مرجع واجهة REST",excerpt:"كل نقطة نهاية يوفرها التطبيق المولَّد، بأشكال الطلب والاستجابة."},manifest:{title:"بيان الصفحة",excerpt:"كيف تُوصف الصفحة كإعدادات، وكيف تحررها يدويًا."},roles:{title:"الأدوار والصلاحيات",excerpt:"عيِّن أدوار المشاهد والمحرر والمسؤول، وابنِ أدوارك من مصفوفة الصلاحيات."},audit:{title:"قراءة سجل التدقيق",excerpt:"من غيَّر ماذا، ومتى، ومن أين."},secrets:{title:"كيف يحفظ Adminium أسرارك",excerpt:"تُشفَّر بيانات الاتصال أثناء التخزين بـ ADMINIUM_SECRET، وتُجزَّأ مفاتيح API."},docker:{title:"الاستضافة الذاتية عبر Docker",excerpt:"الصورة الرسمية وdocker-compose وتشغيل قاعدة بيانات وصفية منفصلة."},backup:{title:"نسخ نسخة احتياطية ونقل النسخة",excerpt:"يجمع export-zip إعدادات خادمك؛ واستيراده يعيد التهيئة نفسها في مكان آخر."},telemetry:{title:"القياس عن بُعد وفحص التحديثات",excerpt:"كلاهما اختياري ومعطَّل افتراضيًا. وما الذي يُرسَل إن فعَّلتهما."},connectionFails:{title:"فشل الاتصال بقاعدة البيانات",excerpt:"اقرأ بطاقة التشخيص: المضيف والمنفذ وTLS وعنوان IP الذي يجب أن تسمح به قاعدتك."},missingTables:{title:"جداول ناقصة بعد الاستكشاف",excerpt:"ظهور المخطط، والجداول المستبعدة، وإعادة تشغيل التوليد."}}},desktop:{menu:{file:"ملف",fileNewDatabase:"قاعدة بيانات محلية جديدة…",fileOpenSqlite:"فتح ملف SQLite…",fileBackupNow:"النسخ الاحتياطي الآن…",fileRestore:"الاستعادة من نسخة احتياطية…",edit:"تحرير",view:"عرض",window:"نافذة",help:"مساعدة",helpDocs:"مستندات Adminium",helpShortcuts:"اختصارات لوحة المفاتيح",helpLogs:"عرض السجلات",helpCheckForUpdates:"التحقق من وجود تحديثات…",helpAbout:"حول Adminium"},settings:{explainer:"تنطبق هذه الإعدادات على تطبيق Adminium على هذا الكمبيوتر فقط، وتُحفَظ على هذا الجهاز لا في مساحة العمل."},security:{heading:"تسجيل الدخول"},requireLogin:{label:"طلب تسجيل الدخول على هذا الجهاز",description:"يسجّل Adminium دخولك تلقائيًا على هذا الكمبيوتر عادةً. فعّل هذا الخيار ليطلب كلمة المرور عند كل تشغيل — وهو مفيد إذا كان بإمكان أشخاص آخرين استخدام هذا الجهاز. يسري التغيير عند فتح Adminium في المرة القادمة.",savedOn:"سيُطلب تسجيل الدخول عند التشغيل القادم",savedOff:"سيتخطى Adminium تسجيل الدخول على هذا الكمبيوتر",saveFailed:"تعذّر حفظ هذا الإعداد. حاول مرة أخرى."},chip:{local:"محلي",lanShare:"محلي · مشارَك على الشبكة",remoteDb:"محلي + قاعدة بيانات بعيدة",remoteDbOffline:"قاعدة البيانات البعيدة غير متصلة",remoteDbOfflineDetail:"تعذّر الوصول إلى {names}. صفحات هذه الاتصالات تعرض حالة إعادة الاتصال."},lan:{heading:"المشاركة على الشبكة المحلية",label:"السماح للأجهزة الأخرى على هذه الشبكة باستخدام Adminium",description:"يمكن لأجهزة الكمبيوتر والأجهزة اللوحية والهواتف الموجودة على الشبكة نفسها فتح Adminium في المتصفح وتسجيل الدخول بحساباتها الخاصة. يجب أن يظل Adminium مفتوحًا على هذا الكمبيوتر حتى تتمكن من الوصول إليه.",savedOn:"تتم المشاركة على شبكتك المحلية",savedOff:"توقفت المشاركة — عاد Adminium إلى هذا الكمبيوتر فقط",saveFailed:"تعذّر تغيير مشاركة الشبكة",noUsers:"أنت الشخص الوحيد الذي لديه حساب، لذا لا يمكن لأي شخص آخر تسجيل الدخول بعد. المشاركة تعمل رغم ذلك — ستحتاج فقط إلى دعوة أشخاص قبل أن يتمكنوا من استخدامها.",usersUnknown:"تعذّر على Adminium التحقق ممن لديه حساب آخر على هذا الكمبيوتر. لا تزال المشاركة تعمل، ويمكن لأي شخص لديه حساب تسجيل الدخول — هذا التحقق وحده هو ما فشل.",acknowledge:"فهمت — سأدعو أشخاصًا لاحقًا",port:"المنفذ",portHelper:"الافتراضي {port}",portInvalid:"استخدم رقمًا بين 1024 و65535.",applyPort:"تغيير المنفذ",portInUse:"المنفذ {port} مستخدم بالفعل بواسطة برنامج آخر.",portInUseHint:"لم يتغيّر شيء — المشاركة ما زالت متوقفة.",portInUseNoSuggestion:"لم يتغيّر شيء. جرّب منفذًا آخر.",tryPort:"جرّب {port}",urlsHeading:"افتح هذا على جهاز آخر",noUrls:"هذا الكمبيوتر غير متصل بشبكة حاليًا، لذا لا يوجد عنوان للمشاركة. اتصل بشبكة Wi-Fi أو وصّل كابلًا وستمتلئ هذه القائمة.",copyUrl:"نسخ",sessions:"{count, plural, =0 {لا توجد أجهزة مسجّلة الدخول من هذه الشبكة} one {# جهاز مسجّل الدخول من هذه الشبكة} two {جهازان مسجّلان الدخول من هذه الشبكة} few {# أجهزة مسجّلة الدخول من هذه الشبكة} many {# جهازًا مسجّلًا الدخول من هذه الشبكة} other {# جهاز مسجّل الدخول من هذه الشبكة}}",sessionsUnknown:"جارٍ التحقق ممّن هو متصل…",pending:"جارٍ بدء المشاركة…",mismatch:"ما زال الوصول إلى Adminium ممكنًا على هذه الشبكة",mismatchBody:"المشاركة متوقفة، لكن الخادم لم يحرّر الشبكة بعد. أعد تشغيل Adminium لإغلاقها.",transportTitle:"حركة البيانات على شبكتك المحلية غير مشفّرة.",transportBody:"شارك فقط على الشبكات التي تثق بها. للوصول عن بُعد، استخدم استضافة Adminium الذاتية خلف HTTPS.",firewall:"في أول مرة تشارك فيها، سيسألك نظام التشغيل عمّا إذا كان يسمح بالاتصالات الواردة — اختر السماح، وإلا لن تتمكن الأجهزة الأخرى من الوصول إلى Adminium."},setup:{title:"مرحبًا بك في Adminium",subtitle:"أربع خطوات قصيرة ويكون Adminium قد بنى تطبيق إدارة من قاعدة بياناتك. كل شيء يبقى على هذا الكمبيوتر.",progress:"تقدّم الإعداد",back:"رجوع",continue:"متابعة",createAccount:"إنشاء الحساب والمتابعة",step:{location:"مرحبًا",database:"قاعدة بياناتك الأولى",account:"حسابك",generate:"إنشاء"},dataDir:{heading:"أين ينبغي أن يحتفظ Adminium ببياناتك؟",description:"قواعد بياناتك وإعداداتك ونسخك الاحتياطية كلها موجودة في هذا المجلد. كل شيء يبقى على هذا الكمبيوتر — ولا يُرفع أي شيء إلى أي مكان.",label:"مجلد البيانات",loading:"جارٍ قراءة الموقع الحالي…",pending:"يُعيد Adminium التشغيل عند المتابعة حتى ينتقل إلى هذا المجلد.",change:"تغيير…",revert:"تراجع",dialogTitle:"اختر المكان الذي يحتفظ فيه Adminium ببياناتك",cloudSyncTitle:"تتم مزامنة هذا المجلد مع السحابة",cloudSyncWarning:"يخزّن Adminium بياناته في ملفات SQLite. يقوم {provider} بمزامنة الملفات في «{folder}» عن طريق نسخها في الخلفية، ما قد يُتلف قاعدة بيانات مفتوحة — ويفقد البيانات دون أي تحذير. اختر مجلدًا خارج {provider}.",chooseAnother:"اختيار مجلد آخر",useAnyway:"استخدامه على أي حال — أقبل المخاطرة",unusableTitle:"لا يستطيع Adminium استخدام هذا المجلد",failed:"تعذّر على Adminium استخدام هذا المجلد."},source:{heading:"ممّ ينبغي أن يبني Adminium؟",description:"يقرأ Adminium مخطط قاعدة البيانات ويُنشئ منه تطبيق إدارة. يمكنك إضافة قواعد بيانات أخرى لاحقًا.",groupLabel:"مصدر قاعدة البيانات",local:{title:"إنشاء قاعدة بيانات محلية جديدة",description:"ابدأ من الصفر، أو من ملف مخطط لديك بالفعل. تُنشأ قاعدة البيانات داخل مجلد بياناتك.",name:"اسم قاعدة البيانات",namePlaceholder:"العمليات",nameUnusable:"استخدم حرفًا أو رقمًا واحدًا على الأقل — يُبنى اسم الملف من هذا.",fileHelper:"يُنشئ {file}",schemaLabel:"البدء من",blank:"فارغة",fromFile:"ملف مخطط",schemaFile:"ملف المخطط",schemaFileHelper:".sql أو pg_dump أو Prisma أو Drizzle أو TypeORM أو Sequelize أو schema.rb أو Django أو JSON الخاص بـ Adminium. يترجمه Adminium إلى SQLite.",placeholder:"إنشاء مدخلات نائبة تلقائيًا",placeholderHelper:"لقد استوردت مخططًا بلا صفوف. املأ كل جدول ببيانات نموذجية واقعية لتظهر لوحاتك ورسومك البيانية على الفور."},openSqlite:{title:"فتح ملف SQLite موجود",description:"وجّه Adminium إلى ملف .sqlite على هذا الكمبيوتر. يُفتح في مكانه — ولا يُنسخ أو يُنقل أي شيء.",browse:"اختر ملف .sqlite…",change:"اختر ملفًا آخر…",networkTitle:"هذا الملف على مشاركة شبكية",networkBody:"آلية القفل في SQLite غير موثوقة عبر مشاركات الملفات الشبكية، وانقطاع الاتصال أثناء الكتابة قد يُتلف قاعدة البيانات. الأكثر أمانًا هو نسخة على قرص هذا الكمبيوتر نفسه."},remote:{title:"الاتصال بقاعدة بيانات على خادم",description:"PostgreSQL أو MySQL. يتطلب قاعدة بيانات يمكن الوصول إليها عبر الشبكة؛ ومع ذلك تبقى جداول Adminium الخاصة على هذا الكمبيوتر.",networkNote:"يتطلب قاعدة بيانات يمكن الوصول إليها عبر الشبكة",metaNote:"جداول Adminium الخاصة — صفحاتك وإعداداتك وتسجيل دخولك — تبقى في مجلد البيانات على هذا الكمبيوتر في كل الأحوال.",engine:"المحرّك",name:"اسم الاتصال",namePlaceholder:"الإنتاج",dsn:"سلسلة الاتصال",dsnHelper:"يختبرها Adminium عند الاتصال. استخدم دورًا للقراءة فقط إذا كنت تريد لوحات المعلومات فحسب."},demo:{title:"استكشاف قاعدة البيانات التجريبية",description:"قاعدة بيانات جاهزة لعمليات فريق، لترى ما الذي يبنيه Adminium قبل توجيهه إلى بياناتك الخاصة. احذفها متى شئت.",unavailable:"لا تتضمن هذه النسخة البيانات التجريبية، لذا لا يوجد ما يُحمَّل. اختر أحد الخيارات أعلاه."}},account:{heading:"أنشئ حسابك",description:"هذا هو حساب المسؤول لهذه النسخة من Adminium. تحمي كلمة المرور نسخك الاحتياطية وكل من تشاركهم على شبكتك — ولن يُطلب منك إدخالها عند كل تشغيل.",name:"اسمك",email:"البريد الإلكتروني",password:"كلمة المرور",passwordHelper:"{min} أحرف على الأقل.",confirm:"تأكيد كلمة المرور",strength:"قوة كلمة المرور",strengthLevels:{weak:"ضعيفة",fair:"مقبولة",good:"جيدة",strong:"قوية"},singleUser:"تخطّي تسجيل الدخول على هذا الكمبيوتر",singleUserHelper:"يسجّل Adminium دخولك تلقائيًا عند فتحه هنا. أوقف هذا إذا كان أشخاص آخرون يستخدمون هذا الجهاز. يمكنك تغييره لاحقًا من الإعدادات ← سطح المكتب.",locale:"اللغة",theme:"المظهر",alreadyExists:"هذه النسخة من Adminium لديها حساب بالفعل. سجّل الدخول به بدلًا من ذلك.",failed:"تعذّر على Adminium إنشاء هذا الحساب."},generate:{creating:"جارٍ إعداد قاعدة بياناتك…",introspecting:"جارٍ قراءة مخططك — الجداول والأعمدة والعلاقات…",working:"جارٍ العمل…",offlineNote:"كل هذا يحدث على هذا الكمبيوتر.",failedTitle:"تعذّر على Adminium إعداد قاعدة البيانات هذه",failedBody:"حدث خطأ ما. حاول مرة أخرى.",retry:"إعادة المحاولة"}}},capabilities:{heading:"أذونات التطبيقات",description:"يمكن للتطبيقات التي تثبّتها أن تطلب استخدام أجهزة هذا الكمبيوتر. أنت توافق على كل تطبيق، ويمكنك إلغاء الوصول في أي وقت.",grantedTo:"مسموح لـ {app}",status:{available:"متاح",stub:"غير متاح بعد",unavailable:"غير متاح"},allow:{action:"السماح…"},revoke:{action:"إلغاء",saved:"تم إلغاء الوصول",failed:"تعذّر إلغاء الوصول. حاول مرة أخرى."},grant:{saved:"تم السماح بالوصول",failed:"تعذّر السماح بالوصول. حاول مرة أخرى."},catalog:{printerEscpos:{name:"طابعة الإيصالات (ESC/POS)",scope:"الطباعة على طابعات الإيصالات وفتح درج النقود المتصل"}},consent:{title:"السماح لـ {app}؟",subtitle:"يطلب {app} استخدام أجهزة هذا الكمبيوتر.",willAllow:"سيسمح هذا لـ {app} بما يلي:",revokeNote:"يمكنك إلغاء ذلك في أي وقت من الإعدادات ← سطح المكتب. اسمح فقط للتطبيقات التي تثق بها.",deny:"ليس الآن",approve:"السماح"}},emailTemplates:{title:"قوالب البريد الإلكتروني",subtitle:"رسائل المعاملات ودورة الحياة التي ترسلها مساحة العمل.",search:"البحث في القوالب…",loadFailed:"تعذّر تحميل القوالب",empty:"لا توجد قوالب بريد إلكتروني بعد",emptyBody:"تظهر القوالب هنا بمجرد أن يُنشئها الخادم أو تُنشئها بنفسك.",noMatches:"لا توجد قوالب مطابقة",noMatchesBody:"جرّب بحثًا مختلفًا.",live:"مفعّل",disabled:"معطّل",name:"اسم القالب",subject:"الموضوع",enabled:"مفعّل"},board:{addCard:"إضافة بطاقة",compose:{placeholder:"عنوان البطاقة…",add:"إضافة",cancel:"إلغاء"},empty:{title:"لا توجد أعمدة للوحة",body:"أضف حقل حالة لتجميع البطاقات في أعمدة."}},calendar:{dateRange:"نطاق التاريخ",compose:{placeholder:"عنوان الحدث…",add:"إضافة",cancel:"إلغاء",open:"إضافة حدث"},agenda:{empty:"لا يوجد شيء مجدول"}},scheduler:{prevWeek:"الأسبوع السابق",nextWeek:"الأسبوع التالي",week:"أسبوع",month:"شهر",resource:"المورد",coverage:"التغطية",addShift:"إضافة وردية",shiftCount:"{n} وردية"},planning:{drawer:{close:"إغلاق",loading:"جارٍ تحميل السجل",error:"تعذّر تحميل هذا السجل."}},files:{uploadsUnavailable:"رفع الملفات غير متاح في هذه الصفحة بعد."},chat:{messageSent:"تم إرسال الرسالة",sendFailed:"تعذّر إرسال الرسالة."},templates:{crud:{title:"السجلات"},dashboard:{title:"لوحة المعلومات"},board:{title:"اللوحة"},calendar:{title:"التقويم"},scheduler:{title:"جدول المناوبات"},logViewer:{title:"سجلات الأحداث"},files:{title:"الملفات"},chat:{title:"الدردشة"},builder:{title:"المنشئ"},wizard:{title:"المعالج"},settings:{title:"الإعدادات"},directory:{title:"الدليل",searchPlaceholder:"البحث عن الأشخاص…",allFilter:"الكل",clearFilters:"مسح عوامل التصفية",detailTitle:"الشخص",emptyTitle:"لا يوجد أشخاص بعد",emptyBody:"يظهر الأشخاص هنا كلما وصلت صفوف إلى الجدول.",noMatchesTitle:"لا يوجد أشخاص مطابقون",noMatchesBody:"جرّب بحثًا مختلفًا أو أزل أحد عوامل التصفية.",errorTitle:"تعذّر تحميل هذا الدليل",loading:"جارٍ تحميل الأشخاص",memberCount:"{count} شخص"},masterDetail:{title:"قائمة وتفاصيل",allFilter:"الكل",clearFilters:"مسح عوامل التصفية",emptyTitle:"لا يوجد شيء هنا بعد",emptyBody:"تظهر السجلات هنا كلما وصلت صفوف إلى الجدول.",noMatchesTitle:"لا توجد سجلات مطابقة",noMatchesBody:"جرّب إزالة أحد عوامل التصفية.",errorTitle:"تعذّر تحميل هذه القائمة",loading:"جارٍ تحميل السجلات",selectPrompt:"اختر سجلًا"},queueInbox:{title:"قائمة الانتظار",approve:"موافقة",reject:"رفض",allSegment:"الكل",approvedToast:"تمت الموافقة على {count}.",rejectedToast:"تم رفض {count}.",undoneToast:"تم التراجع عن القرار.",failedToast:"فشل تنفيذ القرار.",bulkFailed:"تعذّر تحديث {failed} من {total} من الصفوف المحددة.",undoFailedToast:"تعذّر التراجع عن هذا القرار.",rejectTitle:"رفض الطلبات",rejectCount:"المحدد · {count}",rejectNote:"سيتم إشعار مقدم الطلب مع ملاحظتك.",rejectPlaceholder:"أضف ملاحظة لمقدم الطلب…",rejectConfirm:"رفض",emptyTitle:"لا يوجد شيء في قائمة الانتظار",emptyBody:"تظهر الطلبات الجديدة هنا فور وصولها.",caughtUpTitle:"لقد أنجزت كل شيء",caughtUpBody:"لا توجد طلبات في علامة التبويب هذه حاليًا.",errorTitle:"تعذّر تحميل قائمة الانتظار هذه",loading:"جارٍ تحميل قائمة الانتظار",selectPrompt:"اختر طلبًا",daysUnit:"{count} يوم"}},dataio:{back:"رجوع",import:{title:"استيراد البيانات",stepUpload:"رفع",stepMap:"مطابقة الأعمدة",stepValidate:"التحقق",stepRun:"الاستيراد والمراجعة",targetLabel:"الجدول الهدف",targetPlaceholder:"اختر صفحة جدول…",notATable:"هذه الصفحة ليست جدولًا — اختر صفحة جدول للاستيراد إليها.",dropTitle:"أسقط ملف CSV للاستيراد",dropHint:"ملف CSV حتى 32 ميغابايت — يجب أن يكون الصف الأول هو صف العناوين",skipTarget:"عدم الاستيراد",mapHint:"{count} صفوف بيانات في {file} — اختر هدفًا لكل عمود.",validating:"جارٍ التحقق…",toValidate:"التحقق",validateFailed:"فشل التحقق.",validationSummary:"{valid} من {total} صفًا جاهزة للاستيراد — سيتم تخطي {invalid}.",allValid:"اجتازت جميع الصفوف التحقق",run:"تشغيل الاستيراد",runSkipping:"استيراد {valid} صفًا (تخطي {invalid})",progressLabel:"تقدم الاستيراد",running:"جارٍ الاستيراد…",kpiTotal:"صفوف الملف",kpiCreated:"تم إنشاؤها",kpiUpdated:"تم تحديثها",kpiSkipped:"تم تخطيها",inconsistent:"أرقام الاستيراد غير متسقة — يجب أن يساوي الإجمالي مجموع ما تم إنشاؤه وتحديثه وتخطيه.",downloadErrors:"تنزيل تقرير الصفوف المتخطاة (CSV)",runFailed:"فشل الاستيراد."},exports:{title:"عمليات تصدير البيانات",tableLabel:"الجدول",tablePlaceholder:"اختر جدولًا…",notATable:"هذه الصفحة ليست جدولًا — اختر صفحة جدول لتصديرها.",formatLabel:"التنسيق",create:"تصدير",createFailed:"تعذّر طلب التصدير.",retention:"تُحفظ عمليات التصدير لمدة 30 يومًا ثم تنتهي صلاحيتها.",statusProcessing:"جارٍ المعالجة…",statusReady:"جاهز — {rows} صفًا · انقر للتنزيل",statusFailed:"فشل — {error}",statusCancelled:"أُلغي",statusExpired:"منتهي الصلاحية",emptyTitle:"لا توجد عمليات تصدير بعد",emptyBody:"اطلب واحدة أعلاه — تظهر الملفات الناتجة هنا مع حالتها."}},reports:{title:"التقارير المجدولة",subtitle:"لقطات بيانات دورية لصفحة ما تصلك كإشعارات داخل التطبيق.",new:"تقرير جديد",loadFailed:"تعذّر تحميل التقارير المجدولة.",saveFailed:"تعذّر حفظ هذا التقرير.",nextRun:"التشغيل التالي",emptyTitle:"لا توجد تقارير مجدولة بعد",emptyBody:"أنشئ تقريرًا للحصول على لقطة بيانات دورية لأي صفحة جدول.",createTitle:"تقرير مجدول جديد",editTitle:"تعديل التقرير المجدول",nameLabel:"الاسم",namePlaceholder:"مثل: الإيرادات الأسبوعية",pageLabel:"الصفحة",pagePlaceholder:"اختر صفحة…",frequencyLabel:"التكرار",frequency:{daily:"يوميًا",weekly:"أسبوعيًا",monthly:"شهريًا"},dayOfWeekLabel:"اليوم",dayOfMonthLabel:"اليوم من الشهر",timeLabel:"الوقت",timezoneLabel:"المنطقة الزمنية",formatLabel:"التسليم",formatHint:"لقطة بيانات (سيتوفر إخراج PDF/PNG في إصدار لاحق) — ينتج عن كل تشغيل لقطة CSV وإشعار داخل التطبيق.",recipientsLabel:"المستلمون",recipientsHint:"تُحفظ مع التقرير. سيتوفر التسليم عبر البريد الإلكتروني في إصدار لاحق — حتى ذلك الحين ستصلك إشعارات داخل التطبيق.",deliveryBadge:"لقطة CSV",delete:"حذف",create:"إنشاء",cadence:{daily:"يوميًا في {time} ({zone})",weekly:"أسبوعيًا · {day} في {time} ({zone})",monthly:"شهريًا · اليوم {day} في {time} ({zone})"}},notifications:{channel:{inApp:"داخل التطبيق",email:"البريد الإلكتروني",push:"إشعارات فورية"},event:{reportReady:"التقرير المجدول جاهز",reportFailed:"فشل التقرير المجدول",backupCompleted:"اكتمل النسخ الاحتياطي"}}};export{e as default};
|
|
2
|
+
//# sourceMappingURL=common-Cmf0_lKV.js.map
|