@portaidentity/cli 1.7.3 → 1.9.0
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/CHANGELOG.md +18 -0
- package/README.md +125 -105
- package/dist/admin/admin-date-time.d.ts +6 -0
- package/dist/admin/admin-date-time.d.ts.map +1 -0
- package/dist/admin/admin-date-time.js +33 -0
- package/dist/admin/admin-date-time.js.map +1 -0
- package/dist/admin/application-client-features.d.ts +38 -0
- package/dist/admin/application-client-features.d.ts.map +1 -0
- package/dist/admin/application-client-features.js +545 -0
- package/dist/admin/application-client-features.js.map +1 -0
- package/dist/admin/application-controller.d.ts +58 -0
- package/dist/admin/application-controller.d.ts.map +1 -0
- package/dist/admin/application-controller.js +286 -0
- package/dist/admin/application-controller.js.map +1 -0
- package/dist/admin/application-dialogs.d.ts +91 -0
- package/dist/admin/application-dialogs.d.ts.map +1 -0
- package/dist/admin/application-dialogs.js +250 -0
- package/dist/admin/application-dialogs.js.map +1 -0
- package/dist/admin/application-rbac-controller.d.ts +56 -0
- package/dist/admin/application-rbac-controller.d.ts.map +1 -0
- package/dist/admin/application-rbac-controller.js +280 -0
- package/dist/admin/application-rbac-controller.js.map +1 -0
- package/dist/admin/application-rbac-features.d.ts +51 -0
- package/dist/admin/application-rbac-features.d.ts.map +1 -0
- package/dist/admin/application-rbac-features.js +175 -0
- package/dist/admin/application-rbac-features.js.map +1 -0
- package/dist/admin/application-rbac-workspace.d.ts +62 -0
- package/dist/admin/application-rbac-workspace.d.ts.map +1 -0
- package/dist/admin/application-rbac-workspace.js +344 -0
- package/dist/admin/application-rbac-workspace.js.map +1 -0
- package/dist/admin/application-runtime.d.ts +44 -0
- package/dist/admin/application-runtime.d.ts.map +1 -0
- package/dist/admin/application-runtime.js +183 -0
- package/dist/admin/application-runtime.js.map +1 -0
- package/dist/admin/application-service.d.ts +39 -0
- package/dist/admin/application-service.d.ts.map +1 -0
- package/dist/admin/application-service.js +248 -0
- package/dist/admin/application-service.js.map +1 -0
- package/dist/admin/application-state.d.ts +109 -0
- package/dist/admin/application-state.d.ts.map +1 -0
- package/dist/admin/application-state.js +3 -0
- package/dist/admin/application-state.js.map +1 -0
- package/dist/admin/application-workspace.d.ts +77 -0
- package/dist/admin/application-workspace.d.ts.map +1 -0
- package/dist/admin/application-workspace.js +302 -0
- package/dist/admin/application-workspace.js.map +1 -0
- package/dist/admin/application.d.ts +88 -0
- package/dist/admin/application.d.ts.map +1 -0
- package/dist/admin/application.js +932 -0
- package/dist/admin/application.js.map +1 -0
- package/dist/admin/client-authentication-dialog.d.ts +77 -0
- package/dist/admin/client-authentication-dialog.d.ts.map +1 -0
- package/dist/admin/client-authentication-dialog.js +217 -0
- package/dist/admin/client-authentication-dialog.js.map +1 -0
- package/dist/admin/client-controller.d.ts +58 -0
- package/dist/admin/client-controller.d.ts.map +1 -0
- package/dist/admin/client-controller.js +462 -0
- package/dist/admin/client-controller.js.map +1 -0
- package/dist/admin/client-credential-dialogs.d.ts +36 -0
- package/dist/admin/client-credential-dialogs.d.ts.map +1 -0
- package/dist/admin/client-credential-dialogs.js +145 -0
- package/dist/admin/client-credential-dialogs.js.map +1 -0
- package/dist/admin/client-dialogs.d.ts +64 -0
- package/dist/admin/client-dialogs.d.ts.map +1 -0
- package/dist/admin/client-dialogs.js +110 -0
- package/dist/admin/client-dialogs.js.map +1 -0
- package/dist/admin/client-form-scroller.d.ts +17 -0
- package/dist/admin/client-form-scroller.d.ts.map +1 -0
- package/dist/admin/client-form-scroller.js +67 -0
- package/dist/admin/client-form-scroller.js.map +1 -0
- package/dist/admin/client-registration-dialog.d.ts +27 -0
- package/dist/admin/client-registration-dialog.d.ts.map +1 -0
- package/dist/admin/client-registration-dialog.js +195 -0
- package/dist/admin/client-registration-dialog.js.map +1 -0
- package/dist/admin/client-service.d.ts +41 -0
- package/dist/admin/client-service.d.ts.map +1 -0
- package/dist/admin/client-service.js +486 -0
- package/dist/admin/client-service.js.map +1 -0
- package/dist/admin/client-state.d.ts +159 -0
- package/dist/admin/client-state.d.ts.map +1 -0
- package/dist/admin/client-state.js +3 -0
- package/dist/admin/client-state.js.map +1 -0
- package/dist/admin/client-workspace.d.ts +88 -0
- package/dist/admin/client-workspace.d.ts.map +1 -0
- package/dist/admin/client-workspace.js +491 -0
- package/dist/admin/client-workspace.js.map +1 -0
- package/dist/admin/delete-confirmation-layout.d.ts +38 -0
- package/dist/admin/delete-confirmation-layout.d.ts.map +1 -0
- package/dist/admin/delete-confirmation-layout.js +52 -0
- package/dist/admin/delete-confirmation-layout.js.map +1 -0
- package/dist/admin/index.d.ts +64 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +31 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/organization-controller.d.ts +77 -0
- package/dist/admin/organization-controller.d.ts.map +1 -0
- package/dist/admin/organization-controller.js +472 -0
- package/dist/admin/organization-controller.js.map +1 -0
- package/dist/admin/organization-dialogs.d.ts +63 -0
- package/dist/admin/organization-dialogs.d.ts.map +1 -0
- package/dist/admin/organization-dialogs.js +303 -0
- package/dist/admin/organization-dialogs.js.map +1 -0
- package/dist/admin/organization-service.d.ts +110 -0
- package/dist/admin/organization-service.d.ts.map +1 -0
- package/dist/admin/organization-service.js +548 -0
- package/dist/admin/organization-service.js.map +1 -0
- package/dist/admin/organization-workspace.d.ts +29 -0
- package/dist/admin/organization-workspace.d.ts.map +1 -0
- package/dist/admin/organization-workspace.js +421 -0
- package/dist/admin/organization-workspace.js.map +1 -0
- package/dist/admin/portability-controller.d.ts +83 -0
- package/dist/admin/portability-controller.d.ts.map +1 -0
- package/dist/admin/portability-controller.js +466 -0
- package/dist/admin/portability-controller.js.map +1 -0
- package/dist/admin/portability-service.d.ts +31 -0
- package/dist/admin/portability-service.d.ts.map +1 -0
- package/dist/admin/portability-service.js +51 -0
- package/dist/admin/portability-service.js.map +1 -0
- package/dist/admin/portability-state.d.ts +88 -0
- package/dist/admin/portability-state.d.ts.map +1 -0
- package/dist/admin/portability-state.js +3 -0
- package/dist/admin/portability-state.js.map +1 -0
- package/dist/admin/portability-workspace.d.ts +78 -0
- package/dist/admin/portability-workspace.d.ts.map +1 -0
- package/dist/admin/portability-workspace.js +337 -0
- package/dist/admin/portability-workspace.js.map +1 -0
- package/dist/admin/presentation.d.ts +46 -0
- package/dist/admin/presentation.d.ts.map +1 -0
- package/dist/admin/presentation.js +271 -0
- package/dist/admin/presentation.js.map +1 -0
- package/dist/admin/rbac-dialogs.d.ts +73 -0
- package/dist/admin/rbac-dialogs.d.ts.map +1 -0
- package/dist/admin/rbac-dialogs.js +345 -0
- package/dist/admin/rbac-dialogs.js.map +1 -0
- package/dist/admin/rbac-service.d.ts +47 -0
- package/dist/admin/rbac-service.d.ts.map +1 -0
- package/dist/admin/rbac-service.js +258 -0
- package/dist/admin/rbac-service.js.map +1 -0
- package/dist/admin/rbac-state.d.ts +129 -0
- package/dist/admin/rbac-state.d.ts.map +1 -0
- package/dist/admin/rbac-state.js +136 -0
- package/dist/admin/rbac-state.js.map +1 -0
- package/dist/admin/selectable-read-only-input.d.ts +18 -0
- package/dist/admin/selectable-read-only-input.d.ts.map +1 -0
- package/dist/admin/selectable-read-only-input.js +24 -0
- package/dist/admin/selectable-read-only-input.js.map +1 -0
- package/dist/admin/session-service.d.ts +169 -0
- package/dist/admin/session-service.d.ts.map +1 -0
- package/dist/admin/session-service.js +353 -0
- package/dist/admin/session-service.js.map +1 -0
- package/dist/admin/state.d.ts +301 -0
- package/dist/admin/state.d.ts.map +1 -0
- package/dist/admin/state.js +10 -0
- package/dist/admin/state.js.map +1 -0
- package/dist/admin/system-config-controller.d.ts +58 -0
- package/dist/admin/system-config-controller.d.ts.map +1 -0
- package/dist/admin/system-config-controller.js +218 -0
- package/dist/admin/system-config-controller.js.map +1 -0
- package/dist/admin/system-config-service.d.ts +54 -0
- package/dist/admin/system-config-service.d.ts.map +1 -0
- package/dist/admin/system-config-service.js +180 -0
- package/dist/admin/system-config-service.js.map +1 -0
- package/dist/admin/system-config-state.d.ts +77 -0
- package/dist/admin/system-config-state.d.ts.map +1 -0
- package/dist/admin/system-config-state.js +78 -0
- package/dist/admin/system-config-state.js.map +1 -0
- package/dist/admin/system-config-workspace.d.ts +47 -0
- package/dist/admin/system-config-workspace.d.ts.map +1 -0
- package/dist/admin/system-config-workspace.js +217 -0
- package/dist/admin/system-config-workspace.js.map +1 -0
- package/dist/admin/user-controller-types.d.ts +67 -0
- package/dist/admin/user-controller-types.d.ts.map +1 -0
- package/dist/admin/user-controller-types.js +3 -0
- package/dist/admin/user-controller-types.js.map +1 -0
- package/dist/admin/user-controller.d.ts +6 -0
- package/dist/admin/user-controller.d.ts.map +1 -0
- package/dist/admin/user-controller.js +674 -0
- package/dist/admin/user-controller.js.map +1 -0
- package/dist/admin/user-dialog-fields.d.ts +44 -0
- package/dist/admin/user-dialog-fields.d.ts.map +1 -0
- package/dist/admin/user-dialog-fields.js +130 -0
- package/dist/admin/user-dialog-fields.js.map +1 -0
- package/dist/admin/user-dialogs.d.ts +66 -0
- package/dist/admin/user-dialogs.d.ts.map +1 -0
- package/dist/admin/user-dialogs.js +374 -0
- package/dist/admin/user-dialogs.js.map +1 -0
- package/dist/admin/user-role-controller.d.ts +82 -0
- package/dist/admin/user-role-controller.d.ts.map +1 -0
- package/dist/admin/user-role-controller.js +337 -0
- package/dist/admin/user-role-controller.js.map +1 -0
- package/dist/admin/user-role-dialog.d.ts +94 -0
- package/dist/admin/user-role-dialog.d.ts.map +1 -0
- package/dist/admin/user-role-dialog.js +265 -0
- package/dist/admin/user-role-dialog.js.map +1 -0
- package/dist/admin/user-service-types.d.ts +100 -0
- package/dist/admin/user-service-types.d.ts.map +1 -0
- package/dist/admin/user-service-types.js +3 -0
- package/dist/admin/user-service-types.js.map +1 -0
- package/dist/admin/user-service.d.ts +14 -0
- package/dist/admin/user-service.d.ts.map +1 -0
- package/dist/admin/user-service.js +612 -0
- package/dist/admin/user-service.js.map +1 -0
- package/dist/admin/user-state.d.ts +158 -0
- package/dist/admin/user-state.d.ts.map +1 -0
- package/dist/admin/user-state.js +3 -0
- package/dist/admin/user-state.js.map +1 -0
- package/dist/admin/user-workspace.d.ts +65 -0
- package/dist/admin/user-workspace.d.ts.map +1 -0
- package/dist/admin/user-workspace.js +366 -0
- package/dist/admin/user-workspace.js.map +1 -0
- package/dist/auth/browser-flow.d.ts +27 -1
- package/dist/auth/browser-flow.d.ts.map +1 -1
- package/dist/auth/browser-flow.js +55 -33
- package/dist/auth/browser-flow.js.map +1 -1
- package/dist/auth/callback-server.d.ts.map +1 -1
- package/dist/auth/callback-server.js +5 -9
- package/dist/auth/callback-server.js.map +1 -1
- package/dist/auth/id-token-verifier.d.ts +39 -0
- package/dist/auth/id-token-verifier.d.ts.map +1 -0
- package/dist/auth/id-token-verifier.js +104 -0
- package/dist/auth/id-token-verifier.js.map +1 -0
- package/dist/auth/login-coordinator.d.ts +72 -0
- package/dist/auth/login-coordinator.d.ts.map +1 -0
- package/dist/auth/login-coordinator.js +190 -0
- package/dist/auth/login-coordinator.js.map +1 -0
- package/dist/auth/metadata.d.ts +2 -1
- package/dist/auth/metadata.d.ts.map +1 -1
- package/dist/auth/metadata.js +67 -6
- package/dist/auth/metadata.js.map +1 -1
- package/dist/auth/types.d.ts +14 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/client-factory.d.ts.map +1 -1
- package/dist/client-factory.js +15 -2
- package/dist/client-factory.js.map +1 -1
- package/dist/commands/admin.d.ts +22 -0
- package/dist/commands/admin.d.ts.map +1 -0
- package/dist/commands/admin.js +112 -0
- package/dist/commands/admin.js.map +1 -0
- package/dist/commands/app-claim.d.ts.map +1 -1
- package/dist/commands/app-claim.js +11 -4
- package/dist/commands/app-claim.js.map +1 -1
- package/dist/commands/app-module.d.ts.map +1 -1
- package/dist/commands/app-module.js +61 -12
- package/dist/commands/app-module.js.map +1 -1
- package/dist/commands/app-permission.d.ts.map +1 -1
- package/dist/commands/app-permission.js +66 -24
- package/dist/commands/app-permission.js.map +1 -1
- package/dist/commands/app-role.d.ts.map +1 -1
- package/dist/commands/app-role.js +48 -27
- package/dist/commands/app-role.js.map +1 -1
- package/dist/commands/app.d.ts.map +1 -1
- package/dist/commands/app.js +37 -25
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/bulk.d.ts.map +1 -1
- package/dist/commands/bulk.js +9 -2
- package/dist/commands/bulk.js.map +1 -1
- package/dist/commands/client-secret.d.ts.map +1 -1
- package/dist/commands/client-secret.js +12 -6
- package/dist/commands/client-secret.js.map +1 -1
- package/dist/commands/client.d.ts +3 -2
- package/dist/commands/client.d.ts.map +1 -1
- package/dist/commands/client.js +102 -43
- package/dist/commands/client.js.map +1 -1
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +68 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/export.d.ts +6 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +182 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +6 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +142 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/keys.d.ts.map +1 -1
- package/dist/commands/keys.js +11 -4
- package/dist/commands/keys.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +24 -10
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/org.d.ts +2 -4
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +16 -76
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/user-role.d.ts.map +1 -1
- package/dist/commands/user-role.js +19 -14
- package/dist/commands/user-role.js.map +1 -1
- package/dist/commands/user.d.ts +3 -2
- package/dist/commands/user.d.ts.map +1 -1
- package/dist/commands/user.js +47 -71
- package/dist/commands/user.js.map +1 -1
- package/dist/commands/version.d.ts +1 -1
- package/dist/commands/version.js +1 -1
- package/dist/credential-lock.d.ts +20 -0
- package/dist/credential-lock.d.ts.map +1 -0
- package/dist/credential-lock.js +130 -0
- package/dist/credential-lock.js.map +1 -0
- package/dist/credential-store.d.ts +14 -0
- package/dist/credential-store.d.ts.map +1 -1
- package/dist/credential-store.js +114 -3
- package/dist/credential-store.js.map +1 -1
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +2 -0
- package/dist/error-handler.js.map +1 -1
- package/dist/global-options.d.ts +8 -0
- package/dist/global-options.d.ts.map +1 -1
- package/dist/global-options.js +19 -8
- package/dist/global-options.js.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/output.d.ts +11 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +25 -6
- package/dist/output.js.map +1 -1
- package/dist/prompt.d.ts +2 -2
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +27 -7
- package/dist/prompt.js.map +1 -1
- package/package.json +7 -3
- package/dist/commands/gui.d.ts +0 -21
- package/dist/commands/gui.d.ts.map +0 -1
- package/dist/commands/gui.js +0 -67
- package/dist/commands/gui.js.map +0 -1
- package/dist/commands/provision.d.ts +0 -47
- package/dist/commands/provision.d.ts.map +0 -1
- package/dist/commands/provision.js +0 -444
- package/dist/commands/provision.js.map +0 -1
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
/** Sanitized organization operations for the embedded administration UI. */
|
|
2
|
+
import { PortaAuthenticationError, PortaConflictError, PortaForbiddenError, PortaHttpError, PortaValidationError, } from '@portaidentity/sdk';
|
|
3
|
+
const ORGANIZATION_SLUG = /^[a-z0-9][a-z0-9-]{1,98}[a-z0-9]$/;
|
|
4
|
+
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
5
|
+
const ORGANIZATION_STATUSES = new Set(['active', 'suspended']);
|
|
6
|
+
const LOGIN_METHODS = new Set(['password', 'magic_link']);
|
|
7
|
+
const TWO_FACTOR_POLICIES = new Set(['optional', 'required_email', 'required_totp', 'required_any']);
|
|
8
|
+
const ASSET_CONTENT_TYPES = new Set(['image/png', 'image/jpeg', 'image/webp', 'image/x-icon', 'image/vnd.microsoft.icon', 'image/svg+xml']);
|
|
9
|
+
const ASSET_LIMITS = {
|
|
10
|
+
logo: 2 * 1024 * 1024,
|
|
11
|
+
favicon: 512 * 1024,
|
|
12
|
+
};
|
|
13
|
+
/** Narrows an untrusted value to a supported organization lifecycle state. */
|
|
14
|
+
function isOrganizationStatus(value) {
|
|
15
|
+
return typeof value === 'string' && ORGANIZATION_STATUSES.has(value);
|
|
16
|
+
}
|
|
17
|
+
/** Returns true when text contains a terminal control character. */
|
|
18
|
+
function containsTerminalControl(value) {
|
|
19
|
+
for (const character of value) {
|
|
20
|
+
const codePoint = character.codePointAt(0) ?? 0;
|
|
21
|
+
if (codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f))
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
/** Returns true for a bounded, terminal-safe text value. */
|
|
27
|
+
function isText(value, maximum, minimum = 0) {
|
|
28
|
+
return (typeof value === 'string' &&
|
|
29
|
+
value.length >= minimum &&
|
|
30
|
+
value.length <= maximum &&
|
|
31
|
+
!containsTerminalControl(value));
|
|
32
|
+
}
|
|
33
|
+
/** Validates an ISO timestamp retained only for human-readable display. */
|
|
34
|
+
function isTimestamp(value) {
|
|
35
|
+
if (!isText(value, 40, 20) ||
|
|
36
|
+
!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/.test(value)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const parsed = new Date(value);
|
|
40
|
+
return Number.isFinite(parsed.getTime()) && parsed.toISOString().slice(0, 19) === value.slice(0, 19);
|
|
41
|
+
}
|
|
42
|
+
/** Narrows one value to the supported organization login-method set. */
|
|
43
|
+
function isLoginMethod(value) {
|
|
44
|
+
return typeof value === 'string' && LOGIN_METHODS.has(value);
|
|
45
|
+
}
|
|
46
|
+
/** Projects a non-empty, duplicate-free login-method collection. */
|
|
47
|
+
function loginMethodValue(value) {
|
|
48
|
+
if (!Array.isArray(value) || value.length < 1 || value.length > LOGIN_METHODS.size) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const methods = [];
|
|
52
|
+
for (const method of value) {
|
|
53
|
+
if (!isLoginMethod(method) || methods.includes(method))
|
|
54
|
+
return undefined;
|
|
55
|
+
methods.push(method);
|
|
56
|
+
}
|
|
57
|
+
return Object.freeze(methods);
|
|
58
|
+
}
|
|
59
|
+
/** Narrows one value to the supported organization two-factor policy set. */
|
|
60
|
+
function isTwoFactorPolicy(value) {
|
|
61
|
+
return (typeof value === 'string' &&
|
|
62
|
+
TWO_FACTOR_POLICIES.has(value));
|
|
63
|
+
}
|
|
64
|
+
/** Validates an optional organization branding image URL. */
|
|
65
|
+
function isBrandingUrl(value) {
|
|
66
|
+
if (value === null)
|
|
67
|
+
return true;
|
|
68
|
+
if (!isText(value, 2_048, 1) || value.trim() !== value)
|
|
69
|
+
return false;
|
|
70
|
+
try {
|
|
71
|
+
const url = new URL(value);
|
|
72
|
+
if (url.username || url.password)
|
|
73
|
+
return false;
|
|
74
|
+
if (url.protocol === 'https:')
|
|
75
|
+
return true;
|
|
76
|
+
return (url.protocol === 'http:' &&
|
|
77
|
+
(url.hostname === 'localhost' || url.hostname === '127.0.0.1' || url.hostname === '[::1]'));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Projects the full organization settings used by the focused workspace.
|
|
85
|
+
*
|
|
86
|
+
* @param value - Untrusted organization returned by the SDK.
|
|
87
|
+
* @returns A frozen safe projection, or `undefined` when any retained field is invalid.
|
|
88
|
+
* @example
|
|
89
|
+
* ```ts
|
|
90
|
+
* const settings = validateOrganizationSettings(sdkOrganization);
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export function validateOrganizationSettings(value) {
|
|
94
|
+
const context = validateOrganizationContext(value);
|
|
95
|
+
if (!context || !value || typeof value !== 'object')
|
|
96
|
+
return undefined;
|
|
97
|
+
const candidate = value;
|
|
98
|
+
const methods = loginMethodValue(candidate.defaultLoginMethods);
|
|
99
|
+
if (typeof candidate.isSuperAdmin !== 'boolean' ||
|
|
100
|
+
!isText(candidate.defaultLocale, 10, 2) ||
|
|
101
|
+
!/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/.test(candidate.defaultLocale) ||
|
|
102
|
+
!methods ||
|
|
103
|
+
!isTwoFactorPolicy(candidate.twoFactorPolicy) ||
|
|
104
|
+
!(candidate.brandingCompanyName === null || isText(candidate.brandingCompanyName, 255)) ||
|
|
105
|
+
!(candidate.brandingPrimaryColor === null ||
|
|
106
|
+
(typeof candidate.brandingPrimaryColor === 'string' &&
|
|
107
|
+
/^#[0-9A-Fa-f]{6}$/.test(candidate.brandingPrimaryColor))) ||
|
|
108
|
+
!isBrandingUrl(candidate.brandingLogoUrl) ||
|
|
109
|
+
!isBrandingUrl(candidate.brandingFaviconUrl) ||
|
|
110
|
+
!isTimestamp(candidate.createdAt) ||
|
|
111
|
+
!isTimestamp(candidate.updatedAt)) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
return Object.freeze({
|
|
115
|
+
...context,
|
|
116
|
+
isSuperAdmin: candidate.isSuperAdmin,
|
|
117
|
+
defaultLocale: candidate.defaultLocale,
|
|
118
|
+
defaultLoginMethods: methods,
|
|
119
|
+
twoFactorPolicy: candidate.twoFactorPolicy,
|
|
120
|
+
brandingCompanyName: candidate.brandingCompanyName,
|
|
121
|
+
brandingPrimaryColor: candidate.brandingPrimaryColor,
|
|
122
|
+
brandingLogoUrl: candidate.brandingLogoUrl,
|
|
123
|
+
brandingFaviconUrl: candidate.brandingFaviconUrl,
|
|
124
|
+
createdAt: candidate.createdAt,
|
|
125
|
+
updatedAt: candidate.updatedAt,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/** Projects one branding asset and verifies its organization and decoded-size boundary. */
|
|
129
|
+
function assetValue(value, organizationId) {
|
|
130
|
+
if (!value || typeof value !== 'object')
|
|
131
|
+
return undefined;
|
|
132
|
+
const candidate = value;
|
|
133
|
+
if (typeof candidate.id !== 'string' ||
|
|
134
|
+
!UUID.test(candidate.id) ||
|
|
135
|
+
candidate.organizationId !== organizationId ||
|
|
136
|
+
!(candidate.assetType === 'logo' || candidate.assetType === 'favicon') ||
|
|
137
|
+
typeof candidate.contentType !== 'string' ||
|
|
138
|
+
!ASSET_CONTENT_TYPES.has(candidate.contentType) ||
|
|
139
|
+
typeof candidate.fileSize !== 'number' ||
|
|
140
|
+
!Number.isSafeInteger(candidate.fileSize) ||
|
|
141
|
+
candidate.fileSize < 1 ||
|
|
142
|
+
candidate.fileSize > ASSET_LIMITS[candidate.assetType] ||
|
|
143
|
+
!isTimestamp(candidate.updatedAt)) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
return Object.freeze({
|
|
147
|
+
assetType: candidate.assetType,
|
|
148
|
+
contentType: candidate.contentType,
|
|
149
|
+
size: candidate.fileSize,
|
|
150
|
+
updatedAt: candidate.updatedAt,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/** Projects a complete asset collection without duplicates or partial values. */
|
|
154
|
+
function assetCollection(value, organizationId) {
|
|
155
|
+
if (!Array.isArray(value) || value.length > 2)
|
|
156
|
+
return undefined;
|
|
157
|
+
const slots = new Set();
|
|
158
|
+
const assets = [];
|
|
159
|
+
for (const row of value) {
|
|
160
|
+
const asset = assetValue(row, organizationId);
|
|
161
|
+
if (!asset || slots.has(asset.assetType))
|
|
162
|
+
return undefined;
|
|
163
|
+
slots.add(asset.assetType);
|
|
164
|
+
assets.push(asset);
|
|
165
|
+
}
|
|
166
|
+
return Object.freeze(assets);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Converts one untrusted SDK row to the only fields retained by the UI.
|
|
170
|
+
*
|
|
171
|
+
* @param value - Untrusted organization data returned by the SDK.
|
|
172
|
+
* @returns The validated four-field projection, or `undefined` for any malformed field.
|
|
173
|
+
* @example
|
|
174
|
+
* ```ts
|
|
175
|
+
* const context = validateOrganizationContext(sdkOrganization);
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
export function validateOrganizationContext(value) {
|
|
179
|
+
if (!value || typeof value !== 'object')
|
|
180
|
+
return undefined;
|
|
181
|
+
const candidate = value;
|
|
182
|
+
if (typeof candidate.id !== 'string' ||
|
|
183
|
+
!UUID.test(candidate.id) ||
|
|
184
|
+
typeof candidate.name !== 'string' ||
|
|
185
|
+
candidate.name.length === 0 ||
|
|
186
|
+
candidate.name.length > 255 ||
|
|
187
|
+
containsTerminalControl(candidate.name) ||
|
|
188
|
+
typeof candidate.slug !== 'string' ||
|
|
189
|
+
!ORGANIZATION_SLUG.test(candidate.slug) ||
|
|
190
|
+
!isOrganizationStatus(candidate.status) ||
|
|
191
|
+
(candidate.isSuperAdmin !== undefined && typeof candidate.isSuperAdmin !== 'boolean')) {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
id: candidate.id,
|
|
196
|
+
name: candidate.name,
|
|
197
|
+
slug: candidate.slug,
|
|
198
|
+
status: candidate.status,
|
|
199
|
+
...(candidate.isSuperAdmin === true ? { isSuperAdmin: true } : {}),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
/** Maps an SDK error to a fixed result without retaining remote details. */
|
|
203
|
+
function mapOrganizationError(error) {
|
|
204
|
+
if (!(error instanceof PortaHttpError)) {
|
|
205
|
+
return { kind: 'failure', failure: 'unavailable' };
|
|
206
|
+
}
|
|
207
|
+
switch (error.status) {
|
|
208
|
+
case 400:
|
|
209
|
+
return { kind: 'failure', failure: 'validation' };
|
|
210
|
+
case 401:
|
|
211
|
+
return { kind: 'session-invalid' };
|
|
212
|
+
case 403:
|
|
213
|
+
return { kind: 'failure', failure: 'unauthorized' };
|
|
214
|
+
case 409:
|
|
215
|
+
return { kind: 'failure', failure: 'conflict' };
|
|
216
|
+
default:
|
|
217
|
+
return { kind: 'failure', failure: 'unavailable' };
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/** Maps an SDK error to the equivalent fixed reconciliation result. */
|
|
221
|
+
function mapReconciliationError(error) {
|
|
222
|
+
return mapOrganizationError(error);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Creates the narrow organization boundary used by the terminal application.
|
|
226
|
+
*
|
|
227
|
+
* The SDK domain is obtained lazily so no authenticated client is constructed before an
|
|
228
|
+
* organization operation is actually requested.
|
|
229
|
+
*
|
|
230
|
+
* @param domain - Returns the organization methods for the currently verified server.
|
|
231
|
+
* @returns Sanitized list, create, and reconciliation operations.
|
|
232
|
+
* @example
|
|
233
|
+
* ```ts
|
|
234
|
+
* const operations = createAdminOrganizationOperations(() => client.organizations);
|
|
235
|
+
* const result = await operations.listAll();
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
export function createAdminOrganizationOperations(domain) {
|
|
239
|
+
return {
|
|
240
|
+
async listAll() {
|
|
241
|
+
try {
|
|
242
|
+
const rows = await domain().listAll();
|
|
243
|
+
if (!Array.isArray(rows)) {
|
|
244
|
+
return { kind: 'failure', failure: 'invalid-response' };
|
|
245
|
+
}
|
|
246
|
+
const organizations = [];
|
|
247
|
+
for (const row of rows) {
|
|
248
|
+
const organization = validateOrganizationContext(row);
|
|
249
|
+
if (!organization)
|
|
250
|
+
return { kind: 'failure', failure: 'invalid-response' };
|
|
251
|
+
organizations.push(organization);
|
|
252
|
+
}
|
|
253
|
+
return { kind: 'success', value: organizations };
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
return mapOrganizationError(error);
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
async reconcile(selectedId) {
|
|
260
|
+
try {
|
|
261
|
+
const rows = await domain().listAll();
|
|
262
|
+
if (!Array.isArray(rows)) {
|
|
263
|
+
return { kind: 'failure', failure: 'invalid-response' };
|
|
264
|
+
}
|
|
265
|
+
let matchedRow;
|
|
266
|
+
let matchCount = 0;
|
|
267
|
+
let matchingInvalid = false;
|
|
268
|
+
let unrelatedInvalid = false;
|
|
269
|
+
for (const row of rows) {
|
|
270
|
+
const rawId = row && typeof row === 'object' ? row.id : undefined;
|
|
271
|
+
const isMatch = rawId === selectedId;
|
|
272
|
+
if (isMatch) {
|
|
273
|
+
matchCount += 1;
|
|
274
|
+
matchedRow = row;
|
|
275
|
+
}
|
|
276
|
+
const validated = validateOrganizationContext(row);
|
|
277
|
+
if (!validated) {
|
|
278
|
+
if (isMatch)
|
|
279
|
+
matchingInvalid = true;
|
|
280
|
+
else
|
|
281
|
+
unrelatedInvalid = true;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (matchCount > 1 || unrelatedInvalid) {
|
|
285
|
+
return { kind: 'failure', failure: 'invalid-response' };
|
|
286
|
+
}
|
|
287
|
+
if (matchingInvalid)
|
|
288
|
+
return { kind: 'matching-invalid' };
|
|
289
|
+
if (matchCount === 0)
|
|
290
|
+
return { kind: 'absent' };
|
|
291
|
+
const organization = validateOrganizationContext(matchedRow);
|
|
292
|
+
return organization ? { kind: 'match', organization } : { kind: 'matching-invalid' };
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
return mapReconciliationError(error);
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
async create(input) {
|
|
299
|
+
const payload = { name: input.name };
|
|
300
|
+
if (input.slug)
|
|
301
|
+
payload.slug = input.slug;
|
|
302
|
+
if (input.defaultLocale)
|
|
303
|
+
payload.defaultLocale = input.defaultLocale;
|
|
304
|
+
try {
|
|
305
|
+
const created = await domain().create(payload);
|
|
306
|
+
const organization = validateOrganizationContext(created);
|
|
307
|
+
return organization
|
|
308
|
+
? { kind: 'success', value: organization }
|
|
309
|
+
: { kind: 'failure', failure: 'invalid-response' };
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
return mapOrganizationError(error);
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
async delete(id) {
|
|
316
|
+
if (!UUID.test(id))
|
|
317
|
+
return { kind: 'failure', failure: 'validation' };
|
|
318
|
+
try {
|
|
319
|
+
await domain().delete(id);
|
|
320
|
+
return { kind: 'success', value: undefined };
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
return mapOrganizationError(error);
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
/** Maps an SDK read failure to a fixed workspace result. */
|
|
329
|
+
function workspaceReadError(error) {
|
|
330
|
+
if (error instanceof PortaAuthenticationError)
|
|
331
|
+
return { kind: 'session-invalid' };
|
|
332
|
+
if (error instanceof PortaValidationError)
|
|
333
|
+
return { kind: 'failure', failure: 'validation' };
|
|
334
|
+
if (error instanceof PortaForbiddenError)
|
|
335
|
+
return { kind: 'failure', failure: 'unauthorized' };
|
|
336
|
+
if (error instanceof PortaConflictError)
|
|
337
|
+
return { kind: 'failure', failure: 'conflict' };
|
|
338
|
+
return { kind: 'failure', failure: 'unavailable' };
|
|
339
|
+
}
|
|
340
|
+
/** Maps an SDK mutation failure without exposing its response or message. */
|
|
341
|
+
function workspaceMutationError(error) {
|
|
342
|
+
if (error instanceof DOMException && error.name === 'AbortError')
|
|
343
|
+
return { kind: 'cancelled' };
|
|
344
|
+
if (error instanceof PortaAuthenticationError)
|
|
345
|
+
return { kind: 'session-invalid' };
|
|
346
|
+
if (error instanceof PortaValidationError)
|
|
347
|
+
return { kind: 'failure', failure: 'validation' };
|
|
348
|
+
if (error instanceof PortaForbiddenError)
|
|
349
|
+
return { kind: 'failure', failure: 'unauthorized' };
|
|
350
|
+
if (error instanceof PortaConflictError)
|
|
351
|
+
return { kind: 'failure', failure: 'conflict' };
|
|
352
|
+
return { kind: 'outcome-unknown' };
|
|
353
|
+
}
|
|
354
|
+
/** Extracts the organization payload from the SDK's ETag wrapper. */
|
|
355
|
+
function organizationPayload(value) {
|
|
356
|
+
return value && typeof value === 'object' && 'data' in value
|
|
357
|
+
? value.data
|
|
358
|
+
: undefined;
|
|
359
|
+
}
|
|
360
|
+
/** Loads and validates a complete organization without retaining its ETag. */
|
|
361
|
+
async function loadWorkspaceOrganization(domains, organizationId) {
|
|
362
|
+
if (!UUID.test(organizationId))
|
|
363
|
+
return { kind: 'failure', failure: 'validation' };
|
|
364
|
+
try {
|
|
365
|
+
const organization = validateOrganizationSettings(organizationPayload(await domains.organizations().get(organizationId)));
|
|
366
|
+
return organization
|
|
367
|
+
? { kind: 'success', value: organization }
|
|
368
|
+
: { kind: 'failure', failure: 'invalid-response' };
|
|
369
|
+
}
|
|
370
|
+
catch (error) {
|
|
371
|
+
return workspaceReadError(error);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
/** Validates the two editable Overview values and rejects empty updates. */
|
|
375
|
+
function isOverviewInput(value) {
|
|
376
|
+
const keys = Object.keys(value);
|
|
377
|
+
if (keys.length < 1 || keys.some((key) => key !== 'name' && key !== 'defaultLocale'))
|
|
378
|
+
return false;
|
|
379
|
+
if (value.name !== undefined && !isText(value.name, 255, 1))
|
|
380
|
+
return false;
|
|
381
|
+
return !(value.defaultLocale !== undefined &&
|
|
382
|
+
(!isText(value.defaultLocale, 10, 2) ||
|
|
383
|
+
!/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/.test(value.defaultLocale)));
|
|
384
|
+
}
|
|
385
|
+
/** Validates a changed branding payload while deliberately excluding custom CSS. */
|
|
386
|
+
function isBrandingInput(value) {
|
|
387
|
+
const keys = Object.keys(value);
|
|
388
|
+
const allowed = new Set(['companyName', 'primaryColor', 'logoUrl', 'faviconUrl']);
|
|
389
|
+
if (keys.length < 1 || keys.some((key) => !allowed.has(key)))
|
|
390
|
+
return false;
|
|
391
|
+
if (!(value.companyName === undefined ||
|
|
392
|
+
value.companyName === null ||
|
|
393
|
+
isText(value.companyName, 255))) {
|
|
394
|
+
return false;
|
|
395
|
+
}
|
|
396
|
+
if (!(value.primaryColor === undefined ||
|
|
397
|
+
value.primaryColor === null ||
|
|
398
|
+
/^#[0-9A-Fa-f]{6}$/.test(value.primaryColor))) {
|
|
399
|
+
return false;
|
|
400
|
+
}
|
|
401
|
+
return ((value.logoUrl === undefined || isBrandingUrl(value.logoUrl)) &&
|
|
402
|
+
(value.faviconUrl === undefined || isBrandingUrl(value.faviconUrl)));
|
|
403
|
+
}
|
|
404
|
+
/** Validates the JSON/base64 upload envelope before it reaches the SDK. */
|
|
405
|
+
function isAssetUploadInput(input, assetType) {
|
|
406
|
+
if (!ASSET_CONTENT_TYPES.has(input.contentType) || input.data.length === 0)
|
|
407
|
+
return false;
|
|
408
|
+
const bytes = Buffer.from(input.data, 'base64');
|
|
409
|
+
return (bytes.length > 0 &&
|
|
410
|
+
bytes.length <= ASSET_LIMITS[assetType] &&
|
|
411
|
+
bytes.toString('base64') === input.data);
|
|
412
|
+
}
|
|
413
|
+
/** Invokes a void workspace mutation exactly once. */
|
|
414
|
+
async function workspaceVoidMutation(invoke) {
|
|
415
|
+
try {
|
|
416
|
+
await invoke();
|
|
417
|
+
return { kind: 'success' };
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
return workspaceMutationError(error);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Creates the direct SDK adapter used only by the selected-organization workspace.
|
|
425
|
+
*
|
|
426
|
+
* @param domains - Lazy access to the verified session's existing SDK domains.
|
|
427
|
+
* @returns Validated operations that expose only fixed safe outcomes.
|
|
428
|
+
* @example
|
|
429
|
+
* ```ts
|
|
430
|
+
* const operations = createAdminOrganizationWorkspaceOperations(domains);
|
|
431
|
+
* ```
|
|
432
|
+
*/
|
|
433
|
+
export function createAdminOrganizationWorkspaceOperations(domains) {
|
|
434
|
+
return {
|
|
435
|
+
get: (organizationId) => loadWorkspaceOrganization(domains, organizationId),
|
|
436
|
+
async update(organizationId, input) {
|
|
437
|
+
if (!UUID.test(organizationId) || !isOverviewInput(input)) {
|
|
438
|
+
return { kind: 'failure', failure: 'validation' };
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const organization = validateOrganizationSettings(await domains.organizations().update(organizationId, input));
|
|
442
|
+
return organization ? { kind: 'success' } : { kind: 'outcome-unknown' };
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
return workspaceMutationError(error);
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
activate: (organizationId) => UUID.test(organizationId)
|
|
449
|
+
? workspaceVoidMutation(() => domains.organizations().activate(organizationId))
|
|
450
|
+
: Promise.resolve({ kind: 'failure', failure: 'validation' }),
|
|
451
|
+
suspend: (organizationId) => UUID.test(organizationId)
|
|
452
|
+
? workspaceVoidMutation(() => domains.organizations().suspend(organizationId))
|
|
453
|
+
: Promise.resolve({ kind: 'failure', failure: 'validation' }),
|
|
454
|
+
async getLoginMethods(organizationId) {
|
|
455
|
+
const result = await loadWorkspaceOrganization(domains, organizationId);
|
|
456
|
+
return result.kind === 'success'
|
|
457
|
+
? { kind: 'success', value: result.value.defaultLoginMethods }
|
|
458
|
+
: result;
|
|
459
|
+
},
|
|
460
|
+
async updateLoginMethods(organizationId, methods) {
|
|
461
|
+
const validated = loginMethodValue(methods);
|
|
462
|
+
if (!UUID.test(organizationId) || !validated) {
|
|
463
|
+
return { kind: 'failure', failure: 'validation' };
|
|
464
|
+
}
|
|
465
|
+
try {
|
|
466
|
+
const organization = validateOrganizationSettings(await domains.organizations().update(organizationId, {
|
|
467
|
+
defaultLoginMethods: [...validated],
|
|
468
|
+
}));
|
|
469
|
+
return organization ? { kind: 'success' } : { kind: 'outcome-unknown' };
|
|
470
|
+
}
|
|
471
|
+
catch (error) {
|
|
472
|
+
return workspaceMutationError(error);
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
async getTwoFactorPolicy(organizationId) {
|
|
476
|
+
if (!UUID.test(organizationId))
|
|
477
|
+
return { kind: 'failure', failure: 'validation' };
|
|
478
|
+
try {
|
|
479
|
+
const value = await domains.twoFactor().getPolicy(organizationId);
|
|
480
|
+
const candidate = value && typeof value === 'object' ? value : undefined;
|
|
481
|
+
return candidate && isTwoFactorPolicy(candidate.twoFactorPolicy)
|
|
482
|
+
? { kind: 'success', value: candidate.twoFactorPolicy }
|
|
483
|
+
: { kind: 'failure', failure: 'invalid-response' };
|
|
484
|
+
}
|
|
485
|
+
catch (error) {
|
|
486
|
+
return workspaceReadError(error);
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
async updateTwoFactorPolicy(organizationId, policy) {
|
|
490
|
+
if (!UUID.test(organizationId) || !isTwoFactorPolicy(policy)) {
|
|
491
|
+
return { kind: 'failure', failure: 'validation' };
|
|
492
|
+
}
|
|
493
|
+
try {
|
|
494
|
+
const value = await domains.twoFactor().setPolicy(organizationId, policy);
|
|
495
|
+
const candidate = value && typeof value === 'object' ? value : undefined;
|
|
496
|
+
return candidate && candidate.twoFactorPolicy === policy
|
|
497
|
+
? { kind: 'success' }
|
|
498
|
+
: { kind: 'outcome-unknown' };
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
return workspaceMutationError(error);
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
async updateBranding(organizationId, input) {
|
|
505
|
+
if (!UUID.test(organizationId) || !isBrandingInput(input)) {
|
|
506
|
+
return { kind: 'failure', failure: 'validation' };
|
|
507
|
+
}
|
|
508
|
+
try {
|
|
509
|
+
const organization = validateOrganizationSettings(await domains.branding().updateSettings(organizationId, input));
|
|
510
|
+
return organization ? { kind: 'success' } : { kind: 'outcome-unknown' };
|
|
511
|
+
}
|
|
512
|
+
catch (error) {
|
|
513
|
+
return workspaceMutationError(error);
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
async listAssets(organizationId) {
|
|
517
|
+
if (!UUID.test(organizationId))
|
|
518
|
+
return { kind: 'failure', failure: 'validation' };
|
|
519
|
+
try {
|
|
520
|
+
const assets = assetCollection(await domains.branding().listAssets(organizationId), organizationId);
|
|
521
|
+
return assets
|
|
522
|
+
? { kind: 'success', value: assets }
|
|
523
|
+
: { kind: 'failure', failure: 'invalid-response' };
|
|
524
|
+
}
|
|
525
|
+
catch (error) {
|
|
526
|
+
return workspaceReadError(error);
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
async uploadAsset(organizationId, assetType, input) {
|
|
530
|
+
if (!UUID.test(organizationId) || !isAssetUploadInput(input, assetType)) {
|
|
531
|
+
return { kind: 'failure', failure: 'validation' };
|
|
532
|
+
}
|
|
533
|
+
try {
|
|
534
|
+
const asset = assetValue(await domains.branding().uploadAsset(organizationId, assetType, input), organizationId);
|
|
535
|
+
return asset && asset.assetType === assetType
|
|
536
|
+
? { kind: 'success' }
|
|
537
|
+
: { kind: 'outcome-unknown' };
|
|
538
|
+
}
|
|
539
|
+
catch (error) {
|
|
540
|
+
return workspaceMutationError(error);
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
deleteAsset: (organizationId, assetType) => UUID.test(organizationId) && (assetType === 'logo' || assetType === 'favicon')
|
|
544
|
+
? workspaceVoidMutation(() => domains.branding().deleteAsset(organizationId, assetType))
|
|
545
|
+
: Promise.resolve({ kind: 'failure', failure: 'validation' }),
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
//# sourceMappingURL=organization-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-service.js","sourceRoot":"","sources":["../../src/admin/organization-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Direct JSVision workspace for the selected organization's settings. */
|
|
2
|
+
import { Dialog } from '@jsvision/ui';
|
|
3
|
+
import type { View } from '@jsvision/ui';
|
|
4
|
+
import type { AdminCapabilities, AdminOrganizationIntent, AdminOrganizationWorkspaceState } from './state.js';
|
|
5
|
+
/** Construction values for one selected-organization workspace. */
|
|
6
|
+
export interface AdminOrganizationWorkspaceOptions {
|
|
7
|
+
/** Capabilities from the currently verified administration session. */
|
|
8
|
+
readonly capabilities: AdminCapabilities;
|
|
9
|
+
/** Receives closed user intents while the controller owns remote work. */
|
|
10
|
+
readonly onIntent: (intent: AdminOrganizationIntent) => void;
|
|
11
|
+
/** Focuses one mounted control through the application event loop. */
|
|
12
|
+
readonly focusView?: (view: View) => void;
|
|
13
|
+
/** Releases controller ownership when the modeless window is closed directly. */
|
|
14
|
+
readonly onClose?: () => void;
|
|
15
|
+
}
|
|
16
|
+
/** Mounted organization workspace controlled by validated immutable state. */
|
|
17
|
+
export interface AdminOrganizationWorkspace {
|
|
18
|
+
/** Maximized modeless dialog mounted into the administration desktop. */
|
|
19
|
+
readonly content: Dialog;
|
|
20
|
+
/** Replaces the complete validated workspace state. */
|
|
21
|
+
readonly setState: (state: AdminOrganizationWorkspaceState) => void;
|
|
22
|
+
/** Restores focus within the currently selected tab. */
|
|
23
|
+
readonly focusCurrent: () => void;
|
|
24
|
+
/** Removes retained state and controls. */
|
|
25
|
+
readonly clear: () => void;
|
|
26
|
+
}
|
|
27
|
+
/** Builds the maximized organization workspace with one direct page per concern. */
|
|
28
|
+
export declare function createAdminOrganizationWorkspace(options: AdminOrganizationWorkspaceOptions): AdminOrganizationWorkspace;
|
|
29
|
+
//# sourceMappingURL=organization-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-workspace.d.ts","sourceRoot":"","sources":["../../src/admin/organization-workspace.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAML,MAAM,EAYP,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,cAAc,CAAC;AAItD,OAAO,KAAK,EACV,iBAAiB,EAEjB,uBAAuB,EAKvB,+BAA+B,EAChC,MAAM,YAAY,CAAC;AAGpB,mEAAmE;AACnE,MAAM,WAAW,iCAAiC;IAChD,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC7D,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC1C,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,8EAA8E;AAC9E,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,+BAA+B,KAAK,IAAI,CAAC;IACpE,wDAAwD;IACxD,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AA8FD,oFAAoF;AACpF,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,iCAAiC,GACzC,0BAA0B,CAic5B"}
|