@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,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LAN share, as the SERVER can see it (11-electron.md §8.3, §8.1).
|
|
3
|
+
*
|
|
4
|
+
* The desktop shell owns the DECISION — `config.json`'s `lanShare` is main's
|
|
5
|
+
* file (§2.3), and main is what re-forks this process with `ADMINIUM_HOST=0.0.0.0`
|
|
6
|
+
* — so nothing here toggles anything. What lives here are the two questions only
|
|
7
|
+
* a process holding the meta store and its own listening socket can answer:
|
|
8
|
+
*
|
|
9
|
+
* 1. {@link lanShareActive} — am I bound wide, or to loopback? §8.1's runtime
|
|
10
|
+
* chip needs this, and §8.1 forbids it the obvious source: "The chip is a
|
|
11
|
+
* `@adminium/ui` component fed by `GET /api/v1/system/info` + a lightweight
|
|
12
|
+
* connection-health poll — **no preload involvement**." So the answer has to
|
|
13
|
+
* come off this process's own boot environment.
|
|
14
|
+
* 2. {@link readLanShareStatus} — who is actually connected, and is there
|
|
15
|
+
* anyone but the super admin to connect? Both are meta-store reads, and §1
|
|
16
|
+
* principle 2 makes this process the only thing allowed to make them.
|
|
17
|
+
*
|
|
18
|
+
* ─── Why the bind address is the honest signal ───────────────────────────────
|
|
19
|
+
*
|
|
20
|
+
* `config.lanShare.enabled` is a statement of INTENT that the user can change at
|
|
21
|
+
* any moment; the bind address is the state of the world. They disagree for a
|
|
22
|
+
* whole server lifetime whenever the rebind fails or has not happened yet —
|
|
23
|
+
* exactly the window in which a chip saying "Sharing on LAN" over a
|
|
24
|
+
* loopback-only server, or the reverse, is a lie with a security consequence.
|
|
25
|
+
* §2.4 states the invariant in the same terms ("The server binds 127.0.0.1
|
|
26
|
+
* unless LAN share is on"), so reporting the bind is reporting the promise.
|
|
27
|
+
*/
|
|
28
|
+
import type { MetaDb } from '@adminium/meta';
|
|
29
|
+
import type { Env } from '../config/env.js';
|
|
30
|
+
/** Is `host` a bind-every-interface address? */
|
|
31
|
+
export declare function isWildcardBindHost(host: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* §8.3's toggle, as observed rather than as configured: is THIS process reachable
|
|
34
|
+
* from the LAN because the desktop shell asked it to be?
|
|
35
|
+
*
|
|
36
|
+
* The `desktop` runtime clause is not decoration. Self-host, Docker and `npx
|
|
37
|
+
* adminium` all default `HOST` to `0.0.0.0` — that is the normal, correct bind
|
|
38
|
+
* for a server behind a reverse proxy, and it is not "LAN share". §8.3 is a
|
|
39
|
+
* DESKTOP feature: an app that is normally a single-user local tool and has been
|
|
40
|
+
* deliberately opened up. Reporting `true` for every Docker deployment would
|
|
41
|
+
* make §8.1's chip meaningless on the one runtime that renders it and wrong on
|
|
42
|
+
* every other.
|
|
43
|
+
*/
|
|
44
|
+
export declare function lanShareActive(env: Pick<Env, 'ADMINIUM_RUNTIME' | 'HOST'>): boolean;
|
|
45
|
+
/** What §8.3's share panel shows, minus the URLs (which only main can enumerate). */
|
|
46
|
+
export interface LanShareStatus {
|
|
47
|
+
/** {@link lanShareActive} — the bind, not the config. */
|
|
48
|
+
active: boolean;
|
|
49
|
+
/** Sessions currently held by a peer that is NOT this machine. */
|
|
50
|
+
lanSessions: number;
|
|
51
|
+
/**
|
|
52
|
+
* Active users who are not super admins — §8.3's precondition ("at least one
|
|
53
|
+
* non-super-admin user exists *or* the admin acknowledges they'll invite users
|
|
54
|
+
* next").
|
|
55
|
+
*/
|
|
56
|
+
otherUsers: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* §8.3's "connected-session count (from `adminium_sessions` with non-loopback
|
|
60
|
+
* IPs)".
|
|
61
|
+
*
|
|
62
|
+
* ─── "Active" has to mean the same thing here as at the front door ───────────
|
|
63
|
+
*
|
|
64
|
+
* Three conditions, and they are `resolveSessionByToken`'s three, deliberately:
|
|
65
|
+
* un-revoked, before `expires_at`, and inside the 7-day idle window. A count
|
|
66
|
+
* that used fewer would report sessions that the very next request would refuse
|
|
67
|
+
* as expired — a panel telling an admin "3 devices connected" when two of them
|
|
68
|
+
* were signed out last week is worse than no panel, because the number is the
|
|
69
|
+
* only reason the panel exists.
|
|
70
|
+
*
|
|
71
|
+
* ─── Non-loopback, and what a NULL ip means ──────────────────────────────────
|
|
72
|
+
*
|
|
73
|
+
* `adminium_sessions.ip` is nullable, and `null` is not "loopback": it is "we
|
|
74
|
+
* were not told". It cannot be counted as a LAN peer (that would inflate the
|
|
75
|
+
* number on any install whose sessions predate an ip being recorded), and it is
|
|
76
|
+
* not counted here. In practice the desktop path always records one —
|
|
77
|
+
* `routes/auth/handlers.ts`'s `requestMeta` passes `request.ip` on every login —
|
|
78
|
+
* so this is a defensive read, not a common case.
|
|
79
|
+
*
|
|
80
|
+
* `isLoopbackAddress` rather than a `!== '127.0.0.1'` comparison: loopback is a
|
|
81
|
+
* whole /8 plus `::1` plus the IPv4-mapped spellings a dual-stack listener hands
|
|
82
|
+
* out, and `::ffff:127.0.0.1` is this machine however much it looks like it is
|
|
83
|
+
* not.
|
|
84
|
+
*/
|
|
85
|
+
export declare function readLanShareStatus(env: Pick<Env, 'ADMINIUM_RUNTIME' | 'HOST'>, meta: MetaDb, at?: number): Promise<LanShareStatus>;
|
|
86
|
+
/**
|
|
87
|
+
* The built-in role `@adminium/meta`'s `bootstrap.ts` seeds and the RBAC
|
|
88
|
+
* resolver short-circuits on. Restated here rather than imported because meta
|
|
89
|
+
* exports the seed shape and not the slug; `desktop-lan-route.test.ts` pins the
|
|
90
|
+
* two together, since a typo would silently make every super admin count as an
|
|
91
|
+
* "other user" and wave the §8.3 precondition through.
|
|
92
|
+
*/
|
|
93
|
+
export declare const SUPER_ADMIN_ROLE_SLUG = "super-admin";
|
|
94
|
+
//# sourceMappingURL=lan-share.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lan-share.d.ts","sourceRoot":"","sources":["../../src/desktop/lan-share.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAkB5C,gDAAgD;AAChD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAAC,GAAG,OAAO,CAEnF;AAED,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAAC,EAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,GAAE,MAAmB,GACtB,OAAO,CAAC,cAAc,CAAC,CAMzB;AAiDD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LAN share, as the SERVER can see it (11-electron.md §8.3, §8.1).
|
|
3
|
+
*
|
|
4
|
+
* The desktop shell owns the DECISION — `config.json`'s `lanShare` is main's
|
|
5
|
+
* file (§2.3), and main is what re-forks this process with `ADMINIUM_HOST=0.0.0.0`
|
|
6
|
+
* — so nothing here toggles anything. What lives here are the two questions only
|
|
7
|
+
* a process holding the meta store and its own listening socket can answer:
|
|
8
|
+
*
|
|
9
|
+
* 1. {@link lanShareActive} — am I bound wide, or to loopback? §8.1's runtime
|
|
10
|
+
* chip needs this, and §8.1 forbids it the obvious source: "The chip is a
|
|
11
|
+
* `@adminium/ui` component fed by `GET /api/v1/system/info` + a lightweight
|
|
12
|
+
* connection-health poll — **no preload involvement**." So the answer has to
|
|
13
|
+
* come off this process's own boot environment.
|
|
14
|
+
* 2. {@link readLanShareStatus} — who is actually connected, and is there
|
|
15
|
+
* anyone but the super admin to connect? Both are meta-store reads, and §1
|
|
16
|
+
* principle 2 makes this process the only thing allowed to make them.
|
|
17
|
+
*
|
|
18
|
+
* ─── Why the bind address is the honest signal ───────────────────────────────
|
|
19
|
+
*
|
|
20
|
+
* `config.lanShare.enabled` is a statement of INTENT that the user can change at
|
|
21
|
+
* any moment; the bind address is the state of the world. They disagree for a
|
|
22
|
+
* whole server lifetime whenever the rebind fails or has not happened yet —
|
|
23
|
+
* exactly the window in which a chip saying "Sharing on LAN" over a
|
|
24
|
+
* loopback-only server, or the reverse, is a lie with a security consequence.
|
|
25
|
+
* §2.4 states the invariant in the same terms ("The server binds 127.0.0.1
|
|
26
|
+
* unless LAN share is on"), so reporting the bind is reporting the promise.
|
|
27
|
+
*/
|
|
28
|
+
import { isLoopbackAddress } from '../auth/desktop-session.js';
|
|
29
|
+
import { SESSION_IDLE_TTL_MS } from '../auth/sessions.js';
|
|
30
|
+
/**
|
|
31
|
+
* Bind addresses that mean "every interface", i.e. reachable from the LAN.
|
|
32
|
+
*
|
|
33
|
+
* `0.0.0.0` is what §2.2 step 5's env block names and what the shell sends.
|
|
34
|
+
* `::` (and its bracketed spelling) is the IPv6 wildcard, which reaches the
|
|
35
|
+
* same conclusion by the same mechanism — and which a fleet admin or a
|
|
36
|
+
* hand-edited launch could produce. Anything else — a loopback literal, a
|
|
37
|
+
* single NIC's address, a hostname — is not a wildcard. Note that a specific
|
|
38
|
+
* LAN address like `192.168.1.5` is deliberately NOT here: it is reachable, but
|
|
39
|
+
* the desktop shell never produces it (§8.3 flips between loopback and
|
|
40
|
+
* `0.0.0.0` and nothing else), and treating an arbitrary literal as "sharing"
|
|
41
|
+
* would require this module to enumerate interfaces — which is main's job (`os`
|
|
42
|
+
* lives there, and this process may be in a container).
|
|
43
|
+
*/
|
|
44
|
+
const WILDCARD_BIND_HOSTS = new Set(['0.0.0.0', '::', '[::]', '*']);
|
|
45
|
+
/** Is `host` a bind-every-interface address? */
|
|
46
|
+
export function isWildcardBindHost(host) {
|
|
47
|
+
return WILDCARD_BIND_HOSTS.has(host.trim());
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* §8.3's toggle, as observed rather than as configured: is THIS process reachable
|
|
51
|
+
* from the LAN because the desktop shell asked it to be?
|
|
52
|
+
*
|
|
53
|
+
* The `desktop` runtime clause is not decoration. Self-host, Docker and `npx
|
|
54
|
+
* adminium` all default `HOST` to `0.0.0.0` — that is the normal, correct bind
|
|
55
|
+
* for a server behind a reverse proxy, and it is not "LAN share". §8.3 is a
|
|
56
|
+
* DESKTOP feature: an app that is normally a single-user local tool and has been
|
|
57
|
+
* deliberately opened up. Reporting `true` for every Docker deployment would
|
|
58
|
+
* make §8.1's chip meaningless on the one runtime that renders it and wrong on
|
|
59
|
+
* every other.
|
|
60
|
+
*/
|
|
61
|
+
export function lanShareActive(env) {
|
|
62
|
+
return env.ADMINIUM_RUNTIME === 'desktop' && isWildcardBindHost(env.HOST);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* §8.3's "connected-session count (from `adminium_sessions` with non-loopback
|
|
66
|
+
* IPs)".
|
|
67
|
+
*
|
|
68
|
+
* ─── "Active" has to mean the same thing here as at the front door ───────────
|
|
69
|
+
*
|
|
70
|
+
* Three conditions, and they are `resolveSessionByToken`'s three, deliberately:
|
|
71
|
+
* un-revoked, before `expires_at`, and inside the 7-day idle window. A count
|
|
72
|
+
* that used fewer would report sessions that the very next request would refuse
|
|
73
|
+
* as expired — a panel telling an admin "3 devices connected" when two of them
|
|
74
|
+
* were signed out last week is worse than no panel, because the number is the
|
|
75
|
+
* only reason the panel exists.
|
|
76
|
+
*
|
|
77
|
+
* ─── Non-loopback, and what a NULL ip means ──────────────────────────────────
|
|
78
|
+
*
|
|
79
|
+
* `adminium_sessions.ip` is nullable, and `null` is not "loopback": it is "we
|
|
80
|
+
* were not told". It cannot be counted as a LAN peer (that would inflate the
|
|
81
|
+
* number on any install whose sessions predate an ip being recorded), and it is
|
|
82
|
+
* not counted here. In practice the desktop path always records one —
|
|
83
|
+
* `routes/auth/handlers.ts`'s `requestMeta` passes `request.ip` on every login —
|
|
84
|
+
* so this is a defensive read, not a common case.
|
|
85
|
+
*
|
|
86
|
+
* `isLoopbackAddress` rather than a `!== '127.0.0.1'` comparison: loopback is a
|
|
87
|
+
* whole /8 plus `::1` plus the IPv4-mapped spellings a dual-stack listener hands
|
|
88
|
+
* out, and `::ffff:127.0.0.1` is this machine however much it looks like it is
|
|
89
|
+
* not.
|
|
90
|
+
*/
|
|
91
|
+
export async function readLanShareStatus(env, meta, at = Date.now()) {
|
|
92
|
+
const [lanSessions, otherUsers] = await Promise.all([
|
|
93
|
+
countLanSessions(meta, at),
|
|
94
|
+
countNonSuperAdminUsers(meta),
|
|
95
|
+
]);
|
|
96
|
+
return { active: lanShareActive(env), lanSessions, otherUsers };
|
|
97
|
+
}
|
|
98
|
+
async function countLanSessions(meta, at) {
|
|
99
|
+
const rows = await meta.db
|
|
100
|
+
.selectFrom('adminium_sessions')
|
|
101
|
+
.select(['ip'])
|
|
102
|
+
.where('revokedAt', 'is', null)
|
|
103
|
+
.where('expiresAt', '>', at)
|
|
104
|
+
.where('lastSeenAt', '>', at - SESSION_IDLE_TTL_MS)
|
|
105
|
+
.execute();
|
|
106
|
+
// The loopback test is applied in TypeScript rather than SQL on purpose: the
|
|
107
|
+
// rule is "is this address one of the several shapes that mean this machine",
|
|
108
|
+
// which is `isLoopbackAddress`'s job and not something three dialects of
|
|
109
|
+
// `LIKE` should be asked to re-implement between them. The row set is bounded
|
|
110
|
+
// by the number of live sessions on a desktop install.
|
|
111
|
+
return rows.filter((row) => row.ip !== null && !isLoopbackAddress(row.ip)).length;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* §8.3's precondition input: is there anybody to invite, or has the admin only
|
|
115
|
+
* got themselves?
|
|
116
|
+
*
|
|
117
|
+
* "Non-super-admin" is asked of the ROLE ASSIGNMENT rather than of the user row,
|
|
118
|
+
* because super-admin is not a column — it is a row in `adminium_user_roles`
|
|
119
|
+
* pointing at the `super-admin` role (`@adminium/meta`'s `bootstrap.ts` seeds
|
|
120
|
+
* it, and the RBAC resolver short-circuits on that slug). A second super admin
|
|
121
|
+
* therefore does NOT count: §8.3's precondition exists so the admin does not
|
|
122
|
+
* open their machine to a network on which nobody but them has an account, and
|
|
123
|
+
* another copy of themselves does not change that.
|
|
124
|
+
*
|
|
125
|
+
* Suspended and invited users do not count either — `status: 'active'` is the
|
|
126
|
+
* set that can actually log in.
|
|
127
|
+
*/
|
|
128
|
+
async function countNonSuperAdminUsers(meta) {
|
|
129
|
+
const superAdmins = meta.db
|
|
130
|
+
.selectFrom('adminium_user_roles')
|
|
131
|
+
.innerJoin('adminium_roles', 'adminium_roles.id', 'adminium_user_roles.roleId')
|
|
132
|
+
.select('adminium_user_roles.userId')
|
|
133
|
+
.where('adminium_roles.slug', '=', SUPER_ADMIN_ROLE_SLUG);
|
|
134
|
+
const rows = await meta.db
|
|
135
|
+
.selectFrom('adminium_users')
|
|
136
|
+
.select('id')
|
|
137
|
+
.where('status', '=', 'active')
|
|
138
|
+
.where('id', 'not in', superAdmins)
|
|
139
|
+
.execute();
|
|
140
|
+
return rows.length;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* The built-in role `@adminium/meta`'s `bootstrap.ts` seeds and the RBAC
|
|
144
|
+
* resolver short-circuits on. Restated here rather than imported because meta
|
|
145
|
+
* exports the seed shape and not the slug; `desktop-lan-route.test.ts` pins the
|
|
146
|
+
* two together, since a typo would silently make every super admin count as an
|
|
147
|
+
* "other user" and wave the §8.3 precondition through.
|
|
148
|
+
*/
|
|
149
|
+
export const SUPER_ADMIN_ROLE_SLUG = 'super-admin';
|
|
150
|
+
//# sourceMappingURL=lan-share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lan-share.js","sourceRoot":"","sources":["../../src/desktop/lan-share.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D;;;;;;;;;;;;;GAaG;AACH,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEzF,gDAAgD;AAChD,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,GAA2C;IACxE,OAAO,GAAG,CAAC,gBAAgB,KAAK,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAA2C,EAC3C,IAAY,EACZ,KAAa,IAAI,CAAC,GAAG,EAAE;IAEvB,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,uBAAuB,CAAC,IAAI,CAAC;KAC9B,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,EAAU;IACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE;SACvB,UAAU,CAAC,mBAAmB,CAAC;SAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;SACd,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC;SAC9B,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC;SAC3B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,GAAG,mBAAmB,CAAC;SAClD,OAAO,EAAE,CAAC;IACb,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,8EAA8E;IAC9E,uDAAuD;IACvD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,uBAAuB,CAAC,IAAY;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;SACxB,UAAU,CAAC,qBAAqB,CAAC;SACjC,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,4BAA4B,CAAC;SAC9E,MAAM,CAAC,4BAA4B,CAAC;SACpC,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAE5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE;SACvB,UAAU,CAAC,gBAAgB,CAAC;SAC5B,MAAM,CAAC,IAAI,CAAC;SACZ,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC;SAC9B,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;SAClC,OAAO,EAAE,CAAC;IACb,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application errors + the one non-2xx envelope (08-server-api.md §1.4).
|
|
3
|
+
*
|
|
4
|
+
* Every non-2xx response has the shape
|
|
5
|
+
* `{ error: { code, message, requestId, details? } }` with a SCREAMING_SNAKE
|
|
6
|
+
* `code` from the canonical table. Handlers throw `AppError` subclasses; the
|
|
7
|
+
* global error handler in `app.ts` serializes them.
|
|
8
|
+
*/
|
|
9
|
+
/** Canonical error codes relevant to the M2 skeleton (08-server-api.md §1.4). */
|
|
10
|
+
export type ErrorCode = 'VALIDATION_FAILED' | 'UNAUTHENTICATED' | 'SESSION_EXPIRED' | 'FORBIDDEN' | 'TABLE_FORBIDDEN' | 'COLUMN_FORBIDDEN' | 'PAGE_FORBIDDEN' | 'CSRF_FAILED' | 'READ_ONLY_MODE' | 'NOT_FOUND' | 'CONFLICT' | 'UNIQUE_VIOLATION' | 'FK_VIOLATION' | 'PAYLOAD_TOO_LARGE' | 'UNKNOWN_IDENTIFIER' | 'RATE_LIMITED' | 'SOURCE_DB_UNREACHABLE' | 'INTERNAL';
|
|
11
|
+
/** The wire shape of every non-2xx response. */
|
|
12
|
+
export interface ErrorEnvelope {
|
|
13
|
+
error: {
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
requestId: string;
|
|
17
|
+
details?: unknown;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Builds the §1.4 envelope. `details` is included only when defined so
|
|
22
|
+
* successful `JSON.stringify` output never carries a `"details": undefined`
|
|
23
|
+
* hole (and `exactOptionalPropertyTypes` stays happy).
|
|
24
|
+
*/
|
|
25
|
+
export declare function errorEnvelope(code: string, message: string, requestId: string, details?: unknown): ErrorEnvelope;
|
|
26
|
+
/**
|
|
27
|
+
* Base class for expected, route-throwable errors. Carries the HTTP status,
|
|
28
|
+
* the SCREAMING_SNAKE code, and optional Zod-safe JSON `details`.
|
|
29
|
+
*/
|
|
30
|
+
export declare class AppError extends Error {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly statusCode: number;
|
|
33
|
+
readonly code: string;
|
|
34
|
+
readonly details: unknown;
|
|
35
|
+
constructor(statusCode: number, code: string, message: string, details?: unknown);
|
|
36
|
+
}
|
|
37
|
+
/** 404 — resource or record absent. */
|
|
38
|
+
export declare class NotFoundError extends AppError {
|
|
39
|
+
readonly name = "NotFoundError";
|
|
40
|
+
constructor(message?: string, details?: unknown);
|
|
41
|
+
}
|
|
42
|
+
/** 422 — Zod schema rejection or semantically invalid input. */
|
|
43
|
+
export declare class ValidationFailedError extends AppError {
|
|
44
|
+
readonly name = "ValidationFailedError";
|
|
45
|
+
constructor(message?: string, details?: unknown);
|
|
46
|
+
}
|
|
47
|
+
/** 401 — no/invalid session (`UNAUTHENTICATED`) or expired (`SESSION_EXPIRED`). */
|
|
48
|
+
export declare class UnauthorizedError extends AppError {
|
|
49
|
+
readonly name = "UnauthorizedError";
|
|
50
|
+
constructor(code?: 'UNAUTHENTICATED' | 'SESSION_EXPIRED', message?: string, details?: unknown);
|
|
51
|
+
}
|
|
52
|
+
/** 403 — RBAC/CSRF denial; `code` narrows the flavor (08-server-api.md §1.4). */
|
|
53
|
+
export declare class ForbiddenError extends AppError {
|
|
54
|
+
readonly name = "ForbiddenError";
|
|
55
|
+
constructor(message?: string, code?: 'FORBIDDEN' | 'TABLE_FORBIDDEN' | 'COLUMN_FORBIDDEN' | 'PAGE_FORBIDDEN' | 'CSRF_FAILED' | 'READ_ONLY_MODE', details?: unknown);
|
|
56
|
+
}
|
|
57
|
+
/** 409 — optimistic-concurrency/state conflict or mapped constraint violation. */
|
|
58
|
+
export declare class ConflictError extends AppError {
|
|
59
|
+
readonly name = "ConflictError";
|
|
60
|
+
constructor(message?: string, code?: 'CONFLICT' | 'UNIQUE_VIOLATION' | 'FK_VIOLATION', details?: unknown);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 429 — thrown by the §6 limiter in `plugins/core.ts` when a bucket is
|
|
64
|
+
* exhausted (08-server-api.md §6); the plugin sets `Retry-After` on the reply
|
|
65
|
+
* before the global handler serializes this envelope. `details` carries
|
|
66
|
+
* `{ bucket, limit, resetAt }` when known.
|
|
67
|
+
*/
|
|
68
|
+
export declare class RateLimitedError extends AppError {
|
|
69
|
+
readonly name = "RateLimitedError";
|
|
70
|
+
constructor(message?: string, details?: unknown);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iFAAiF;AACjF,MAAM,MAAM,SAAS,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,kBAAkB,GAClB,cAAc,GACd,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,GACd,uBAAuB,GACvB,UAAU,CAAC;AAEf,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,aAAa,CAIf;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAkB,IAAI,EAAE,MAAM,CAAc;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAMjF;AAED,uCAAuC;AACvC,qBAAa,aAAc,SAAQ,QAAQ;IACzC,SAAkB,IAAI,mBAAmB;gBAE7B,OAAO,SAAwB,EAAE,OAAO,CAAC,EAAE,OAAO;CAG/D;AAED,gEAAgE;AAChE,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAkB,IAAI,2BAA2B;gBAErC,OAAO,SAA+B,EAAE,OAAO,CAAC,EAAE,OAAO;CAGtE;AAED,mFAAmF;AACnF,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,SAAkB,IAAI,uBAAuB;gBAG3C,IAAI,GAAE,iBAAiB,GAAG,iBAAqC,EAC/D,OAAO,SAAwF,EAC/F,OAAO,CAAC,EAAE,OAAO;CAIpB;AAED,iFAAiF;AACjF,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,SAAkB,IAAI,oBAAoB;gBAGxC,OAAO,SAA6C,EACpD,IAAI,GACA,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,aAAa,GACb,gBAA8B,EAClC,OAAO,CAAC,EAAE,OAAO;CAIpB;AAED,kFAAkF;AAClF,qBAAa,aAAc,SAAQ,QAAQ;IACzC,SAAkB,IAAI,mBAAmB;gBAGvC,OAAO,SAA8C,EACrD,IAAI,GAAE,UAAU,GAAG,kBAAkB,GAAG,cAA2B,EACnE,OAAO,CAAC,EAAE,OAAO;CAIpB;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,SAAkB,IAAI,sBAAsB;gBAEhC,OAAO,SAA0C,EAAE,OAAO,CAAC,EAAE,OAAO;CAGjF"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application errors + the one non-2xx envelope (08-server-api.md §1.4).
|
|
3
|
+
*
|
|
4
|
+
* Every non-2xx response has the shape
|
|
5
|
+
* `{ error: { code, message, requestId, details? } }` with a SCREAMING_SNAKE
|
|
6
|
+
* `code` from the canonical table. Handlers throw `AppError` subclasses; the
|
|
7
|
+
* global error handler in `app.ts` serializes them.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Builds the §1.4 envelope. `details` is included only when defined so
|
|
11
|
+
* successful `JSON.stringify` output never carries a `"details": undefined`
|
|
12
|
+
* hole (and `exactOptionalPropertyTypes` stays happy).
|
|
13
|
+
*/
|
|
14
|
+
export function errorEnvelope(code, message, requestId, details) {
|
|
15
|
+
return details === undefined
|
|
16
|
+
? { error: { code, message, requestId } }
|
|
17
|
+
: { error: { code, message, requestId, details } };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Base class for expected, route-throwable errors. Carries the HTTP status,
|
|
21
|
+
* the SCREAMING_SNAKE code, and optional Zod-safe JSON `details`.
|
|
22
|
+
*/
|
|
23
|
+
export class AppError extends Error {
|
|
24
|
+
name = 'AppError';
|
|
25
|
+
statusCode;
|
|
26
|
+
code;
|
|
27
|
+
details;
|
|
28
|
+
constructor(statusCode, code, message, details) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.statusCode = statusCode;
|
|
31
|
+
this.code = code;
|
|
32
|
+
this.details = details;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** 404 — resource or record absent. */
|
|
36
|
+
export class NotFoundError extends AppError {
|
|
37
|
+
name = 'NotFoundError';
|
|
38
|
+
constructor(message = 'Resource not found.', details) {
|
|
39
|
+
super(404, 'NOT_FOUND', message, details);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** 422 — Zod schema rejection or semantically invalid input. */
|
|
43
|
+
export class ValidationFailedError extends AppError {
|
|
44
|
+
name = 'ValidationFailedError';
|
|
45
|
+
constructor(message = 'Request validation failed.', details) {
|
|
46
|
+
super(422, 'VALIDATION_FAILED', message, details);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/** 401 — no/invalid session (`UNAUTHENTICATED`) or expired (`SESSION_EXPIRED`). */
|
|
50
|
+
export class UnauthorizedError extends AppError {
|
|
51
|
+
name = 'UnauthorizedError';
|
|
52
|
+
constructor(code = 'UNAUTHENTICATED', message = code === 'SESSION_EXPIRED' ? 'Your session has expired.' : 'Authentication required.', details) {
|
|
53
|
+
super(401, code, message, details);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** 403 — RBAC/CSRF denial; `code` narrows the flavor (08-server-api.md §1.4). */
|
|
57
|
+
export class ForbiddenError extends AppError {
|
|
58
|
+
name = 'ForbiddenError';
|
|
59
|
+
constructor(message = 'You do not have access to this resource.', code = 'FORBIDDEN', details) {
|
|
60
|
+
super(403, code, message, details);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** 409 — optimistic-concurrency/state conflict or mapped constraint violation. */
|
|
64
|
+
export class ConflictError extends AppError {
|
|
65
|
+
name = 'ConflictError';
|
|
66
|
+
constructor(message = 'The resource changed since you loaded it.', code = 'CONFLICT', details) {
|
|
67
|
+
super(409, code, message, details);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 429 — thrown by the §6 limiter in `plugins/core.ts` when a bucket is
|
|
72
|
+
* exhausted (08-server-api.md §6); the plugin sets `Retry-After` on the reply
|
|
73
|
+
* before the global handler serializes this envelope. `details` carries
|
|
74
|
+
* `{ bucket, limit, resetAt }` when known.
|
|
75
|
+
*/
|
|
76
|
+
export class RateLimitedError extends AppError {
|
|
77
|
+
name = 'RateLimitedError';
|
|
78
|
+
constructor(message = 'Too many requests. Try again shortly.', details) {
|
|
79
|
+
super(429, 'RATE_LIMITED', message, details);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiCH;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,OAAe,EACf,SAAiB,EACjB,OAAiB;IAEjB,OAAO,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE;QACzC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACf,IAAI,GAAW,UAAU,CAAC;IACnC,UAAU,CAAS;IACnB,IAAI,CAAS;IACb,OAAO,CAAU;IAE1B,YAAY,UAAkB,EAAE,IAAY,EAAE,OAAe,EAAE,OAAiB;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,uCAAuC;AACvC,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACvB,IAAI,GAAG,eAAe,CAAC;IAEzC,YAAY,OAAO,GAAG,qBAAqB,EAAE,OAAiB;QAC5D,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IAC/B,IAAI,GAAG,uBAAuB,CAAC;IAEjD,YAAY,OAAO,GAAG,4BAA4B,EAAE,OAAiB;QACnE,KAAK,CAAC,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC3B,IAAI,GAAG,mBAAmB,CAAC;IAE7C,YACE,OAA8C,iBAAiB,EAC/D,OAAO,GAAG,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,0BAA0B,EAC/F,OAAiB;QAEjB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED,iFAAiF;AACjF,MAAM,OAAO,cAAe,SAAQ,QAAQ;IACxB,IAAI,GAAG,gBAAgB,CAAC;IAE1C,YACE,OAAO,GAAG,0CAA0C,EACpD,OAMuB,WAAW,EAClC,OAAiB;QAEjB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED,kFAAkF;AAClF,MAAM,OAAO,aAAc,SAAQ,QAAQ;IACvB,IAAI,GAAG,eAAe,CAAC;IAEzC,YACE,OAAO,GAAG,2CAA2C,EACrD,OAAyD,UAAU,EACnE,OAAiB;QAEjB,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC1B,IAAI,GAAG,kBAAkB,CAAC;IAE5C,YAAY,OAAO,GAAG,uCAAuC,EAAE,OAAiB;QAC9E,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bundle format: layout, manifest, and the Zod schemas both front doors
|
|
3
|
+
* (export, import) validate against (M10-T03; 01-architecture.md §6.1, §8.2).
|
|
4
|
+
*
|
|
5
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
6
|
+
* WHAT THIS IS, STATED ONCE SO IT CANNOT DRIFT: an Adminium bundle is
|
|
7
|
+
* **configuration for a server, not a server and not source code**. Adminium
|
|
8
|
+
* interprets config at runtime; it never emits an app. The bundle therefore
|
|
9
|
+
* carries the instance's `adminium_*` config content as portable JSON, plus a
|
|
10
|
+
* manifest that pins the versions needed to replay it, plus a README saying
|
|
11
|
+
* exactly this. `package.json` in the bundle pins the `@adminiumjs/adminium` npm package at
|
|
12
|
+
* the exporting version — per 01 §4.1 that single package *is* the complete
|
|
13
|
+
* install (server + dashboard dist + meta migrations), so pinning it is how the
|
|
14
|
+
* bundle names its runtime without shipping (unshippable, platform-specific,
|
|
15
|
+
* natively-compiled) copies of it.
|
|
16
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
17
|
+
*
|
|
18
|
+
* VERSION REPLAY (§8.2): the manifest embeds `{ appVersion, configVersion,
|
|
19
|
+
* metaVersion }`. On import the meta migrator brings the target schema up, and
|
|
20
|
+
* `runConfigMigrations` from `@adminium/engine/config` replays every config
|
|
21
|
+
* document's `v` up to the running build's — so a bundle exported at N imports
|
|
22
|
+
* into any instance at ≥ N. A bundle from a *newer* build is refused rather
|
|
23
|
+
* than silently half-read.
|
|
24
|
+
*/
|
|
25
|
+
import { z } from 'zod';
|
|
26
|
+
/** Bundle root inside the archive — one directory, so unzipping is tidy. */
|
|
27
|
+
export declare const BUNDLE_ROOT = "adminium-export";
|
|
28
|
+
export declare const MANIFEST_PATH = "adminium-export/manifest.json";
|
|
29
|
+
export declare const README_PATH = "adminium-export/README.md";
|
|
30
|
+
export declare const PACKAGE_JSON_PATH = "adminium-export/package.json";
|
|
31
|
+
export declare const CONFIG_DIR = "adminium-export/config";
|
|
32
|
+
/** The config resources the bundle carries, in import (FK-safe) order. */
|
|
33
|
+
export declare const BUNDLE_RESOURCES: readonly ["settings", "roles", "rolePermissions", "connections", "snapshots", "overrides", "pages", "views"];
|
|
34
|
+
export type BundleResource = (typeof BUNDLE_RESOURCES)[number];
|
|
35
|
+
export declare function resourcePath(resource: BundleResource): string;
|
|
36
|
+
/**
|
|
37
|
+
* How secrets were treated. `omitted` is the default and means the target must
|
|
38
|
+
* re-enter DSNs and provider keys. `encrypted` means the ciphertext travelled
|
|
39
|
+
* and only the *same* `ADMINIUM_SECRET` can re-open it — stated explicitly so a
|
|
40
|
+
* bundle can never be mistaken for a self-contained credential store.
|
|
41
|
+
*/
|
|
42
|
+
export declare const secretsPolicySchema: z.ZodEnum<{
|
|
43
|
+
omitted: "omitted";
|
|
44
|
+
encrypted: "encrypted";
|
|
45
|
+
}>;
|
|
46
|
+
export type SecretsPolicy = z.infer<typeof secretsPolicySchema>;
|
|
47
|
+
export declare const bundleManifestSchema: z.ZodObject<{
|
|
48
|
+
formatVersion: z.ZodNumber;
|
|
49
|
+
appVersion: z.ZodString;
|
|
50
|
+
configVersion: z.ZodNumber;
|
|
51
|
+
metaVersion: z.ZodString;
|
|
52
|
+
exportedAt: z.ZodNumber;
|
|
53
|
+
connectionId: z.ZodNullable<z.ZodString>;
|
|
54
|
+
secrets: z.ZodObject<{
|
|
55
|
+
policy: z.ZodEnum<{
|
|
56
|
+
omitted: "omitted";
|
|
57
|
+
encrypted: "encrypted";
|
|
58
|
+
}>;
|
|
59
|
+
encrypted: z.ZodArray<z.ZodString>;
|
|
60
|
+
omitted: z.ZodArray<z.ZodString>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
counts: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export type BundleManifest = z.infer<typeof bundleManifestSchema>;
|
|
65
|
+
export declare const settingsRowSchema: z.ZodObject<{
|
|
66
|
+
key: z.ZodString;
|
|
67
|
+
value: z.ZodUnknown;
|
|
68
|
+
}, z.core.$strip>;
|
|
69
|
+
export declare const roleRowSchema: z.ZodObject<{
|
|
70
|
+
id: z.ZodString;
|
|
71
|
+
slug: z.ZodString;
|
|
72
|
+
name: z.ZodString;
|
|
73
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
74
|
+
isBuiltin: z.ZodBoolean;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export declare const rolePermissionRowSchema: z.ZodObject<{
|
|
77
|
+
id: z.ZodString;
|
|
78
|
+
roleId: z.ZodString;
|
|
79
|
+
resourceKind: z.ZodString;
|
|
80
|
+
resourceRef: z.ZodString;
|
|
81
|
+
actions: z.ZodUnknown;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
export declare const connectionRowSchema: z.ZodObject<{
|
|
84
|
+
id: z.ZodString;
|
|
85
|
+
name: z.ZodString;
|
|
86
|
+
engine: z.ZodString;
|
|
87
|
+
sourceKind: z.ZodString;
|
|
88
|
+
readOnly: z.ZodBoolean;
|
|
89
|
+
ssl: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
90
|
+
settings: z.ZodUnknown;
|
|
91
|
+
introspectDsnEncrypted: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
92
|
+
dataDsnEncrypted: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
93
|
+
}, z.core.$strip>;
|
|
94
|
+
export declare const snapshotRowSchema: z.ZodObject<{
|
|
95
|
+
id: z.ZodString;
|
|
96
|
+
connectionId: z.ZodString;
|
|
97
|
+
source: z.ZodString;
|
|
98
|
+
importFormat: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
99
|
+
engineVersion: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
100
|
+
schema: z.ZodUnknown;
|
|
101
|
+
stats: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
102
|
+
checksum: z.ZodString;
|
|
103
|
+
isActive: z.ZodBoolean;
|
|
104
|
+
}, z.core.$strip>;
|
|
105
|
+
export declare const overrideRowSchema: z.ZodObject<{
|
|
106
|
+
id: z.ZodString;
|
|
107
|
+
connectionId: z.ZodString;
|
|
108
|
+
op: z.ZodString;
|
|
109
|
+
tableName: z.ZodString;
|
|
110
|
+
columnName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
111
|
+
value: z.ZodUnknown;
|
|
112
|
+
origin: z.ZodString;
|
|
113
|
+
status: z.ZodString;
|
|
114
|
+
confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
115
|
+
}, z.core.$strip>;
|
|
116
|
+
export declare const pageRowSchema: z.ZodObject<{
|
|
117
|
+
id: z.ZodString;
|
|
118
|
+
connectionId: z.ZodNullable<z.ZodString>;
|
|
119
|
+
slug: z.ZodString;
|
|
120
|
+
type: z.ZodString;
|
|
121
|
+
title: z.ZodString;
|
|
122
|
+
icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
123
|
+
navGroup: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
124
|
+
navOrder: z.ZodNumber;
|
|
125
|
+
config: z.ZodUnknown;
|
|
126
|
+
origin: z.ZodString;
|
|
127
|
+
generatedFromSnapshotId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
128
|
+
isEnabled: z.ZodBoolean;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
export declare const viewRowSchema: z.ZodObject<{
|
|
131
|
+
id: z.ZodString;
|
|
132
|
+
pageId: z.ZodString;
|
|
133
|
+
kind: z.ZodString;
|
|
134
|
+
name: z.ZodString;
|
|
135
|
+
config: z.ZodUnknown;
|
|
136
|
+
isDefault: z.ZodBoolean;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
/** Resource name → row schema. The import iterates this, so a resource without
|
|
139
|
+
* a schema cannot be imported by accident. */
|
|
140
|
+
export declare const RESOURCE_SCHEMAS: {
|
|
141
|
+
readonly settings: z.ZodObject<{
|
|
142
|
+
key: z.ZodString;
|
|
143
|
+
value: z.ZodUnknown;
|
|
144
|
+
}, z.core.$strip>;
|
|
145
|
+
readonly roles: z.ZodObject<{
|
|
146
|
+
id: z.ZodString;
|
|
147
|
+
slug: z.ZodString;
|
|
148
|
+
name: z.ZodString;
|
|
149
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
150
|
+
isBuiltin: z.ZodBoolean;
|
|
151
|
+
}, z.core.$strip>;
|
|
152
|
+
readonly rolePermissions: z.ZodObject<{
|
|
153
|
+
id: z.ZodString;
|
|
154
|
+
roleId: z.ZodString;
|
|
155
|
+
resourceKind: z.ZodString;
|
|
156
|
+
resourceRef: z.ZodString;
|
|
157
|
+
actions: z.ZodUnknown;
|
|
158
|
+
}, z.core.$strip>;
|
|
159
|
+
readonly connections: z.ZodObject<{
|
|
160
|
+
id: z.ZodString;
|
|
161
|
+
name: z.ZodString;
|
|
162
|
+
engine: z.ZodString;
|
|
163
|
+
sourceKind: z.ZodString;
|
|
164
|
+
readOnly: z.ZodBoolean;
|
|
165
|
+
ssl: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
166
|
+
settings: z.ZodUnknown;
|
|
167
|
+
introspectDsnEncrypted: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
168
|
+
dataDsnEncrypted: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
169
|
+
}, z.core.$strip>;
|
|
170
|
+
readonly snapshots: z.ZodObject<{
|
|
171
|
+
id: z.ZodString;
|
|
172
|
+
connectionId: z.ZodString;
|
|
173
|
+
source: z.ZodString;
|
|
174
|
+
importFormat: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
175
|
+
engineVersion: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
176
|
+
schema: z.ZodUnknown;
|
|
177
|
+
stats: z.ZodOptional<z.ZodNullable<z.ZodUnknown>>;
|
|
178
|
+
checksum: z.ZodString;
|
|
179
|
+
isActive: z.ZodBoolean;
|
|
180
|
+
}, z.core.$strip>;
|
|
181
|
+
readonly overrides: z.ZodObject<{
|
|
182
|
+
id: z.ZodString;
|
|
183
|
+
connectionId: z.ZodString;
|
|
184
|
+
op: z.ZodString;
|
|
185
|
+
tableName: z.ZodString;
|
|
186
|
+
columnName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
187
|
+
value: z.ZodUnknown;
|
|
188
|
+
origin: z.ZodString;
|
|
189
|
+
status: z.ZodString;
|
|
190
|
+
confidence: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
191
|
+
}, z.core.$strip>;
|
|
192
|
+
readonly pages: z.ZodObject<{
|
|
193
|
+
id: z.ZodString;
|
|
194
|
+
connectionId: z.ZodNullable<z.ZodString>;
|
|
195
|
+
slug: z.ZodString;
|
|
196
|
+
type: z.ZodString;
|
|
197
|
+
title: z.ZodString;
|
|
198
|
+
icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
199
|
+
navGroup: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
200
|
+
navOrder: z.ZodNumber;
|
|
201
|
+
config: z.ZodUnknown;
|
|
202
|
+
origin: z.ZodString;
|
|
203
|
+
generatedFromSnapshotId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
204
|
+
isEnabled: z.ZodBoolean;
|
|
205
|
+
}, z.core.$strip>;
|
|
206
|
+
readonly views: z.ZodObject<{
|
|
207
|
+
id: z.ZodString;
|
|
208
|
+
pageId: z.ZodString;
|
|
209
|
+
kind: z.ZodString;
|
|
210
|
+
name: z.ZodString;
|
|
211
|
+
config: z.ZodUnknown;
|
|
212
|
+
isDefault: z.ZodBoolean;
|
|
213
|
+
}, z.core.$strip>;
|
|
214
|
+
};
|
|
215
|
+
export type SettingsRow = z.infer<typeof settingsRowSchema>;
|
|
216
|
+
export type RoleRow = z.infer<typeof roleRowSchema>;
|
|
217
|
+
export type RolePermissionRow = z.infer<typeof rolePermissionRowSchema>;
|
|
218
|
+
export type ConnectionRow = z.infer<typeof connectionRowSchema>;
|
|
219
|
+
export type SnapshotRow = z.infer<typeof snapshotRowSchema>;
|
|
220
|
+
export type OverrideRow = z.infer<typeof overrideRowSchema>;
|
|
221
|
+
export type PageRow = z.infer<typeof pageRowSchema>;
|
|
222
|
+
export type ViewRow = z.infer<typeof viewRowSchema>;
|
|
223
|
+
/** The in-memory shape of a whole bundle — what export writes and import reads. */
|
|
224
|
+
export interface ConfigBundle {
|
|
225
|
+
manifest: BundleManifest;
|
|
226
|
+
settings: SettingsRow[];
|
|
227
|
+
roles: RoleRow[];
|
|
228
|
+
rolePermissions: RolePermissionRow[];
|
|
229
|
+
connections: ConnectionRow[];
|
|
230
|
+
snapshots: SnapshotRow[];
|
|
231
|
+
overrides: OverrideRow[];
|
|
232
|
+
pages: PageRow[];
|
|
233
|
+
views: ViewRow[];
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/export/bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4EAA4E;AAC5E,eAAO,MAAM,WAAW,oBAAoB,CAAC;AAE7C,eAAO,MAAM,aAAa,kCAAiC,CAAC;AAC5D,eAAO,MAAM,WAAW,8BAA6B,CAAC;AACtD,eAAO,MAAM,iBAAiB,iCAAgC,CAAC;AAC/D,eAAO,MAAM,UAAU,2BAA0B,CAAC;AAElD,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,8GASnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAE7D;AAID;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;EAAmC,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;iBAuB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAelE,eAAO,MAAM,iBAAiB;;;iBAAyD,CAAC;AAExF,eAAO,MAAM,aAAa;;;;;;iBAMxB,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAW9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAU5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAU5B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;iBAaxB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;iBAOxB,CAAC;AAEH;+CAC+C;AAC/C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASyB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,eAAe,EAAE,iBAAiB,EAAE,CAAC;IACrC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB"}
|