@medha-analytics/medha-one-access-react 1.0.9 → 1.1.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/README.md CHANGED
@@ -31,6 +31,7 @@ function App() {
31
31
  apiUrl="https://your-medha-api.example.com"
32
32
  secretKey="your-secret-key"
33
33
  currentApplication="your-app-id"
34
+ currentUserEmail={currentUser.email} // the logged-in host-app user; required
34
35
  >
35
36
  <MedhaOneAccess />
36
37
  </MedhaOneAccessProvider>
@@ -49,6 +50,7 @@ export default App
49
50
  | `apiUrl` | `string` | yes | Base URL of the Medha One Access API |
50
51
  | `secretKey` | `string` | yes | Shared secret used to sign requests (see `generateToken`) |
51
52
  | `currentApplication` | `string` | yes | Application identifier scoping access rules/artifacts |
53
+ | `currentUserEmail` | `string` | yes | Email of the host app's currently logged-in user. Sent as `performed_by` on every create/update/delete call for audit tracking — resolve it from your own auth/session, don't hardcode it. |
52
54
  | `isAdmin` | `boolean` | no | Enables admin-only actions in the UI |
53
55
  | `debugMode` | `boolean` | no | Verbose request/response logging |
54
56
  | `theme` | `'light' \| 'dark' \| 'system'` | no | Color theme for this library's own UI, independent of the host app's theme. Defaults to `'system'` (follows the OS `prefers-color-scheme` live). Self-contained — only affects this library's own scoped elements, never the host page. |
@@ -56,6 +58,8 @@ export default App
56
58
 
57
59
  > **Upgrading from an earlier version:** `theme` previously didn't exist, and the library only ever rendered in its light appearance. As of this version, omitting `theme` now defaults to `'system'` — if a user's OS is in dark mode, this library's UI will now render dark by default. Pass `theme="light"` explicitly if you want to keep the old, always-light behavior.
58
60
 
61
+ > **Upgrading to 1.1.0+:** `currentUserEmail` is a new **required** config prop — omitting it is a TypeScript error. Every create/update/delete call now sends it as `performed_by` so backend audit logs (`Artifact.auditLog`, `AccessRule.auditLog`, `User.auditLog`) can attribute the change to a real person instead of a generic `"system"` string. Add it wherever you construct `MedhaOneAccessProvider` props, e.g. `currentUserEmail={session.user.email}`.
62
+
59
63
  ## Using individual pieces
60
64
 
61
65
  You don't have to render the full `MedhaOneAccess` shell — every view, dialog, and hook is exported individually so you can compose your own layout.
@@ -110,9 +114,30 @@ import type {
110
114
  User, UserGroup, GroupMember, HierarchyNode,
111
115
  Artifact, ArtifactGroup, ArtifactHierarchyNode, Permission,
112
116
  AccessRule, TimeConstraint, ExpressionValidationResult,
117
+ AuditLogEntry,
113
118
  } from '@medha-analytics/medha-one-access-react'
114
119
  ```
115
120
 
121
+ ### Audit tracking
122
+
123
+ As of 1.1.0, `Artifact`, `ArtifactGroup`, `AccessRule`, `User`, and `UserGroup` all carry two additional optional fields, populated from the backend on every fetch:
124
+
125
+ | Field | Type | Description |
126
+ |---|---|---|
127
+ | `lifecycleStatus` | `'live' \| 'deleted'` | Soft-delete state, distinct from the UI `status` (`'Active' \| 'Inactive'`) |
128
+ | `auditLog` | `AuditLogEntry[]` | History of who did what and when |
129
+
130
+ ```ts
131
+ interface AuditLogEntry {
132
+ action: string
133
+ performed_by: string
134
+ performed_at: string
135
+ status: string
136
+ }
137
+ ```
138
+
139
+ `performed_by` on each entry is populated from the `currentUserEmail` you pass to `MedhaOneAccessProvider` at the time of the change — see the upgrade note above.
140
+
116
141
  ## Styling notes
117
142
 
118
143
  - The library ships with Tailwind-based styles pre-built into `dist/index.css`, and the built JS auto-imports it (`import './index.css'` / `require('./index.css')` runs whenever you import anything from the package). You don't need Tailwind configured in the host app.
@@ -7,6 +7,7 @@ interface DataTableProps<TData> {
7
7
  isLoading?: boolean;
8
8
  emptyMessage?: string;
9
9
  onSearchChange?: (search: string) => void;
10
+ searchValue?: string;
10
11
  onPaginationChange?: (pagination: PaginationState) => void;
11
12
  pageSize?: number;
12
13
  searchPlaceholder?: string;
@@ -14,6 +15,6 @@ interface DataTableProps<TData> {
14
15
  statusFilter?: 'all' | 'active' | 'inactive';
15
16
  onStatusFilterChange?: (status: 'all' | 'active' | 'inactive') => void;
16
17
  }
17
- export declare function DataTable<TData>({ columns, data, totalCount, isLoading, emptyMessage, onSearchChange, onPaginationChange, pageSize: initialPageSize, searchPlaceholder, toolbar, statusFilter, onStatusFilterChange, }: DataTableProps<TData>): import("react").JSX.Element;
18
+ export declare function DataTable<TData>({ columns, data, totalCount, isLoading, emptyMessage, onSearchChange, searchValue: externalSearchValue, onPaginationChange, pageSize: initialPageSize, searchPlaceholder, toolbar, statusFilter, onStatusFilterChange, }: DataTableProps<TData>): import("react").JSX.Element;
18
19
  export {};
19
20
  //# sourceMappingURL=DataTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/components/shared/DataTable.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAEL,KAAK,SAAS,EAAE,KAAK,eAAe,EACrC,MAAM,uBAAuB,CAAA;AAS9B,UAAU,cAAc,CAAC,KAAK;IAC5B,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAC3B,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAA;IAC5C,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,KAAK,IAAI,CAAA;CACvE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,EAC/B,OAAO,EACP,IAAI,EACJ,UAAU,EACV,SAAiB,EACjB,YAAiC,EACjC,cAAc,EACd,kBAAkB,EAClB,QAAQ,EAAE,eAAoB,EAC9B,iBAA+B,EAC/B,OAAO,EACP,YAAY,EACZ,oBAAoB,GACrB,EAAE,cAAc,CAAC,KAAK,CAAC,+BAiJvB"}
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/components/shared/DataTable.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAEL,KAAK,SAAS,EAAE,KAAK,eAAe,EACrC,MAAM,uBAAuB,CAAA;AAS9B,UAAU,cAAc,CAAC,KAAK;IAC5B,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;IAC3B,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,YAAY,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAA;IAC5C,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,KAAK,IAAI,CAAA;CACvE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,EAC/B,OAAO,EACP,IAAI,EACJ,UAAU,EACV,SAAiB,EACjB,YAAiC,EACjC,cAAc,EACd,WAAW,EAAE,mBAAmB,EAChC,kBAAkB,EAClB,QAAQ,EAAE,eAAoB,EAC9B,iBAA+B,EAC/B,OAAO,EACP,YAAY,EACZ,oBAAoB,GACrB,EAAE,cAAc,CAAC,KAAK,CAAC,+BAqJvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactsView.d.ts","sourceRoot":"","sources":["../../../src/components/views/ArtifactsView.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,gCAqJ5B"}
1
+ {"version":3,"file":"ArtifactsView.d.ts","sourceRoot":"","sources":["../../../src/components/views/ArtifactsView.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,aAAa,gCAyK5B"}
@@ -6,6 +6,7 @@ export interface MedhaOneAccessConfig {
6
6
  apiUrl: string;
7
7
  secretKey: string;
8
8
  currentApplication: string;
9
+ currentUserEmail: string;
9
10
  isAdmin?: boolean;
10
11
  debugMode?: boolean;
11
12
  theme?: MedhaTheme;
@@ -1 +1 @@
1
- {"version":3,"file":"MedhaOneAccessContext.d.ts","sourceRoot":"","sources":["../../../src/core/context/MedhaOneAccessContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAkD,MAAM,uBAAuB,CAAA;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAK1C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,oBAAoB,CAAA;IAC5B,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED,QAAA,MAAM,qBAAqB,mDAAgD,CAAA;AAE3E,wBAAgB,cAAc,IAAI,oBAAoB,CAIrD;AAED,wBAAgB,YAAY,IAAI,aAAa,CAI5C;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC,UAAU,2BAA4B,SAAQ,oBAAoB;IAChE,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAuBD,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EAAE,mBAAmB,EAChC,GAAG,WAAW,EACf,EAAE,2BAA2B,+BAsB7B"}
1
+ {"version":3,"file":"MedhaOneAccessContext.d.ts","sourceRoot":"","sources":["../../../src/core/context/MedhaOneAccessContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAkD,MAAM,uBAAuB,CAAA;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAK1C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,oBAAoB,CAAA;IAC5B,UAAU,EAAE,aAAa,CAAA;CAC1B;AAED,QAAA,MAAM,qBAAqB,mDAAgD,CAAA;AAE3E,wBAAgB,cAAc,IAAI,oBAAoB,CAIrD;AAED,wBAAgB,YAAY,IAAI,aAAa,CAI5C;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC,UAAU,2BAA4B,SAAQ,oBAAoB;IAChE,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAuBD,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,WAAW,EAAE,mBAAmB,EAChC,GAAG,WAAW,EACf,EAAE,2BAA2B,+BAsB7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAccessRules.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useAccessRules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAE9G,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAmBD,wBAAgB,cAAc,CAAC,MAAM,GAAE,iBAAsB,gFAiB5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAM,iEAc5G;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,8EAUvC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kEAcpF;AA4BD,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,yFAUnD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,yFAUjD;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,yFAUnD;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,yFAUxD;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,8FAalF;AA2BD,wBAAgB,mBAAmB,uGAUlC;AAED,wBAAgB,mBAAmB,8FAalC;AAED,wBAAgB,mBAAmB,oFASlC"}
1
+ {"version":3,"file":"useAccessRules.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useAccessRules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAE9G,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAqBD,wBAAgB,cAAc,CAAC,MAAM,GAAE,iBAAsB,gFAiB5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAM,iEAc5G;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,8EAUvC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kEAcpF;AA4BD,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,yFAUnD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,yFAUjD;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,yFAUnD;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,yFAUxD;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,8FAalF;AA2BD,wBAAgB,mBAAmB,uGAYlC;AAED,wBAAgB,mBAAmB,8FAelC;AAED,wBAAgB,mBAAmB,oFAWlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useArtifacts.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useArtifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAEvE,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,eAAe,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,eAAoB,8EAkBxD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,iEAexH;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,4EAUrC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,mFAevH;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iFAU1C;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,8EAUvD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,mFAUtD;AAED,wBAAgB,qBAAqB,6EAYpC;AAED,wBAAgB,iBAAiB,mGAUhC;AAED,wBAAgB,iBAAiB,0FAahC;AAED,wBAAgB,iBAAiB,oFAShC"}
1
+ {"version":3,"file":"useArtifacts.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useArtifacts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAUvE,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,UAAU,GAAG,eAAe,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,eAAoB,8EAkBxD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,iEAexH;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,4EAUrC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,mFAevH;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iFAU1C;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,8EAUvD;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,mFAUtD;AAED,wBAAgB,qBAAqB,6EAYpC;AAED,wBAAgB,iBAAiB,mGAYhC;AAED,wBAAgB,iBAAiB,0FAehC;AAED,wBAAgB,iBAAiB,oFAWhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGroups.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useGroups.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElE,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAWD,wBAAgB,SAAS,CAAC,MAAM,GAAE,YAAiB,+EAwBlD;AAED,wBAAgB,cAAc,CAAC,MAAM,GAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAM,iEAY3E;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,6EAUlC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,iFAkB9C;AAED,wBAAgB,cAAc,qGA0B7B;AAED,wBAAgB,cAAc,4FAa7B;AAED,wBAAgB,cAAc,oFAS7B;AAED,wBAAgB,iBAAiB;aAIsB,MAAM;YAAU,MAAM;YAK5E;AAED,wBAAgB,oBAAoB;aAImB,MAAM;YAAU,MAAM;YAK5E"}
1
+ {"version":3,"file":"useGroups.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useGroups.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElE,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAWD,wBAAgB,SAAS,CAAC,MAAM,GAAE,YAAiB,+EAwBlD;AAED,wBAAgB,cAAc,CAAC,MAAM,GAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAM,iEAY3E;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,6EAUlC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,iFAkB9C;AAED,wBAAgB,cAAc,qGA4B7B;AAED,wBAAgB,cAAc,4FAe7B;AAED,wBAAgB,cAAc,oFAW7B;AAED,wBAAgB,iBAAiB;aAIsB,MAAM;YAAU,MAAM;YAK5E;AAED,wBAAgB,oBAAoB;aAImB,MAAM;YAAU,MAAM;YAK5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUsers.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useUsers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3D,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAeD,wBAAgB,QAAQ,CAAC,MAAM,GAAE,WAAgB,0EAgBhD;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,CAAM,iEAapF;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,wEAUjC;AAED,wBAAgB,gBAAgB,gFAoB/B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,+EAU3C;AAED,wBAAgB,cAAc,6EAY7B;AAED,wBAAgB,QAAQ,6EAYvB;AAED,wBAAgB,aAAa,2FAwC5B;AAED,wBAAgB,aAAa,kFAa5B;AAED,wBAAgB,aAAa,oFAS5B"}
1
+ {"version":3,"file":"useUsers.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/useUsers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE3D,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAiBD,wBAAgB,QAAQ,CAAC,MAAM,GAAE,WAAgB,0EAgBhD;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,QAAQ,CAAM,iEAapF;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,wEAUjC;AAED,wBAAgB,gBAAgB,gFAoB/B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,+EAU3C;AAED,wBAAgB,cAAc,6EAY7B;AAED,wBAAgB,QAAQ,6EAYvB;AAED,wBAAgB,aAAa,2FA0C5B;AAED,wBAAgB,aAAa,kFAe5B;AAED,wBAAgB,aAAa,oFAW5B"}
@@ -0,0 +1,3 @@
1
+ import type { MedhaOneAccessConfig } from '../context/MedhaOneAccessContext';
2
+ export declare function getPerformedBy(config: MedhaOneAccessConfig): string;
3
+ //# sourceMappingURL=performed-by.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performed-by.d.ts","sourceRoot":"","sources":["../../../src/core/lib/performed-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAEnE"}
@@ -1,3 +1,4 @@
1
+ import type { AuditLogEntry } from './artifact.types';
1
2
  export interface TimeConstraint {
2
3
  startDate?: string;
3
4
  endDate?: string;
@@ -14,6 +15,8 @@ export interface AccessRule {
14
15
  permissions: string[];
15
16
  application?: string;
16
17
  status: 'Active' | 'Inactive';
18
+ lifecycleStatus?: 'live' | 'deleted';
19
+ auditLog?: AuditLogEntry[];
17
20
  timeConstraints?: TimeConstraint;
18
21
  createdAt?: Date;
19
22
  updatedAt?: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"access-rule.types.d.ts","sourceRoot":"","sources":["../../../src/core/models/access-rule.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,eAAe,CAAC,EAAE,cAAc,CAAA;IAChC,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB"}
1
+ {"version":3,"file":"access-rule.types.d.ts","sourceRoot":"","sources":["../../../src/core/models/access-rule.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,eAAe,CAAC,EAAE,cAAc,CAAA;IAChC,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB"}
@@ -5,6 +5,12 @@ export interface Permission {
5
5
  inherited?: boolean;
6
6
  inheritedFrom?: string;
7
7
  }
8
+ export interface AuditLogEntry {
9
+ action: string;
10
+ performed_by: string;
11
+ performed_at: string;
12
+ status: string;
13
+ }
8
14
  export interface Artifact {
9
15
  id: string;
10
16
  name: string;
@@ -13,6 +19,8 @@ export interface Artifact {
13
19
  application?: string;
14
20
  expression?: string;
15
21
  status: 'Active' | 'Inactive';
22
+ lifecycleStatus?: 'live' | 'deleted';
23
+ auditLog?: AuditLogEntry[];
16
24
  permissions?: Permission[];
17
25
  owner_id?: string | null;
18
26
  parent_group_id?: string | null;
@@ -26,6 +34,8 @@ export interface ArtifactGroup {
26
34
  description: string;
27
35
  artifactCount: number;
28
36
  status: 'Active' | 'Inactive';
37
+ lifecycleStatus?: 'live' | 'deleted';
38
+ auditLog?: AuditLogEntry[];
29
39
  application?: string;
30
40
  expression?: string;
31
41
  type: 'RESOURCEGROUP';
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.types.d.ts","sourceRoot":"","sources":["../../../src/core/models/artifact.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;IAC7C,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,eAAe,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,GAAG,eAAe,CAAA;IAClC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB"}
1
+ {"version":3,"file":"artifact.types.d.ts","sourceRoot":"","sources":["../../../src/core/models/artifact.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;IAC7C,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,eAAe,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,eAAe,CAAA;IACrB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,GAAG,eAAe,CAAA;IAClC,QAAQ,EAAE,qBAAqB,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB"}
@@ -1,3 +1,4 @@
1
+ import type { AuditLogEntry } from './artifact.types';
1
2
  export interface User {
2
3
  id: string;
3
4
  type: 'USER' | 'USERGROUP';
@@ -14,6 +15,8 @@ export interface User {
14
15
  user_metadata?: unknown;
15
16
  created_at?: string;
16
17
  updated_at?: string;
18
+ lifecycleStatus?: 'live' | 'deleted';
19
+ auditLog?: AuditLogEntry[];
17
20
  name?: string;
18
21
  status?: 'Active' | 'Inactive';
19
22
  }
@@ -29,6 +32,8 @@ export interface UserGroup {
29
32
  user_metadata?: unknown;
30
33
  created_at?: string;
31
34
  updated_at?: string;
35
+ lifecycleStatus?: 'live' | 'deleted';
36
+ auditLog?: AuditLogEntry[];
32
37
  memberCount?: number;
33
38
  }
34
39
  export interface GroupMember {
@@ -1 +1 @@
1
- {"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../../src/core/models/user.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
1
+ {"version":3,"file":"user.types.d.ts","sourceRoot":"","sources":["../../../src/core/models/user.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}