@package-broker/ui 2.0.0-rc.2 → 2.0.0-rc.3
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/dist/.tsbuildinfo +1 -1
- package/dist/api-types.d.ts +50 -5
- package/dist/api-types.d.ts.map +1 -1
- package/dist/app.d.ts +8 -14
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +22 -20
- package/dist/app.js.map +1 -1
- package/dist/assets/access.6859f43998ca.js +1 -0
- package/dist/assets/app.e8434f3343de.js +9 -0
- package/dist/assets/app.f15f8f21f88b.css +2 -0
- package/dist/assets/audit.576009342714.js +1 -0
- package/dist/assets/chunk.297a2d571f9c.js +4 -0
- package/dist/assets/chunk.3704953b4a66.js +1 -0
- package/dist/assets/chunk.6e23a75a1324.js +1 -0
- package/dist/assets/chunk.7cb6f6b4daaa.js +1 -0
- package/dist/assets/chunk.855a50f45830.js +1 -0
- package/dist/assets/chunk.862544cf5835.js +2 -0
- package/dist/assets/chunk.976a2ff4338e.js +1 -0
- package/dist/assets/chunk.bb25fc845269.js +1 -0
- package/dist/assets/chunk.bf48b04e6a00.js +1 -0
- package/dist/assets/chunk.ce96495b8b55.js +1 -0
- package/dist/assets/chunk.f922af39a279.js +1 -0
- package/dist/assets/import.e2a1e35fcb8d.js +1 -0
- package/dist/assets/index.html +6 -2
- package/dist/assets/manifest.json +80 -8
- package/dist/assets/packages.a8726e5144de.js +1 -0
- package/dist/assets/projects.711deb86b7c9.js +1 -0
- package/dist/assets/setup.dfed30ecfbad.js +1 -0
- package/dist/assets/setup.html +3 -3
- package/dist/assets/sources.d0ba0048bd96.js +1 -0
- package/dist/assets/tokens.f48d235e8d25.js +4 -0
- package/dist/auth.d.ts +4 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +4 -0
- package/dist/auth.js.map +1 -1
- package/dist/components/product-footer-content.d.ts +21 -0
- package/dist/components/product-footer-content.d.ts.map +1 -0
- package/dist/components/product-footer-content.js +30 -0
- package/dist/components/product-footer-content.js.map +1 -0
- package/dist/components/product-footer.d.ts +3 -0
- package/dist/components/product-footer.d.ts.map +1 -0
- package/dist/components/product-footer.js +6 -0
- package/dist/components/product-footer.js.map +1 -0
- package/dist/manifest.d.ts +32 -0
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +41 -0
- package/dist/manifest.js.map +1 -1
- package/dist/page-loader.d.ts +5 -0
- package/dist/page-loader.d.ts.map +1 -0
- package/dist/page-loader.js +39 -0
- package/dist/page-loader.js.map +1 -0
- package/dist/pages/access/grant-form.d.ts +48 -0
- package/dist/pages/access/grant-form.d.ts.map +1 -0
- package/dist/pages/access/grant-form.js +153 -0
- package/dist/pages/access/grant-form.js.map +1 -0
- package/dist/pages/access/permission-descriptions.d.ts +2 -0
- package/dist/pages/access/permission-descriptions.d.ts.map +1 -0
- package/dist/pages/access/permission-descriptions.js +36 -0
- package/dist/pages/access/permission-descriptions.js.map +1 -0
- package/dist/pages/access/role-catalogue.d.ts +22 -0
- package/dist/pages/access/role-catalogue.d.ts.map +1 -0
- package/dist/pages/access/role-catalogue.js +40 -0
- package/dist/pages/access/role-catalogue.js.map +1 -0
- package/dist/pages/access.d.ts +6 -0
- package/dist/pages/access.d.ts.map +1 -1
- package/dist/pages/access.js +66 -31
- package/dist/pages/access.js.map +1 -1
- package/dist/pages/packages/source-actions.d.ts +48 -0
- package/dist/pages/packages/source-actions.d.ts.map +1 -0
- package/dist/pages/packages/source-actions.js +312 -0
- package/dist/pages/packages/source-actions.js.map +1 -0
- package/dist/pages/packages.d.ts.map +1 -1
- package/dist/pages/packages.js +3 -2
- package/dist/pages/packages.js.map +1 -1
- package/dist/pages/projects/project-form-model.d.ts +25 -0
- package/dist/pages/projects/project-form-model.d.ts.map +1 -0
- package/dist/pages/projects/project-form-model.js +69 -0
- package/dist/pages/projects/project-form-model.js.map +1 -0
- package/dist/pages/projects/project-form.d.ts +14 -0
- package/dist/pages/projects/project-form.d.ts.map +1 -0
- package/dist/pages/projects/project-form.js +91 -0
- package/dist/pages/projects/project-form.js.map +1 -0
- package/dist/pages/projects.d.ts +3 -2
- package/dist/pages/projects.d.ts.map +1 -1
- package/dist/pages/projects.js +28 -37
- package/dist/pages/projects.js.map +1 -1
- package/dist/pages/sources/source-form.d.ts +3 -1
- package/dist/pages/sources/source-form.d.ts.map +1 -1
- package/dist/pages/sources/source-form.js +18 -16
- package/dist/pages/sources/source-form.js.map +1 -1
- package/dist/pages/sources/sync-copy.d.ts +5 -0
- package/dist/pages/sources/sync-copy.d.ts.map +1 -0
- package/dist/pages/sources/sync-copy.js +11 -0
- package/dist/pages/sources/sync-copy.js.map +1 -0
- package/dist/pages/sources.d.ts +2 -0
- package/dist/pages/sources.d.ts.map +1 -1
- package/dist/pages/sources.js +49 -15
- package/dist/pages/sources.js.map +1 -1
- package/dist/pages/tokens/client-config.d.ts +3 -0
- package/dist/pages/tokens/client-config.d.ts.map +1 -1
- package/dist/pages/tokens/client-config.js +12 -2
- package/dist/pages/tokens/client-config.js.map +1 -1
- package/dist/pages/tokens/issue-token-form.d.ts +27 -0
- package/dist/pages/tokens/issue-token-form.d.ts.map +1 -0
- package/dist/pages/tokens/issue-token-form.js +270 -0
- package/dist/pages/tokens/issue-token-form.js.map +1 -0
- package/dist/pages/tokens/principal-form.d.ts +8 -0
- package/dist/pages/tokens/principal-form.d.ts.map +1 -0
- package/dist/pages/tokens/principal-form.js +151 -0
- package/dist/pages/tokens/principal-form.js.map +1 -0
- package/dist/pages/tokens.d.ts +47 -6
- package/dist/pages/tokens.d.ts.map +1 -1
- package/dist/pages/tokens.js +317 -86
- package/dist/pages/tokens.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +4 -1
- package/dist/setup.js.map +1 -1
- package/dist/token-pending.d.ts +4 -0
- package/dist/token-pending.d.ts.map +1 -0
- package/dist/token-pending.js +12 -0
- package/dist/token-pending.js.map +1 -0
- package/package.json +3 -3
- package/dist/assets/app.b2abf3c46f6e.js +0 -15
- package/dist/assets/app.e8cea8b32d3a.css +0 -2
- package/dist/assets/setup.98343039898f.js +0 -1
package/dist/pages/tokens.d.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
import type { operations } from '../api-types.js';
|
|
2
2
|
import { type ShellServices } from '../auth.js';
|
|
3
3
|
import { type PendingStorage } from '../pending.js';
|
|
4
|
+
import { tokenClientConfig } from './tokens/client-config.js';
|
|
4
5
|
type Token = operations['listMyTokens']['responses'][200]['content']['application/json']['items'][number];
|
|
5
6
|
type Lifetime = operations['listMyTokens']['responses'][200]['content']['application/json']['lifetime'];
|
|
6
7
|
type Principal = operations['listServicePrincipals']['responses'][200]['content']['application/json']['items'][number];
|
|
8
|
+
export interface IssueProject {
|
|
9
|
+
id: string;
|
|
10
|
+
slug: string;
|
|
11
|
+
name: string;
|
|
12
|
+
cap: 'read' | 'write' | 'full' | null;
|
|
13
|
+
permissions: string[] | null;
|
|
14
|
+
policyState?: 'idle' | 'loading' | 'loaded' | 'error';
|
|
15
|
+
}
|
|
7
16
|
type Target = 'personal' | 'project' | 'organization';
|
|
8
|
-
interface Draft {
|
|
17
|
+
export interface Draft {
|
|
9
18
|
name: string;
|
|
10
19
|
scope: 'read' | 'write' | 'full';
|
|
11
20
|
lifetimeDays: number;
|
|
@@ -21,17 +30,30 @@ interface Issue {
|
|
|
21
30
|
key: string;
|
|
22
31
|
rotate?: string;
|
|
23
32
|
replace?: string;
|
|
33
|
+
refresh?: boolean;
|
|
34
|
+
listTarget?: Target;
|
|
35
|
+
listProject?: string | null;
|
|
24
36
|
}
|
|
25
|
-
interface State {
|
|
37
|
+
export interface State {
|
|
26
38
|
target: Target;
|
|
27
39
|
project: string | null;
|
|
40
|
+
issuanceProject: string | null;
|
|
28
41
|
items: Token[];
|
|
29
42
|
next: string | null;
|
|
30
43
|
principals: Principal[];
|
|
31
44
|
principalsNext: string | null;
|
|
32
45
|
principalsRestricted: boolean;
|
|
46
|
+
principalsLoading: boolean;
|
|
47
|
+
principalsError: boolean;
|
|
48
|
+
organizationPermissions: string[];
|
|
49
|
+
issuanceDraft: Issue | null;
|
|
50
|
+
issuancePrincipal: string | null;
|
|
51
|
+
issuanceNonce: number;
|
|
33
52
|
names: Record<string, string>;
|
|
34
53
|
projectSlugs: Record<string, string>;
|
|
54
|
+
projects: IssueProject[];
|
|
55
|
+
projectsError: boolean;
|
|
56
|
+
result: Issue | null;
|
|
35
57
|
lifetime: Lifetime | null;
|
|
36
58
|
userId: string | null;
|
|
37
59
|
secret: string | null;
|
|
@@ -54,6 +76,7 @@ interface Deps {
|
|
|
54
76
|
now: () => number;
|
|
55
77
|
clearAfterCopy?: boolean;
|
|
56
78
|
}
|
|
79
|
+
export declare const dayLabel: (days: number) => string;
|
|
57
80
|
export declare function lifetimeChoices(policy: {
|
|
58
81
|
maxDays: number;
|
|
59
82
|
defaultDays: number;
|
|
@@ -61,9 +84,11 @@ export declare function lifetimeChoices(policy: {
|
|
|
61
84
|
export declare function tokensReducer(state: State, action: {
|
|
62
85
|
type: 'navigate';
|
|
63
86
|
}): State;
|
|
64
|
-
export declare function
|
|
87
|
+
export declare function inResultScope(result: Issue | null, project: IssueProject): boolean;
|
|
88
|
+
export declare function hasSetupAccess(state: State, project: IssueProject): boolean;
|
|
65
89
|
export declare function createTokensController(services: ShellServices, deps: Deps): {
|
|
66
90
|
snapshot: () => State;
|
|
91
|
+
announce(notice: string): void;
|
|
67
92
|
subscribe(listener: () => void): () => void;
|
|
68
93
|
navigate(): void;
|
|
69
94
|
dispose(): void;
|
|
@@ -73,22 +98,38 @@ export declare function createTokensController(services: ShellServices, deps: De
|
|
|
73
98
|
selectTarget(target: Target, project: string | null): Promise<void>;
|
|
74
99
|
decline(): void;
|
|
75
100
|
confirm(): Promise<void>;
|
|
101
|
+
issueFor(target: Target, project: string | null, draft: Draft): Promise<void>;
|
|
102
|
+
configureProject(slug: string): void;
|
|
76
103
|
issue(draft: Draft): Promise<void>;
|
|
77
104
|
renew(token: Token): void;
|
|
105
|
+
invalidProjects(): void;
|
|
78
106
|
registryOrigin: () => string;
|
|
79
107
|
clientConfig(): {
|
|
80
108
|
composer: string;
|
|
109
|
+
composerAuth: string;
|
|
81
110
|
npm: string;
|
|
111
|
+
ciComposer: string;
|
|
112
|
+
ciNpm: string;
|
|
82
113
|
} | null;
|
|
83
|
-
copy(kind?:
|
|
114
|
+
copy(kind?: keyof ReturnType<typeof tokenClientConfig>): Promise<void>;
|
|
84
115
|
load(target?: Target, project?: string | null, after?: string): Promise<void>;
|
|
85
116
|
loadPrincipals(after?: string): Promise<void>;
|
|
117
|
+
loadProjectPolicies(ids: string[], retry?: boolean): void;
|
|
118
|
+
choosePrincipal(id: string, project: string | null, organization?: boolean): void;
|
|
86
119
|
identity(): Promise<void>;
|
|
87
120
|
revoke(id: string, own?: boolean): Promise<void>;
|
|
88
|
-
createPrincipal(name: string, project: string, permissions: string[]): Promise<
|
|
121
|
+
createPrincipal(name: string, project: string, permissions: string[]): Promise<{
|
|
122
|
+
createdByUserId: string;
|
|
123
|
+
id: string;
|
|
124
|
+
name: string;
|
|
125
|
+
permissions: string[];
|
|
126
|
+
projectId: string | null;
|
|
127
|
+
revision: number;
|
|
128
|
+
status: "active" | "suspended";
|
|
129
|
+
} | undefined>;
|
|
89
130
|
suspendPrincipal(principal: Principal): Promise<void>;
|
|
90
131
|
};
|
|
91
|
-
type Controller = ReturnType<typeof createTokensController>;
|
|
132
|
+
export type Controller = ReturnType<typeof createTokensController>;
|
|
92
133
|
export interface TokenFilters {
|
|
93
134
|
q: string;
|
|
94
135
|
scope: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/pages/tokens.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/pages/tokens.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAgB9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,KAAK,KAAK,GACR,UAAU,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/F,KAAK,QAAQ,GACX,UAAU,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAAC;AAC1F,KAAK,SAAS,GACZ,UAAU,CAAC,uBAAuB,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AACxG,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;CACvD;AACD,KAAK,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;AACtD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,KAAK,GAAG,UAAU,CAAC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACzB;AACD,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AACD,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AACD,UAAU,IAAI;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,WAA6C,CAAC;AACnF,wBAAgB,eAAe,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,YAI/E;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,KAAK,CAe/E;AAoED,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,YAAY,WAMxE;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,WAajE;AACD,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI;;qBAkJrD,MAAM;wBAGH,MAAM,IAAI;;;;;kBA2CV,MAAM,WAAW,MAAM,GAAG,IAAI;yBASvB,MAAM,WAAW,MAAM,GAAG,IAAI;;;qBAkBlC,MAAM,WAAW,MAAM,GAAG,IAAI,SAAS,KAAK;2BAc5C,MAAM;iBAcV,KAAK;iBAkBX,KAAK;;;;;;;;;;gBAsBA,MAAM,UAAU,CAAC,OAAO,iBAAiB,CAAC;kBAqBlD,MAAM,YACL,MAAM,GAAG,IAAI,UACd,MAAM;2BAkCa,MAAM;6BAwCV,MAAM,EAAE;wBAwDb,MAAM,WAAW,MAAM,GAAG,IAAI;;eA6DjC,MAAM;0BAwBK,MAAM,WAAW,MAAM,eAAe,MAAM,EAAE;;;;;;;;;gCAwBxC,SAAS;EA0B9C;AACD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY;;;;;;;;;;;;;;;;;IASjE;AACD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,+BA6K9F;AAwDD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,+BAga/F;AACD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,EACrE,UAAU,EAAE,MAAM,IAAI,cAoBvB;AACD,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,4BAa/E;AACD,wBAAgB,UAAU,gCA8CzB"}
|