libre-webui 0.22.1 → 0.23.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/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +8 -0
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/middleware/auth.d.ts +15 -1
- package/backend/dist/middleware/auth.d.ts.map +1 -1
- package/backend/dist/middleware/auth.js +153 -33
- package/backend/dist/middleware/auth.js.map +1 -1
- package/backend/dist/persistence/index.d.ts +1 -0
- package/backend/dist/persistence/index.d.ts.map +1 -1
- package/backend/dist/persistence/index.js.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.d.ts.map +1 -1
- package/backend/dist/persistence/postgresMigrationRegistry.js +2 -0
- package/backend/dist/persistence/postgresMigrationRegistry.js.map +1 -1
- package/backend/dist/persistence/postgresPersistence.d.ts.map +1 -1
- package/backend/dist/persistence/postgresPersistence.js +4 -0
- package/backend/dist/persistence/postgresPersistence.js.map +1 -1
- package/backend/dist/persistence/postgresSecurityRepositories.d.ts +7 -0
- package/backend/dist/persistence/postgresSecurityRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/postgresSecurityRepositories.js +435 -0
- package/backend/dist/persistence/postgresSecurityRepositories.js.map +1 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.d.ts +8 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.d.ts.map +1 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.js +151 -0
- package/backend/dist/persistence/postgresTrustFoundationMigration.js.map +1 -0
- package/backend/dist/persistence/securityTypes.d.ts +196 -0
- package/backend/dist/persistence/securityTypes.d.ts.map +1 -0
- package/backend/dist/persistence/securityTypes.js +18 -0
- package/backend/dist/persistence/securityTypes.js.map +1 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts +1 -0
- package/backend/dist/persistence/sqliteMigrations.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteMigrations.js +311 -0
- package/backend/dist/persistence/sqliteMigrations.js.map +1 -1
- package/backend/dist/persistence/sqlitePersistence.d.ts.map +1 -1
- package/backend/dist/persistence/sqlitePersistence.js +3 -0
- package/backend/dist/persistence/sqlitePersistence.js.map +1 -1
- package/backend/dist/persistence/sqliteSecurityRepositories.d.ts +6 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.d.ts.map +1 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.js +497 -0
- package/backend/dist/persistence/sqliteSecurityRepositories.js.map +1 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.d.ts.map +1 -1
- package/backend/dist/persistence/sqliteToPostgresMigration.js +55 -0
- package/backend/dist/persistence/sqliteToPostgresMigration.js.map +1 -1
- package/backend/dist/persistence/types.d.ts +4 -0
- package/backend/dist/persistence/types.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.d.ts.map +1 -1
- package/backend/dist/platform/jobs/domainJobHandlers.js +7 -0
- package/backend/dist/platform/jobs/domainJobHandlers.js.map +1 -1
- package/backend/dist/routes/access.d.ts +3 -0
- package/backend/dist/routes/access.d.ts.map +1 -0
- package/backend/dist/routes/access.js +134 -0
- package/backend/dist/routes/access.js.map +1 -0
- package/backend/dist/routes/audit.d.ts +3 -0
- package/backend/dist/routes/audit.d.ts.map +1 -0
- package/backend/dist/routes/audit.js +82 -0
- package/backend/dist/routes/audit.js.map +1 -0
- package/backend/dist/routes/auth.d.ts.map +1 -1
- package/backend/dist/routes/auth.js +342 -14
- package/backend/dist/routes/auth.js.map +1 -1
- package/backend/dist/routes/groups.d.ts +3 -0
- package/backend/dist/routes/groups.d.ts.map +1 -0
- package/backend/dist/routes/groups.js +161 -0
- package/backend/dist/routes/groups.js.map +1 -0
- package/backend/dist/services/apiTokenService.d.ts +51 -0
- package/backend/dist/services/apiTokenService.d.ts.map +1 -0
- package/backend/dist/services/apiTokenService.js +220 -0
- package/backend/dist/services/apiTokenService.js.map +1 -0
- package/backend/dist/services/authService.d.ts +20 -4
- package/backend/dist/services/authService.d.ts.map +1 -1
- package/backend/dist/services/authService.js +44 -6
- package/backend/dist/services/authService.js.map +1 -1
- package/backend/dist/services/authSessionService.d.ts +34 -0
- package/backend/dist/services/authSessionService.d.ts.map +1 -0
- package/backend/dist/services/authSessionService.js +205 -0
- package/backend/dist/services/authSessionService.js.map +1 -0
- package/backend/dist/services/authorizationService.d.ts +64 -0
- package/backend/dist/services/authorizationService.d.ts.map +1 -0
- package/backend/dist/services/authorizationService.js +176 -0
- package/backend/dist/services/authorizationService.js.map +1 -0
- package/backend/dist/services/groupService.d.ts +27 -0
- package/backend/dist/services/groupService.d.ts.map +1 -0
- package/backend/dist/services/groupService.js +245 -0
- package/backend/dist/services/groupService.js.map +1 -0
- package/backend/dist/services/groupVectorPrincipalResolver.d.ts +12 -0
- package/backend/dist/services/groupVectorPrincipalResolver.d.ts.map +1 -0
- package/backend/dist/services/groupVectorPrincipalResolver.js +33 -0
- package/backend/dist/services/groupVectorPrincipalResolver.js.map +1 -0
- package/backend/dist/services/modelAccessService.d.ts +1 -0
- package/backend/dist/services/modelAccessService.d.ts.map +1 -1
- package/backend/dist/services/modelAccessService.js +3 -5
- package/backend/dist/services/modelAccessService.js.map +1 -1
- package/backend/dist/services/oauthSecurity.d.ts +12 -1
- package/backend/dist/services/oauthSecurity.d.ts.map +1 -1
- package/backend/dist/services/oauthSecurity.js +41 -0
- package/backend/dist/services/oauthSecurity.js.map +1 -1
- package/backend/dist/services/resourceGrantService.d.ts +28 -0
- package/backend/dist/services/resourceGrantService.d.ts.map +1 -0
- package/backend/dist/services/resourceGrantService.js +192 -0
- package/backend/dist/services/resourceGrantService.js.map +1 -0
- package/backend/dist/services/securityAuditService.d.ts +35 -0
- package/backend/dist/services/securityAuditService.d.ts.map +1 -0
- package/backend/dist/services/securityAuditService.js +159 -0
- package/backend/dist/services/securityAuditService.js.map +1 -0
- package/backend/dist/services/simpleGitHubOAuth.d.ts.map +1 -1
- package/backend/dist/services/simpleGitHubOAuth.js +4 -2
- package/backend/dist/services/simpleGitHubOAuth.js.map +1 -1
- package/backend/dist/services/simpleOidcOAuth.d.ts +62 -0
- package/backend/dist/services/simpleOidcOAuth.d.ts.map +1 -0
- package/backend/dist/services/simpleOidcOAuth.js +397 -0
- package/backend/dist/services/simpleOidcOAuth.js.map +1 -0
- package/backend/dist/services/webSearchService.d.ts +1 -0
- package/backend/dist/services/webSearchService.d.ts.map +1 -1
- package/backend/dist/services/webSearchService.js +3 -5
- package/backend/dist/services/webSearchService.js.map +1 -1
- package/backend/dist/services/websocketTicketService.d.ts +3 -1
- package/backend/dist/services/websocketTicketService.d.ts.map +1 -1
- package/backend/dist/services/websocketTicketService.js +4 -1
- package/backend/dist/services/websocketTicketService.js.map +1 -1
- package/backend/dist/services/workAccessService.d.ts +1 -0
- package/backend/dist/services/workAccessService.d.ts.map +1 -1
- package/backend/dist/services/workAccessService.js +3 -5
- package/backend/dist/services/workAccessService.js.map +1 -1
- package/backend/dist/services/workEventService.d.ts.map +1 -1
- package/backend/dist/services/workEventService.js +74 -18
- package/backend/dist/services/workEventService.js.map +1 -1
- package/backend/dist/services/workRuntimeService.d.ts +11 -0
- package/backend/dist/services/workRuntimeService.d.ts.map +1 -1
- package/backend/dist/services/workRuntimeService.js +78 -23
- package/backend/dist/services/workRuntimeService.js.map +1 -1
- package/backend/dist/websocketServer.d.ts.map +1 -1
- package/backend/dist/websocketServer.js +25 -1
- package/backend/dist/websocketServer.js.map +1 -1
- package/backend/dist/workTerminalServer.d.ts.map +1 -1
- package/backend/dist/workTerminalServer.js +19 -1
- package/backend/dist/workTerminalServer.js.map +1 -1
- package/backend/dist/worker.js +2 -0
- package/backend/dist/worker.js.map +1 -1
- package/backend/package.json +1 -1
- package/frontend/dist/artifact-runtime/.build-fingerprint +1 -1
- package/frontend/dist/assets/index-BXMQqOXF.js +11 -0
- package/frontend/dist/assets/index-DBaj1DRj.css +1 -0
- package/frontend/dist/index.html +11 -11
- package/frontend/dist/js/ArtifactContainer-BUjOZ5M5.js +1 -0
- package/frontend/dist/js/{ArtifactDemoPage-BDBXYv9l.js → ArtifactDemoPage-QRve-734.js} +1 -1
- package/frontend/dist/js/{ArtifactSandboxFrame-BN16NtKe.js → ArtifactSandboxFrame-DhvA-t-7.js} +2 -2
- package/frontend/dist/js/ArtifactSlideOutPanel-B8w1Orr1.js +1 -0
- package/frontend/dist/js/ChatPage-DKVwaYxn.js +23 -0
- package/frontend/dist/js/FirstTimeSetup-DaQveC0v.js +1 -0
- package/frontend/dist/js/{GalleryPage-CV_vbE7X.js → GalleryPage-Cz-VvarV.js} +1 -1
- package/frontend/dist/js/{HomePage-P-e7Huco.js → HomePage-DF9pZ5V5.js} +1 -1
- package/frontend/dist/js/{LibreClawPage-Cee06SUM.js → LibreClawPage-Dw8YQyFj.js} +1 -1
- package/frontend/dist/js/{ModelManagerModals-D7jIT3v1.js → ModelManagerModals-CZAWUxjI.js} +1 -1
- package/frontend/dist/js/{ModelSelector-DXucbvrz.js → ModelSelector-Cc91MEm4.js} +1 -1
- package/frontend/dist/js/ModelsPage-BgaQuCry.js +2 -0
- package/frontend/dist/js/{NotesPage-rEIPWGIb.js → NotesPage-CRAo-TFI.js} +1 -1
- package/frontend/dist/js/{PersonasPage-BXtepFuD.js → PersonasPage-DpN8DQkY.js} +2 -2
- package/frontend/dist/js/{PluginUsagePage-hhu8cxsu.js → PluginUsagePage-5PXXZXle.js} +1 -1
- package/frontend/dist/js/{RichMessageContent-DkiEvdSg.js → RichMessageContent-C67tFlr1.js} +1 -1
- package/frontend/dist/js/SettingsModal-BEzMSDlp.js +1 -0
- package/frontend/dist/js/SystemPage-FUnoW7Er.js +1 -0
- package/frontend/dist/js/UserManagementPage-SBsRbt0H.js +1 -0
- package/frontend/dist/js/WorkPage-D3ChSFo-.js +6 -0
- package/frontend/dist/js/api-Dw_IuHaz.js +14 -0
- package/frontend/dist/js/{appStore-DRSSjaHn.js → appStore-DAT2R-5p.js} +2 -2
- package/frontend/dist/js/ar-D0z0P4rC.js +2 -0
- package/frontend/dist/js/{authStore-BVykIRec.js → authStore-CwSMGkEM.js} +3 -3
- package/frontend/dist/js/bn-BYYU41A7.js +2 -0
- package/frontend/dist/js/chatStore-BK6YcouV.js +3 -0
- package/frontend/dist/js/{config-BTlPm-cZ.js → config-0eBxRk6E.js} +1 -1
- package/frontend/dist/js/cs-BFx6KNZe.js +2 -0
- package/frontend/dist/js/da-DSDuY5Du.js +2 -0
- package/frontend/dist/js/de-YqhP0FmX.js +2 -0
- package/frontend/dist/js/es-Dpr_y1cN.js +2 -0
- package/frontend/dist/js/{estree-CfYahF_d.js → estree-Db_NKIE7.js} +1 -1
- package/frontend/dist/js/fr-nVg_iAEC.js +2 -0
- package/frontend/dist/js/hi-gHKYCgkP.js +2 -0
- package/frontend/dist/js/{html-BJsDX1UZ.js → html-INl_p8N8.js} +1 -1
- package/frontend/dist/js/id-C_yID1Zk.js +2 -0
- package/frontend/dist/js/is-MoRPLbOM.js +2 -0
- package/frontend/dist/js/it-BZTscLxR.js +2 -0
- package/frontend/dist/js/ja-DpIbtmZq.js +2 -0
- package/frontend/dist/js/ko-LkWggmjU.js +2 -0
- package/frontend/dist/js/{markdown-GLyuUNig.js → markdown-DQbfLH11.js} +1 -1
- package/frontend/dist/js/{messageCodeStyles-BHddEFP1.js → messageCodeStyles-D7zXzjgH.js} +2 -2
- package/frontend/dist/js/ms-p3XiQSAo.js +2 -0
- package/frontend/dist/js/nl-sEHHO2Kb.js +2 -0
- package/frontend/dist/js/pl-D2GD6PDW.js +2 -0
- package/frontend/dist/js/pt-DPkn3GUn.js +2 -0
- package/frontend/dist/js/ru-C42iHrEd.js +2 -0
- package/frontend/dist/js/{standalone-Dh56V0YW.js → standalone-CFSd7xCM.js} +1 -1
- package/frontend/dist/js/sv-CGvHo4os.js +2 -0
- package/frontend/dist/js/th-BaDNpCdY.js +2 -0
- package/frontend/dist/js/tr-BHQvi1cN.js +2 -0
- package/frontend/dist/js/{typescript-DRy7A9w4.js → typescript-BIFKSiW0.js} +1 -1
- package/frontend/dist/js/{ui-CuY4IifA.js → ui-CS8EAgvS.js} +2 -2
- package/frontend/dist/js/{ui-vendor-D3Ahl1x5.js → ui-vendor-54SgntkX.js} +1 -1
- package/frontend/dist/js/uk-7pNGS1b2.js +2 -0
- package/frontend/dist/js/vi-DgAfh6mo.js +2 -0
- package/frontend/dist/js/{workApi-DHuYNHLf.js → workApi-DlmJ72dN.js} +2 -2
- package/frontend/dist/js/zh-FRTz6ZqA.js +2 -0
- package/package.json +2 -2
- package/frontend/dist/assets/index-Jtx9Amhz.js +0 -16
- package/frontend/dist/assets/index-kxtZQLV6.css +0 -1
- package/frontend/dist/js/ArtifactContainer-fZegtmva.js +0 -1
- package/frontend/dist/js/ArtifactSlideOutPanel-x1fS85Ww.js +0 -1
- package/frontend/dist/js/ChatPage-C_pXh7WN.js +0 -23
- package/frontend/dist/js/FirstTimeSetup-oRrlZnBm.js +0 -1
- package/frontend/dist/js/ModelsPage-C3_fZpMM.js +0 -2
- package/frontend/dist/js/SettingsModal-BNxCtJ51.js +0 -1
- package/frontend/dist/js/SystemPage-BvvKFuoG.js +0 -1
- package/frontend/dist/js/UserManagementPage-BccyR7si.js +0 -1
- package/frontend/dist/js/WorkPage-BgxrvY3I.js +0 -6
- package/frontend/dist/js/api-BvPDxsUQ.js +0 -14
- package/frontend/dist/js/ar-xTSvTq05.js +0 -2
- package/frontend/dist/js/bn-iYAsohEA.js +0 -2
- package/frontend/dist/js/chatStore-UPp5TV_t.js +0 -3
- package/frontend/dist/js/cs-YBHN88Hb.js +0 -2
- package/frontend/dist/js/da-D7qlLy_k.js +0 -2
- package/frontend/dist/js/de-DV671k2c.js +0 -2
- package/frontend/dist/js/es-kyBgzNq-.js +0 -2
- package/frontend/dist/js/fr-Cw1vut7I.js +0 -2
- package/frontend/dist/js/hi-DWEFC024.js +0 -2
- package/frontend/dist/js/id-DlMHjjy0.js +0 -2
- package/frontend/dist/js/is-B9E_a7dG.js +0 -2
- package/frontend/dist/js/it-DawmVbLC.js +0 -2
- package/frontend/dist/js/ja-DmVvwY3W.js +0 -2
- package/frontend/dist/js/ko-DzOPpkVs.js +0 -2
- package/frontend/dist/js/ms-DpsaOPht.js +0 -2
- package/frontend/dist/js/nl-B1d8W22n.js +0 -2
- package/frontend/dist/js/pl-nCncRVgt.js +0 -2
- package/frontend/dist/js/pt-DHw8fGuu.js +0 -2
- package/frontend/dist/js/ru-Derl_YP_.js +0 -2
- package/frontend/dist/js/sv-pJAfBVo0.js +0 -2
- package/frontend/dist/js/th-C_7fIGnk.js +0 -2
- package/frontend/dist/js/tr-CPqsJvaP.js +0 -2
- package/frontend/dist/js/uk-3o8P_kFi.js +0 -2
- package/frontend/dist/js/vi-Dv6N7OVD.js +0 -2
- package/frontend/dist/js/zh-qg5iqtPi.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresPersistence.js","sourceRoot":"","sources":["../../src/persistence/postgresPersistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"postgresPersistence.js","sourceRoot":"","sources":["../../src/persistence/postgresPersistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PoolClient } from 'pg';
|
|
2
|
+
import type { SecurityRepositories } from './securityTypes.js';
|
|
3
|
+
import type { PostgresDatabase } from './postgresDatabase.js';
|
|
4
|
+
export declare const createPostgresSecurityRepositories: (database: PostgresDatabase) => SecurityRepositories;
|
|
5
|
+
/** Create transaction-scoped repositories over one pinned pooled client. */
|
|
6
|
+
export declare const createPostgresTransactionalSecurityRepositories: (database: PostgresDatabase, client: PoolClient) => SecurityRepositories;
|
|
7
|
+
//# sourceMappingURL=postgresSecurityRepositories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgresSecurityRepositories.d.ts","sourceRoot":"","sources":["../../src/persistence/postgresSecurityRepositories.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAQV,oBAAoB,EASrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA2mB9D,eAAO,MAAM,kCAAkC,aACnC,gBAAgB,KACzB,oBAOD,CAAC;AAEH,4EAA4E;AAC5E,eAAO,MAAM,+CAA+C,aAChD,gBAAgB,UAClB,UAAU,KACjB,oBAOF,CAAC"}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Libre WebUI
|
|
3
|
+
* Copyright (C) 2025 Kroonen AI, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at:
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
const number = (value, field) => {
|
|
18
|
+
const converted = typeof value === 'number' ? value : Number(value);
|
|
19
|
+
if (!Number.isSafeInteger(converted)) {
|
|
20
|
+
throw new Error(`PostgreSQL returned an invalid ${field}`);
|
|
21
|
+
}
|
|
22
|
+
return converted;
|
|
23
|
+
};
|
|
24
|
+
const nullableNumber = (value, field) => value === null || value === undefined ? null : number(value, field);
|
|
25
|
+
const changes = (rowCount) => rowCount ?? 0;
|
|
26
|
+
const group = (row) => ({
|
|
27
|
+
...row,
|
|
28
|
+
created_at: number(row.created_at, 'group created_at'),
|
|
29
|
+
updated_at: number(row.updated_at, 'group updated_at'),
|
|
30
|
+
});
|
|
31
|
+
const groupMember = (row) => ({
|
|
32
|
+
...row,
|
|
33
|
+
added_at: number(row.added_at, 'group member added_at'),
|
|
34
|
+
});
|
|
35
|
+
const grant = (row) => ({
|
|
36
|
+
...row,
|
|
37
|
+
created_at: number(row.created_at, 'grant created_at'),
|
|
38
|
+
});
|
|
39
|
+
const authSession = (row) => ({
|
|
40
|
+
...row,
|
|
41
|
+
created_at: number(row.created_at, 'session created_at'),
|
|
42
|
+
last_seen_at: number(row.last_seen_at, 'session last_seen_at'),
|
|
43
|
+
expires_at: number(row.expires_at, 'session expires_at'),
|
|
44
|
+
revoked_at: nullableNumber(row.revoked_at, 'session revoked_at'),
|
|
45
|
+
});
|
|
46
|
+
const apiToken = (row) => ({
|
|
47
|
+
...row,
|
|
48
|
+
created_at: number(row.created_at, 'token created_at'),
|
|
49
|
+
expires_at: nullableNumber(row.expires_at, 'token expires_at'),
|
|
50
|
+
last_used_at: nullableNumber(row.last_used_at, 'token last_used_at'),
|
|
51
|
+
revoked_at: nullableNumber(row.revoked_at, 'token revoked_at'),
|
|
52
|
+
});
|
|
53
|
+
const oauthIdentity = (row) => ({
|
|
54
|
+
...row,
|
|
55
|
+
created_at: number(row.created_at, 'identity created_at'),
|
|
56
|
+
updated_at: number(row.updated_at, 'identity updated_at'),
|
|
57
|
+
});
|
|
58
|
+
const auditEvent = (row) => ({
|
|
59
|
+
...row,
|
|
60
|
+
occurred_at: number(row.occurred_at, 'audit occurred_at'),
|
|
61
|
+
});
|
|
62
|
+
class PostgresGroupRepository {
|
|
63
|
+
constructor(database) {
|
|
64
|
+
this.database = database;
|
|
65
|
+
}
|
|
66
|
+
async list() {
|
|
67
|
+
const result = await this.database.query('SELECT * FROM user_groups ORDER BY name');
|
|
68
|
+
return result.rows.map(group);
|
|
69
|
+
}
|
|
70
|
+
async findById(groupId) {
|
|
71
|
+
const result = await this.database.query('SELECT * FROM user_groups WHERE id = $1', [groupId]);
|
|
72
|
+
return result.rows[0] ? group(result.rows[0]) : null;
|
|
73
|
+
}
|
|
74
|
+
async findByName(name) {
|
|
75
|
+
const result = await this.database.query('SELECT * FROM user_groups WHERE name = $1', [name]);
|
|
76
|
+
return result.rows[0] ? group(result.rows[0]) : null;
|
|
77
|
+
}
|
|
78
|
+
async insert(record) {
|
|
79
|
+
await this.database.query(`INSERT INTO user_groups
|
|
80
|
+
(id, name, description, created_by, created_at, updated_at)
|
|
81
|
+
VALUES ($1, $2, $3, $4, $5, $6)`, [
|
|
82
|
+
record.id,
|
|
83
|
+
record.name,
|
|
84
|
+
record.description,
|
|
85
|
+
record.created_by,
|
|
86
|
+
record.created_at,
|
|
87
|
+
record.updated_at,
|
|
88
|
+
]);
|
|
89
|
+
}
|
|
90
|
+
async update(groupId, patch) {
|
|
91
|
+
const assignments = [];
|
|
92
|
+
const values = [];
|
|
93
|
+
if (patch.name !== undefined) {
|
|
94
|
+
values.push(patch.name);
|
|
95
|
+
assignments.push(`name = $${values.length}`);
|
|
96
|
+
}
|
|
97
|
+
if (patch.description !== undefined) {
|
|
98
|
+
values.push(patch.description);
|
|
99
|
+
assignments.push(`description = $${values.length}`);
|
|
100
|
+
}
|
|
101
|
+
values.push(patch.updated_at);
|
|
102
|
+
assignments.push(`updated_at = $${values.length}`);
|
|
103
|
+
values.push(groupId);
|
|
104
|
+
const result = await this.database.query(`UPDATE user_groups SET ${assignments.join(', ')} WHERE id = $${values.length}`, values);
|
|
105
|
+
return changes(result.rowCount) > 0;
|
|
106
|
+
}
|
|
107
|
+
async delete(groupId) {
|
|
108
|
+
const result = await this.database.query('DELETE FROM user_groups WHERE id = $1', [groupId]);
|
|
109
|
+
return changes(result.rowCount) > 0;
|
|
110
|
+
}
|
|
111
|
+
async listMembers(groupId) {
|
|
112
|
+
const result = await this.database.query('SELECT * FROM user_group_members WHERE group_id = $1 ORDER BY added_at', [groupId]);
|
|
113
|
+
return result.rows.map(groupMember);
|
|
114
|
+
}
|
|
115
|
+
async listGroupIdsForUser(userId) {
|
|
116
|
+
const result = await this.database.query('SELECT group_id FROM user_group_members WHERE user_id = $1', [userId]);
|
|
117
|
+
return result.rows.map(row => String(row.group_id));
|
|
118
|
+
}
|
|
119
|
+
async listGroupsForUser(userId) {
|
|
120
|
+
const result = await this.database.query(`SELECT g.* FROM user_groups g
|
|
121
|
+
JOIN user_group_members m ON m.group_id = g.id
|
|
122
|
+
WHERE m.user_id = $1
|
|
123
|
+
ORDER BY g.name`, [userId]);
|
|
124
|
+
return result.rows.map(group);
|
|
125
|
+
}
|
|
126
|
+
async addMember(member) {
|
|
127
|
+
const result = await this.database.query(`INSERT INTO user_group_members (group_id, user_id, added_by, added_at)
|
|
128
|
+
VALUES ($1, $2, $3, $4)
|
|
129
|
+
ON CONFLICT (group_id, user_id) DO NOTHING`, [member.group_id, member.user_id, member.added_by, member.added_at]);
|
|
130
|
+
return changes(result.rowCount) > 0;
|
|
131
|
+
}
|
|
132
|
+
async removeMember(groupId, userId) {
|
|
133
|
+
const result = await this.database.query('DELETE FROM user_group_members WHERE group_id = $1 AND user_id = $2', [groupId, userId]);
|
|
134
|
+
return changes(result.rowCount) > 0;
|
|
135
|
+
}
|
|
136
|
+
async removeUserFromAllGroups(userId) {
|
|
137
|
+
const result = await this.database.query('DELETE FROM user_group_members WHERE user_id = $1', [userId]);
|
|
138
|
+
return changes(result.rowCount);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
class PostgresResourceGrantRepository {
|
|
142
|
+
constructor(database) {
|
|
143
|
+
this.database = database;
|
|
144
|
+
}
|
|
145
|
+
async listForResource(resourceType, resourceId) {
|
|
146
|
+
const result = await this.database.query(`SELECT * FROM resource_grants
|
|
147
|
+
WHERE resource_type = $1 AND resource_id = $2
|
|
148
|
+
ORDER BY created_at`, [resourceType, resourceId]);
|
|
149
|
+
return result.rows.map(grant);
|
|
150
|
+
}
|
|
151
|
+
async listForPrincipal(principalType, principalId) {
|
|
152
|
+
const result = await this.database.query(`SELECT * FROM resource_grants
|
|
153
|
+
WHERE principal_type = $1 AND principal_id = $2
|
|
154
|
+
ORDER BY created_at`, [principalType, principalId]);
|
|
155
|
+
return result.rows.map(grant);
|
|
156
|
+
}
|
|
157
|
+
async findById(grantId) {
|
|
158
|
+
const result = await this.database.query('SELECT * FROM resource_grants WHERE id = $1', [grantId]);
|
|
159
|
+
return result.rows[0] ? grant(result.rows[0]) : null;
|
|
160
|
+
}
|
|
161
|
+
async listEffective(resourceType, resourceId, userId, groupIds) {
|
|
162
|
+
const values = [resourceType, resourceId, userId];
|
|
163
|
+
let groupPredicate = '';
|
|
164
|
+
if (groupIds.length) {
|
|
165
|
+
const placeholders = groupIds.map(groupId => {
|
|
166
|
+
values.push(groupId);
|
|
167
|
+
return `$${values.length}`;
|
|
168
|
+
});
|
|
169
|
+
groupPredicate = ` OR (principal_type = 'group' AND principal_id IN (${placeholders.join(', ')}))`;
|
|
170
|
+
}
|
|
171
|
+
const result = await this.database.query(`SELECT * FROM resource_grants
|
|
172
|
+
WHERE resource_type = $1 AND resource_id = $2
|
|
173
|
+
AND ((principal_type = 'user' AND principal_id = $3)${groupPredicate})`, values);
|
|
174
|
+
return result.rows.map(grant);
|
|
175
|
+
}
|
|
176
|
+
async upsert(record) {
|
|
177
|
+
await this.database.query(`INSERT INTO resource_grants
|
|
178
|
+
(id, resource_type, resource_id, owner_user_id,
|
|
179
|
+
principal_type, principal_id, permission, created_by, created_at)
|
|
180
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
|
181
|
+
ON CONFLICT (resource_type, resource_id, principal_type, principal_id)
|
|
182
|
+
DO UPDATE SET permission = EXCLUDED.permission,
|
|
183
|
+
created_by = EXCLUDED.created_by,
|
|
184
|
+
created_at = EXCLUDED.created_at`, [
|
|
185
|
+
record.id,
|
|
186
|
+
record.resource_type,
|
|
187
|
+
record.resource_id,
|
|
188
|
+
record.owner_user_id,
|
|
189
|
+
record.principal_type,
|
|
190
|
+
record.principal_id,
|
|
191
|
+
record.permission,
|
|
192
|
+
record.created_by,
|
|
193
|
+
record.created_at,
|
|
194
|
+
]);
|
|
195
|
+
}
|
|
196
|
+
async delete(grantId) {
|
|
197
|
+
const result = await this.database.query('DELETE FROM resource_grants WHERE id = $1', [grantId]);
|
|
198
|
+
return changes(result.rowCount) > 0;
|
|
199
|
+
}
|
|
200
|
+
async deleteForResource(resourceType, resourceId) {
|
|
201
|
+
const result = await this.database.query('DELETE FROM resource_grants WHERE resource_type = $1 AND resource_id = $2', [resourceType, resourceId]);
|
|
202
|
+
return changes(result.rowCount);
|
|
203
|
+
}
|
|
204
|
+
async deleteForPrincipal(principalType, principalId) {
|
|
205
|
+
const result = await this.database.query('DELETE FROM resource_grants WHERE principal_type = $1 AND principal_id = $2', [principalType, principalId]);
|
|
206
|
+
return changes(result.rowCount);
|
|
207
|
+
}
|
|
208
|
+
async deleteForOwner(ownerUserId) {
|
|
209
|
+
const result = await this.database.query('DELETE FROM resource_grants WHERE owner_user_id = $1', [ownerUserId]);
|
|
210
|
+
return changes(result.rowCount);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
class PostgresAuthSessionRepository {
|
|
214
|
+
constructor(database) {
|
|
215
|
+
this.database = database;
|
|
216
|
+
}
|
|
217
|
+
async insert(session) {
|
|
218
|
+
await this.database.query(`INSERT INTO auth_sessions
|
|
219
|
+
(id, user_id, kind, ip_hash, user_agent,
|
|
220
|
+
created_at, last_seen_at, expires_at, revoked_at, revoked_by)
|
|
221
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)`, [
|
|
222
|
+
session.id,
|
|
223
|
+
session.user_id,
|
|
224
|
+
session.kind,
|
|
225
|
+
session.ip_hash,
|
|
226
|
+
session.user_agent,
|
|
227
|
+
session.created_at,
|
|
228
|
+
session.last_seen_at,
|
|
229
|
+
session.expires_at,
|
|
230
|
+
session.revoked_at,
|
|
231
|
+
session.revoked_by,
|
|
232
|
+
]);
|
|
233
|
+
}
|
|
234
|
+
async findById(sessionId) {
|
|
235
|
+
const result = await this.database.query('SELECT * FROM auth_sessions WHERE id = $1', [sessionId]);
|
|
236
|
+
return result.rows[0] ? authSession(result.rows[0]) : null;
|
|
237
|
+
}
|
|
238
|
+
async listByUser(userId) {
|
|
239
|
+
const result = await this.database.query(`SELECT * FROM auth_sessions
|
|
240
|
+
WHERE user_id = $1
|
|
241
|
+
ORDER BY last_seen_at DESC`, [userId]);
|
|
242
|
+
return result.rows.map(authSession);
|
|
243
|
+
}
|
|
244
|
+
async touch(sessionId, lastSeenAt) {
|
|
245
|
+
const result = await this.database.query(`UPDATE auth_sessions SET last_seen_at = $1
|
|
246
|
+
WHERE id = $2 AND revoked_at IS NULL`, [lastSeenAt, sessionId]);
|
|
247
|
+
return changes(result.rowCount) > 0;
|
|
248
|
+
}
|
|
249
|
+
async revoke(sessionId, revokedAt, revokedBy) {
|
|
250
|
+
const result = await this.database.query(`UPDATE auth_sessions SET revoked_at = $1, revoked_by = $2
|
|
251
|
+
WHERE id = $3 AND revoked_at IS NULL`, [revokedAt, revokedBy, sessionId]);
|
|
252
|
+
return changes(result.rowCount) > 0;
|
|
253
|
+
}
|
|
254
|
+
async revokeAllForUser(userId, revokedAt, revokedBy, exceptSessionId) {
|
|
255
|
+
const values = [revokedAt, revokedBy, userId];
|
|
256
|
+
let exceptPredicate = '';
|
|
257
|
+
if (exceptSessionId) {
|
|
258
|
+
values.push(exceptSessionId);
|
|
259
|
+
exceptPredicate = ` AND id != $${values.length}`;
|
|
260
|
+
}
|
|
261
|
+
const result = await this.database.query(`UPDATE auth_sessions SET revoked_at = $1, revoked_by = $2
|
|
262
|
+
WHERE user_id = $3 AND revoked_at IS NULL${exceptPredicate}
|
|
263
|
+
RETURNING id`, values);
|
|
264
|
+
return result.rows.map(row => String(row.id));
|
|
265
|
+
}
|
|
266
|
+
async deleteExpired(before) {
|
|
267
|
+
const result = await this.database.query('DELETE FROM auth_sessions WHERE expires_at < $1', [before]);
|
|
268
|
+
return changes(result.rowCount);
|
|
269
|
+
}
|
|
270
|
+
async deleteForUser(userId) {
|
|
271
|
+
const result = await this.database.query('DELETE FROM auth_sessions WHERE user_id = $1', [userId]);
|
|
272
|
+
return changes(result.rowCount);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
class PostgresApiTokenRepository {
|
|
276
|
+
constructor(database) {
|
|
277
|
+
this.database = database;
|
|
278
|
+
}
|
|
279
|
+
async insert(token) {
|
|
280
|
+
await this.database.query(`INSERT INTO api_tokens
|
|
281
|
+
(id, user_id, name, token_hash, token_prefix, scopes,
|
|
282
|
+
created_at, expires_at, last_used_at, revoked_at)
|
|
283
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)`, [
|
|
284
|
+
token.id,
|
|
285
|
+
token.user_id,
|
|
286
|
+
token.name,
|
|
287
|
+
token.token_hash,
|
|
288
|
+
token.token_prefix,
|
|
289
|
+
token.scopes,
|
|
290
|
+
token.created_at,
|
|
291
|
+
token.expires_at,
|
|
292
|
+
token.last_used_at,
|
|
293
|
+
token.revoked_at,
|
|
294
|
+
]);
|
|
295
|
+
}
|
|
296
|
+
async findByHash(tokenHash) {
|
|
297
|
+
const result = await this.database.query('SELECT * FROM api_tokens WHERE token_hash = $1', [tokenHash]);
|
|
298
|
+
return result.rows[0] ? apiToken(result.rows[0]) : null;
|
|
299
|
+
}
|
|
300
|
+
async findById(tokenId) {
|
|
301
|
+
const result = await this.database.query('SELECT * FROM api_tokens WHERE id = $1', [tokenId]);
|
|
302
|
+
return result.rows[0] ? apiToken(result.rows[0]) : null;
|
|
303
|
+
}
|
|
304
|
+
async listByUser(userId) {
|
|
305
|
+
const result = await this.database.query('SELECT * FROM api_tokens WHERE user_id = $1 ORDER BY created_at DESC', [userId]);
|
|
306
|
+
return result.rows.map(apiToken);
|
|
307
|
+
}
|
|
308
|
+
async listAll() {
|
|
309
|
+
const result = await this.database.query('SELECT * FROM api_tokens ORDER BY created_at DESC');
|
|
310
|
+
return result.rows.map(apiToken);
|
|
311
|
+
}
|
|
312
|
+
async touchLastUsed(tokenId, lastUsedAt) {
|
|
313
|
+
const result = await this.database.query('UPDATE api_tokens SET last_used_at = $1 WHERE id = $2', [lastUsedAt, tokenId]);
|
|
314
|
+
return changes(result.rowCount) > 0;
|
|
315
|
+
}
|
|
316
|
+
async revoke(tokenId, revokedAt) {
|
|
317
|
+
const result = await this.database.query('UPDATE api_tokens SET revoked_at = $1 WHERE id = $2 AND revoked_at IS NULL', [revokedAt, tokenId]);
|
|
318
|
+
return changes(result.rowCount) > 0;
|
|
319
|
+
}
|
|
320
|
+
async deleteForUser(userId) {
|
|
321
|
+
const result = await this.database.query('DELETE FROM api_tokens WHERE user_id = $1', [userId]);
|
|
322
|
+
return changes(result.rowCount);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
class PostgresOAuthIdentityRepository {
|
|
326
|
+
constructor(database) {
|
|
327
|
+
this.database = database;
|
|
328
|
+
}
|
|
329
|
+
async find(provider, subject) {
|
|
330
|
+
const result = await this.database.query('SELECT * FROM oauth_identities WHERE provider = $1 AND subject = $2', [provider, subject]);
|
|
331
|
+
return result.rows[0] ? oauthIdentity(result.rows[0]) : null;
|
|
332
|
+
}
|
|
333
|
+
async listByUser(userId) {
|
|
334
|
+
const result = await this.database.query('SELECT * FROM oauth_identities WHERE user_id = $1 ORDER BY created_at', [userId]);
|
|
335
|
+
return result.rows.map(oauthIdentity);
|
|
336
|
+
}
|
|
337
|
+
async upsert(identity) {
|
|
338
|
+
await this.database.query(`INSERT INTO oauth_identities
|
|
339
|
+
(provider, subject, user_id, email, created_at, updated_at)
|
|
340
|
+
VALUES ($1, $2, $3, $4, $5, $6)
|
|
341
|
+
ON CONFLICT (provider, subject) DO UPDATE SET
|
|
342
|
+
user_id = EXCLUDED.user_id,
|
|
343
|
+
email = EXCLUDED.email,
|
|
344
|
+
updated_at = EXCLUDED.updated_at`, [
|
|
345
|
+
identity.provider,
|
|
346
|
+
identity.subject,
|
|
347
|
+
identity.user_id,
|
|
348
|
+
identity.email,
|
|
349
|
+
identity.created_at,
|
|
350
|
+
identity.updated_at,
|
|
351
|
+
]);
|
|
352
|
+
}
|
|
353
|
+
async deleteForUser(userId) {
|
|
354
|
+
const result = await this.database.query('DELETE FROM oauth_identities WHERE user_id = $1', [userId]);
|
|
355
|
+
return changes(result.rowCount);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
class PostgresSecurityAuditRepository {
|
|
359
|
+
constructor(database) {
|
|
360
|
+
this.database = database;
|
|
361
|
+
}
|
|
362
|
+
async insert(event) {
|
|
363
|
+
await this.database.query(`INSERT INTO security_audit_events
|
|
364
|
+
(id, occurred_at, actor_user_id, actor_kind, action,
|
|
365
|
+
target_type, target_id, result, request_id, ip_hash, details)
|
|
366
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)`, [
|
|
367
|
+
event.id,
|
|
368
|
+
event.occurred_at,
|
|
369
|
+
event.actor_user_id,
|
|
370
|
+
event.actor_kind,
|
|
371
|
+
event.action,
|
|
372
|
+
event.target_type,
|
|
373
|
+
event.target_id,
|
|
374
|
+
event.result,
|
|
375
|
+
event.request_id,
|
|
376
|
+
event.ip_hash,
|
|
377
|
+
event.details,
|
|
378
|
+
]);
|
|
379
|
+
}
|
|
380
|
+
async query(query) {
|
|
381
|
+
const conditions = [];
|
|
382
|
+
const values = [];
|
|
383
|
+
if (query.action) {
|
|
384
|
+
values.push(query.action);
|
|
385
|
+
conditions.push(`action = $${values.length}`);
|
|
386
|
+
}
|
|
387
|
+
if (query.actorUserId) {
|
|
388
|
+
values.push(query.actorUserId);
|
|
389
|
+
conditions.push(`actor_user_id = $${values.length}`);
|
|
390
|
+
}
|
|
391
|
+
if (query.result) {
|
|
392
|
+
values.push(query.result);
|
|
393
|
+
conditions.push(`result = $${values.length}`);
|
|
394
|
+
}
|
|
395
|
+
if (query.targetType) {
|
|
396
|
+
values.push(query.targetType);
|
|
397
|
+
conditions.push(`target_type = $${values.length}`);
|
|
398
|
+
}
|
|
399
|
+
if (query.before !== undefined) {
|
|
400
|
+
values.push(query.before);
|
|
401
|
+
conditions.push(`occurred_at < $${values.length}`);
|
|
402
|
+
}
|
|
403
|
+
if (query.after !== undefined) {
|
|
404
|
+
values.push(query.after);
|
|
405
|
+
conditions.push(`occurred_at > $${values.length}`);
|
|
406
|
+
}
|
|
407
|
+
const where = conditions.length ? ` WHERE ${conditions.join(' AND ')}` : '';
|
|
408
|
+
values.push(query.limit);
|
|
409
|
+
const result = await this.database.query(`SELECT * FROM security_audit_events${where}
|
|
410
|
+
ORDER BY occurred_at DESC, id DESC
|
|
411
|
+
LIMIT $${values.length}`, values);
|
|
412
|
+
return result.rows.map(auditEvent);
|
|
413
|
+
}
|
|
414
|
+
async deleteBefore(before) {
|
|
415
|
+
const result = await this.database.query('DELETE FROM security_audit_events WHERE occurred_at < $1', [before]);
|
|
416
|
+
return changes(result.rowCount);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
export const createPostgresSecurityRepositories = (database) => ({
|
|
420
|
+
groups: new PostgresGroupRepository(database),
|
|
421
|
+
grants: new PostgresResourceGrantRepository(database),
|
|
422
|
+
authSessions: new PostgresAuthSessionRepository(database),
|
|
423
|
+
apiTokens: new PostgresApiTokenRepository(database),
|
|
424
|
+
oauthIdentities: new PostgresOAuthIdentityRepository(database),
|
|
425
|
+
audit: new PostgresSecurityAuditRepository(database),
|
|
426
|
+
});
|
|
427
|
+
/** Create transaction-scoped repositories over one pinned pooled client. */
|
|
428
|
+
export const createPostgresTransactionalSecurityRepositories = (database, client) => {
|
|
429
|
+
const transactionDatabase = {
|
|
430
|
+
query: client.query.bind(client),
|
|
431
|
+
transaction: async (operation) => operation(client),
|
|
432
|
+
};
|
|
433
|
+
return createPostgresSecurityRepositories(transactionDatabase);
|
|
434
|
+
};
|
|
435
|
+
//# sourceMappingURL=postgresSecurityRepositories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgresSecurityRepositories.js","sourceRoot":"","sources":["../../src/persistence/postgresSecurityRepositories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAyBH,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,KAAa,EAAU,EAAE;IACvD,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,KAAa,EAAiB,EAAE,CACtE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEtE,MAAM,OAAO,GAAG,CAAC,QAAuB,EAAU,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;AAEnE,MAAM,KAAK,GAAG,CAAC,GAAe,EAAqB,EAAE,CAAC,CAAC;IACrD,GAAI,GAAoC;IACxC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,GAAe,EAA2B,EAAE,CAAC,CAAC;IACjE,GAAI,GAA0C;IAC9C,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,CAAC,GAAe,EAA6B,EAAE,CAAC,CAAC;IAC7D,GAAI,GAA4C;IAChD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,GAAe,EAA2B,EAAE,CAAC,CAAC;IACjE,GAAI,GAA0C;IAC9C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC;IACxD,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC;CACjE,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAwB,EAAE,CAAC,CAAC;IAC3D,GAAI,GAAuC;IAC3C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACtD,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAC9D,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC;IACpE,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,GAAe,EAA6B,EAAE,CAAC,CAAC;IACrE,GAAI,GAA4C;IAChD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC;IACzD,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,CAAC,GAAe,EAAkC,EAAE,CAAC,CAAC;IACvE,GAAI,GAAiD;IACrD,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC1D,CAAC,CAAC;AAEH,MAAM,uBAAuB;IAC3B,YAA6B,QAA0B;wBAA1B,QAAQ;IAAqB,CAAC;IAE3D,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,yCAAyC,CAC1C,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,yCAAyC,EACzC,CAAC,OAAO,CAAC,CACV,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,2CAA2C,EAC3C,CAAC,IAAI,CAAC,CACP,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAyB;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB;;uCAEiC,EACjC;YACE,MAAM,CAAC,EAAE;YACT,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,UAAU;SAClB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAe,EACf,KAAyE;QAEzE,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,MAAM,GAAkC,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,WAAW,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9B,WAAW,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,0BAA0B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,EAC/E,MAAM,CACP,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,uCAAuC,EACvC,CAAC,OAAO,CAAC,CACV,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,wEAAwE,EACxE,CAAC,OAAO,CAAC,CACV,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,4DAA4D,EAC5D,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc;QACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;;;wBAGkB,EAClB,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA+B;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;;kDAE4C,EAC5C,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CACpE,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,MAAc;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,qEAAqE,EACrE,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,MAAc;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,mDAAmD,EACnD,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,+BAA+B;IACnC,YAA6B,QAA0B;wBAA1B,QAAQ;IAAqB,CAAC;IAE3D,KAAK,CAAC,eAAe,CACnB,YAAoB,EACpB,UAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;;4BAEsB,EACtB,CAAC,YAAY,EAAE,UAAU,CAAC,CAC3B,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,aAAiC,EACjC,WAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;;4BAEsB,EACtB,CAAC,aAAa,EAAE,WAAW,CAAC,CAC7B,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,6CAA6C,EAC7C,CAAC,OAAO,CAAC,CACV,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,YAAoB,EACpB,UAAkB,EAClB,MAAc,EACd,QAA2B;QAE3B,MAAM,MAAM,GAAkB,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QACjE,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACrB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,cAAc,GAAG,sDAAsD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACrG,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;;gEAE0D,cAAc,GAAG,EAC3E,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAiC;QAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB;;;;;;;sDAOgD,EAChD;YACE,MAAM,CAAC,EAAE;YACT,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,cAAc;YACrB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,UAAU;SAClB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,2CAA2C,EAC3C,CAAC,OAAO,CAAC,CACV,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,YAAoB,EACpB,UAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,2EAA2E,EAC3E,CAAC,YAAY,EAAE,UAAU,CAAC,CAC3B,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,aAAiC,EACjC,WAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,6EAA6E,EAC7E,CAAC,aAAa,EAAE,WAAW,CAAC,CAC7B,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,sDAAsD,EACtD,CAAC,WAAW,CAAC,CACd,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,6BAA6B;IACjC,YAA6B,QAA0B;wBAA1B,QAAQ;IAAqB,CAAC;IAE3D,KAAK,CAAC,MAAM,CAAC,OAAgC;QAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB;;;wDAGkD,EAClD;YACE,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,UAAU;SACnB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,2CAA2C,EAC3C,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;;mCAE6B,EAC7B,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB,EAAE,UAAkB;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;6CACuC,EACvC,CAAC,UAAU,EAAE,SAAS,CAAC,CACxB,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;6CACuC,EACvC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAClC,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,SAAiB,EACjB,SAAiB,EACjB,eAAwB;QAExB,MAAM,MAAM,GAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,eAAe,GAAG,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC;mDAC6C,eAAe;qBAC7C,EACf,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,iDAAiD,EACjD,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,8CAA8C,EAC9C,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,0BAA0B;IAC9B,YAA6B,QAA0B;wBAA1B,QAAQ;IAAqB,CAAC;IAE3D,KAAK,CAAC,MAAM,CAAC,KAA2B;QACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB;;;wDAGkD,EAClD;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,YAAY;YAClB,KAAK,CAAC,UAAU;SACjB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,gDAAgD,EAChD,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,wCAAwC,EACxC,CAAC,OAAO,CAAC,CACV,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,sEAAsE,EACtE,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,mDAAmD,CACpD,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,UAAkB;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,uDAAuD,EACvD,CAAC,UAAU,EAAE,OAAO,CAAC,CACtB,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,SAAiB;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,4EAA4E,EAC5E,CAAC,SAAS,EAAE,OAAO,CAAC,CACrB,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,2CAA2C,EAC3C,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,+BAA+B;IACnC,YAA6B,QAA0B;wBAA1B,QAAQ;IAAqB,CAAC;IAE3D,KAAK,CAAC,IAAI,CACR,QAAgB,EAChB,OAAe;QAEf,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,qEAAqE,EACrE,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,uEAAuE,EACvE,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAmC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB;;;;;;0CAMoC,EACpC;YACE,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,KAAK;YACd,QAAQ,CAAC,UAAU;YACnB,QAAQ,CAAC,UAAU;SACpB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,iDAAiD,EACjD,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,+BAA+B;IACnC,YAA6B,QAA0B;wBAA1B,QAAQ;IAAqB,CAAC;IAE3D,KAAK,CAAC,MAAM,CAAC,KAAqC;QAChD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB;;;6DAGuD,EACvD;YACE,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,WAAW;YACjB,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,MAAM;YACZ,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,OAAO;SACd,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,KAAyB;QAEzB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,sCAAsC,KAAK;;iBAEhC,MAAM,CAAC,MAAM,EAAE,EAC1B,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACtC,0DAA0D,EAC1D,CAAC,MAAM,CAAC,CACT,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAChD,QAA0B,EACJ,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,IAAI,uBAAuB,CAAC,QAAQ,CAAC;IAC7C,MAAM,EAAE,IAAI,+BAA+B,CAAC,QAAQ,CAAC;IACrD,YAAY,EAAE,IAAI,6BAA6B,CAAC,QAAQ,CAAC;IACzD,SAAS,EAAE,IAAI,0BAA0B,CAAC,QAAQ,CAAC;IACnD,eAAe,EAAE,IAAI,+BAA+B,CAAC,QAAQ,CAAC;IAC9D,KAAK,EAAE,IAAI,+BAA+B,CAAC,QAAQ,CAAC;CACrD,CAAC,CAAC;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,+CAA+C,GAAG,CAC7D,QAA0B,EAC1B,MAAkB,EACI,EAAE;IACxB,MAAM,mBAAmB,GAAG;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,KAAK,EAAK,SAA6C,EAAE,EAAE,CACtE,SAAS,CAAC,MAAM,CAAC;KACW,CAAC;IACjC,OAAO,kCAAkC,CAAC,mBAAmB,CAAC,CAAC;AACjE,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PostgresMigration } from './postgresMigrationTypes.js';
|
|
2
|
+
/**
|
|
3
|
+
* Trust-foundation schema: groups, resource grants, auth sessions, API
|
|
4
|
+
* tokens, OAuth identities, and the append-only security audit log.
|
|
5
|
+
*/
|
|
6
|
+
export declare const POSTGRES_TRUST_FOUNDATION_SQL = "CREATE TABLE user_groups (\n id text PRIMARY KEY,\n name text NOT NULL UNIQUE CHECK (length(name) >= 1 AND length(name) <= 128),\n description text,\n created_by text,\n created_at bigint NOT NULL,\n updated_at bigint NOT NULL\n);\n\nCREATE TABLE user_group_members (\n group_id text NOT NULL REFERENCES user_groups(id) ON DELETE CASCADE,\n user_id text NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n added_by text,\n added_at bigint NOT NULL,\n PRIMARY KEY (group_id, user_id)\n);\n\nCREATE INDEX idx_user_group_members_user\n ON user_group_members(user_id, group_id);\n\nCREATE TABLE resource_grants (\n id text PRIMARY KEY,\n resource_type text NOT NULL\n CHECK (length(resource_type) >= 1 AND length(resource_type) <= 64),\n resource_id text NOT NULL\n CHECK (length(resource_id) >= 1 AND length(resource_id) <= 256),\n owner_user_id text NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n principal_type text NOT NULL CHECK (principal_type IN ('user', 'group')),\n principal_id text NOT NULL,\n permission text NOT NULL CHECK (permission IN ('read', 'write', 'admin')),\n created_by text NOT NULL,\n created_at bigint NOT NULL,\n UNIQUE (resource_type, resource_id, principal_type, principal_id)\n);\n\nCREATE INDEX idx_resource_grants_resource\n ON resource_grants(resource_type, resource_id);\n\nCREATE INDEX idx_resource_grants_principal\n ON resource_grants(principal_type, principal_id);\n\nCREATE TABLE auth_sessions (\n id text PRIMARY KEY,\n user_id text NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n kind text NOT NULL,\n ip_hash text,\n user_agent text,\n created_at bigint NOT NULL,\n last_seen_at bigint NOT NULL,\n expires_at bigint NOT NULL,\n revoked_at bigint,\n revoked_by text\n);\n\nCREATE INDEX idx_auth_sessions_user\n ON auth_sessions(user_id, last_seen_at);\n\nCREATE INDEX idx_auth_sessions_expires\n ON auth_sessions(expires_at);\n\nCREATE TABLE api_tokens (\n id text PRIMARY KEY,\n user_id text NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n name text NOT NULL CHECK (length(name) >= 1 AND length(name) <= 128),\n token_hash text NOT NULL UNIQUE,\n token_prefix text NOT NULL,\n scopes text NOT NULL,\n created_at bigint NOT NULL,\n expires_at bigint,\n last_used_at bigint,\n revoked_at bigint\n);\n\nCREATE INDEX idx_api_tokens_user\n ON api_tokens(user_id, created_at);\n\nCREATE TABLE oauth_identities (\n provider text NOT NULL,\n subject text NOT NULL,\n user_id text NOT NULL REFERENCES users(id) ON DELETE CASCADE,\n email text,\n created_at bigint NOT NULL,\n updated_at bigint NOT NULL,\n PRIMARY KEY (provider, subject)\n);\n\nCREATE INDEX idx_oauth_identities_user\n ON oauth_identities(user_id);\n\nCREATE TABLE security_audit_events (\n id text PRIMARY KEY,\n occurred_at bigint NOT NULL,\n actor_user_id text,\n actor_kind text NOT NULL,\n action text NOT NULL CHECK (length(action) >= 1 AND length(action) <= 128),\n target_type text,\n target_id text,\n result text NOT NULL CHECK (result IN ('success', 'denied', 'failure')),\n request_id text,\n ip_hash text,\n details text\n);\n\nCREATE INDEX idx_security_audit_occurred\n ON security_audit_events(occurred_at, id);\n\nCREATE INDEX idx_security_audit_actor\n ON security_audit_events(actor_user_id, occurred_at);\n\nCREATE INDEX idx_security_audit_action\n ON security_audit_events(action, occurred_at);";
|
|
7
|
+
export declare const POSTGRES_TRUST_FOUNDATION_MIGRATION: PostgresMigration;
|
|
8
|
+
//# sourceMappingURL=postgresTrustFoundationMigration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgresTrustFoundationMigration.d.ts","sourceRoot":"","sources":["../../src/persistence/postgresTrustFoundationMigration.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;GAGG;AAIH,eAAO,MAAM,6BAA6B,u0GA8GO,CAAC;AAKlD,eAAO,MAAM,mCAAmC,EAAE,iBAc9C,CAAC"}
|